Microsserviços são complexos e muito difíceis, não é uma mera afirmativa. Todo desenvolvedor chega a essa conclusão quando coloca o primeiro projeto em produção usando a arquitetura.
O mais legal de tudo é que grandes empresas (com recursos) também chegaram à essa mesma conclusão, e para resolver os principais problemas encontrados nesses cenários elas criaram soluções open source para ajudar a comunidade, como a Netflix por exemplo.
Apesar de microsserviços serem realmente difíceis, a disseminação do conhecimento sobre esse tema evoluiu bastante. Escolha a linguagem e procure por soluções de circuit breaking no principal repositório de pacotes do idioma para ver o que encontra. O grande problema dessas soluções é que devem ser implementadas em todos os artefatos do sistema, agora imagine em uma arquitetura com pouco mais de 50 microsserviços, isso pode ser complicado :(
Com esse cenário em mente, ao invés de tentar resolver os problemas em nível de aplicação, vamos aplicar essas estas soluções à infraestrutura.
E é finalmente nesse momento que vamos conhecer o Service Mash Istio. Ele foi criado para resolver situações como as descritas acima, utilizando o Envoy como implementação de sidecar, ele permite que você aplique soluções distribuídas em todos os microsserviços sem adicionar nenhuma linha de configuração às suas aplicações.
O Istio resolve de forma global problemas como tracing, circuit breaking, roteamento, injeção, autenticação, etc. E nessa talk vamos entender como o Istio funciona e principalmente, como podemos utilizá-lo para monitorar e solucionar problemas de forma escalável.