Service Mesh de microserviços
com Istio e Envoy
@viniciusdepaula
Sobre mim
~10 anos envolvido
com o meio
acadêmico
Co-founder da
startup Inngage
~15 anos atuando com
desenvolvimento e
arquitetura de software
O começo…
A migração do monolítico para microsserviços
traz uma complexidade de administração e de
entendimento da comunicação entre esses
serviços.
Service Mesh é uma rede de microsserviços
que oferece, de forma consistente: segurança,
service discovery, application tracing,
monitoring e tolerância a falhas
A jornada
As coisas começam a ganhar forma
E as coisas ganham forma…
O cenário começa a mudar
Micro Frontends
A cloud começa a ser usada
massivamente
E o uso de containers também
Com a implementação de microsserviços
surge uma nova abordagem arquitetural
Atingimos nosso objetivo!
Engano seu amigo, nosso
trabalho apenas começou
Alguns desafios arquiteturais
Quem poderá nos ajudar?
Uma abordagem com Kubernetes
Atingimos nosso objetivo!
Engano seu amigo, nosso
trabalho continua
Mais desafios arquiteturais
Alguns desafios são bem
conhecidos
E alguns frameworks podem nos
ajudar (Netflix OSS)
Service Discovery
Netflix OSS: Service Discovery
Circuit Breaking
Circuit Breaking
Distributed Tracing
Distributed Tracing
Distributed Tracing
Voltando ao assunto dos
frameworks
Temos que adicionar inúmeras
bibliotecas em nosso código
Instrumentação específica do
desenvolvedor
Não foram implementados visando
atuar especificamente nas camadas
de rede
Até aqui, os frameworks poderiam
nos atender bem…
E se quisermos implementar um
novo serviço usando Go, Kotlin,
Ruby…
E quando falamos de alto
acoplamento…
Alto acoplamento: Lógica de Negócio x Rede
Separação da Lógica de Negócio x Rede
O Istio insere um container no POD
para atuar como proxy, controlando,
assim, toda sua comunicação.
Service Mesh: Sidecar
Service Mesh: Sidecar
“In 2014, we started an initiative to create a replacement architecture that
would scale better. The result has proven extremely successful and has been
gradually deployed throughout Google, saving in the process millions of
dollars a month in ops costs.” © Google
https://istio.io/blog/2017/mixer-spof-myth/
Service Mesh: Data Plane
Service Mesh: Control Plane
Arquitetura do Istio
Istio
Istio: Traffic Management
Istio: Traffic Splitting
istioctl create -f split-95-5.yaml
Istio: Traffic Steering
istioctl create -f split-browser.yaml
E se precisarmos fazer um debug
em produção?
Istio: Traffic Mirroring (Dark Launch)
Istio Resiliency: Http Timeout
istioctl create -f timeout-rule.yaml
Istio Resiliency: Http Retry
istioctl create -f retry-rule.yaml
Istio Fault Injection: Http Delay
istioctl create -f delay-rule.yaml
Distributed Tracing
Distributed Tracing
Service Graph
Security: Citadel
Service Mesh
Service Mesh
Referências
https://developers.redhat.com/boo ks/introducing-istio-service-meshmicroservices/
Istio Docs e Tutoriais:
https://istio.io/docs/

Workshops:
https://github.com/retroryan/istio-workshop

https://github.com/redhat-developer-demos/istio-tutorial
@viniciusdepaula

Service Mesh de microserviços com Istio e Envoy