Este documento apresenta uma introdução ao Service Mesh com Istio. Primeiro, discute os benefícios e desafios dos microserviços e como um Service Mesh como o Istio pode ajudar a lidar com esses desafios, fornecendo uma camada de infraestrutura para tornar a comunicação entre serviços mais segura, rápida e confiável. Em seguida, explica os principais componentes do Istio, como Pilot, Mixer e Citadel, e como eles permitem gerenciar o tráfego, implementar políticas de segurança e autor
5. Microservices - vantagens
● Menor complexidade das aplicações
● Mais fácil de entender e manter; desenvolvimento mais ágil
● Escopo bem definido (por uma API)
● Times independentes
○ Podem evoluir independente dos outros serviços
○ Podem escolher a melhor tecnologia para cada serviço
● Implantações independentes
○ Pode-se facilmente experimentar uma nova versão (Canary)
● Escalabilidade - independência
6. Microservices - desvantagens
● Sistema distribuído
● Aplicações tem que lidar com chamadas de rede
● Tem que lidar também com falhas (dos outros serviços, rede, etc)
● Banco de dados. Leiam o livro do Yanaga!
● Testes
● etc
10. Service Mesh é uma camada de infra-estrutura
dedicada a tornar a comunicação serviço-a-serviço
segura, rápida, confiável e configurável. Se você está
criando uma aplicação cloud native, então você
precisa de um service mesh.
14. Istio - projeto
● Plataforma para conectar, gerenciar micro-serviços
● Desenvolvida por Google, com ajuda de IBM, Lyft
● Projeto recente, pouco mais de 1 ano, versão 1.0 iminente
● Destaque no cenário micro-serviços / service mesh
● Open source, comunitário, ótima receptividade a novatos
● Istio.io
15. Istio - parte técnica
● Baseado no modelo de sidecar proxy (Envoy)
● Intercepta todas as chamadas entre os micro-serviços
● Transparente para a aplicação - ela pensa que está se comunicando diretamente
com o outro serviço
● Não há necessidade de mudar/adaptar/reescrever os serviços, que podem ser de
diferentes linguagens de programação (BIG WIN!)
21. Pilot - outras features
● Espelhamento de tráfego
● Tratamento de falhas
○ Timeouts
○ Retries (com variação de tempo)
○ Limite na qtd de conexões simultaneas e requests
○ Health check e circuit breaker
● Injeção de falhas
○ Delays
○ Aborts
○ Testam a resiliência dos serviços
34. Citadel
● Dá a cada serviço uma identidade forte
● mTLS: Adiciona mutual TLS entre os serviços
● Sistema automatizado de geração, distribuição, revogação de certificados