O documento apresenta uma discussão sobre a arquitetura monolítica versus microserviços e como o Service Mesh com Istio e Kubernetes pode resolver problemas de comunicação entre serviços distribuídos. O palestrante discute as vantagens e desvantagens de ambas as arquiteturas e como ferramentas como Docker, Kubernetes e Istio podem ser usadas para orquestrar contêineres e fornecer funcionalidades como balanceamento de carga, segurança e monitoramento para aplicações de microserviços.
6. Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
7. Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
• Baixa complexidade entre
desenvolvimento e a entrega
8. Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
• Baixa complexidade entre
desenvolvimento e a entrega
• Baixo custo inicial (1 máquina para todos
serviços assim como ambiente de
desenvolvimento)
9. Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
10. Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
• The Mythical Man-Month (Frederick Brooks):
"Adding manpower to a late software project
makes it later”
11. Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
• The Mythical Man-Month (Frederick Brooks):
"Adding manpower to a late software project
makes it later”
• Deploy para uma pequena feature pode
quebrar o sistema inteiro
12.
13. –Wikipedia
“Microservice is a software development
technique, a variant of the service-
oriented architecture (SOA) architectural
style that structures an application as a
collection of loosely coupled services.”
14. –Tradução livre
“Micro-serviço é uma técnica de
desenvolvimento de software, uma
variação do service-oriented
architecture (SOA) estilo arquitetural
que estrutura uma aplicação como uma
coleção de serviços de baixo
acoplamento.”
15. Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
16. Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
17. Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
• Baixo acoplamento
18. Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
• Baixo acoplamento
• Independência e autonomia
20. Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
21. Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
• Alta dependência de rede
22. Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
• Alta dependência de rede
• Difícil controle de rotas e dependência entre
serviços
25. Problemas
• Necessário mudança nas aplicações
• Tempo para construir as integrações com as
libs
• Limita as ferramentas que podem ser utilizadas
na sua aplicação
• Difícil manter compatibilidade
27. –Nginx
“A service mesh is a configurable
infrastructure layer for a microservices
application. It makes communication
between service instances flexible,
reliable, and fast”
28. Tradução Livre
“Service mesh é uma camada de
infraestrutura para aplicações de micro-
serviços. Ela torna a comunicação entre
instâncias de serviços flexível, confiável,
e rápida”
44. Kubernetes
• Automatiza implantações / atualizações de
aplicações
• Orquestra containers em múltiplas máquinas
• Otimiza custos de infraestrutura
45. Kubernetes
• Automatiza implantações / atualizações de
aplicações
• Orquestra containers em múltiplas máquinas
• Otimiza custos de infraestrutura
• Entrega self healing, high availability e auto
scale para suas aplicações.
49. Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
50. Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
• API de configuração que suporta controles de
acesso, limites de request e quotas
51. Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
• API de configuração que suporta controles de
acesso, limites de request e quotas
• Métricas, logs e traces para todo tráfego dentro
do cluster, incluindo ingress e egress