O documento discute a combinação de micro-serviços com práticas DevOps, incluindo Docker e AWS ECS. Aborda os desafios de micro-serviços como configuração, descoberta e balanceamento de serviços e como ferramentas como Spring Cloud, Netflix OSS, Docker e ECS podem ajudar a superar esses desafios.
6. Micro-serviços
• Pequenos
• Deployment interdependente
• Independente de tecnologia
• Infra-estrutura separada
"Small independent component with well-
defined boundaries that’s doing one thing, but
doing it well"
8. Micro-serviços
• Principais desafios
• Configuração centralizada
• Registro e descoberta de serviços
• Roteamento de serviços
• Balanceamento de carga
• Tolerância à falhas
• Monitoramento
• Segurança
9.
10. • API
• Routing / Health check
• Microservices
• Logging
• Data Management
• Eureka
• Hystrix + Turbine
• Ribbon
• Zuul
• + alguns outros…
11.
12. Spring Cloud
• Conjunto de bibliotecas / componentes
• Não é apenas uma ferramenta
• Integrado ao Spring Boot
• Suporta diferentes arquiteturas e tecnologias em Cloud
• AWS, Netflix, Heroku, Cloud Foundry, etc
• Facilita a implementação de padrões necessários aos
sistemas distribuídos
“Toolset designed for building distributed systems”
15. Spring Cloud + Netflix OSS
“Casamento perfeito para criação de micro-
serviços resilientes“
Gerenciamento de Configuração Spring Cloud Config + Bus
Descoberta de Serviços Netflix Eureka
Balanceamento de Carga Netflix Ribbon
Circuit Breaker Netflix Hystrix + Turbine
Proxy Server Netflix Zuul
Segurança Spring Cloud Security
22. Spring Cloud Security
Discovery
Client
Relying Party
Resource
Server
Get an access token
& an ID Token (JWT)
Use an access token
Authorization
Server
Iden.ty Provider or
IDP or
OpenID Provider or
OP
Authorization
Endpoint
Token
Endpoint
Important Stuff
Userinfo
Endpoint
Registration
Endpoint
JWKS
Endpoint
JWKS
Endpoint
Validate
(JWT)
ID Token
/.well-known
/webfinger
/openid-configura.on
Check Session IFrame
End Session Endpoint
41. Conclusões
• Arquitetura de micro-serviços é complexa
• Práticas de DevOps são essenciais
• Containers são ótimas alternativas para micro-serviços
• Containers necessitam de orquestração
• Cloud oferece boas soluções para orquestração
• Enjoy it ;)