Se você estiver construindo e operando uma arquitetura de microsserviços em escala e abraçou o Kubernetes, adotar a malha de serviços para gerenciar todos os aspectos transversais da execução da arquitetura é uma posição padrão. Entre as várias implementações de malha de serviço, Istio conquistou adoção majoritária. Possui um rico conjunto de funcionalidades, incluindo descoberta de serviço, gerenciamento de tráfego, segurança de serviço-a-serviço e origem-a-serviço, observabilidade (incluindo telemetria e rastreamento distribuído), releases contínuos e resiliência. Sua experiência de uso foi aprimorada em seus últimos releases, devido à sua facilidade de instalação e arquitetura do painel de controle. O Istio reduziu o nível de dificuldade de implementação de microsserviços em larga escala com qualidade operacional para muitas de nossas clientes, ao mesmo tempo em que admitimos que operar suas próprias instâncias do Istio e Kubernetes requer conhecimento e recursos internos adequados e não é para quem não quer fortes emoções.
Istio está se tornando a infraestrutura de fato para operacionalizar um ecossistema de microsserviços. Sua implementação de funcionalidades transversais – como descoberta de serviço, segurança de serviço-a-serviço e de origem-a-serviço, observabilidade (incluindo telemetria e rastreamento distribuído), rolling releases e resiliência – tem nos ajudado a iniciar implementações de microsserviços muito rapidamente. É a principal implementação da técnica de malha de serviços que temos usado. Estamos aproveitando as implantações mensais e suas melhorias contínuas com atualizações impecáveis. Usamos Istio para fazer bootstrap em nossos projetos, começando com a observabilidade (monitoramento e telemetria) e segurança de serviço-a-serviço. Estamos observando de perto suas melhorias para autenticação serviço-a-serviço tanto dentro como fora da malha. Também gostaríamos de ver Istio estabelecer boas práticas para arquivos de configuração, para encontrar um equilíbrio entre dar autonomia a pessoas desenvolvedoras de serviço e controle aos operadores da malha de serviços.
When building and operating a microservices ecosystem, one of the early questions to answer is how to implement cross-cutting concerns such as service discovery, service-to-service and origin-to-service security, observability (including telemetry and distributed tracing), rolling releases and resiliency. Over the last couple of years, our default answer to this question has been using a service mesh technique. A service mesh offers the implementation of these cross-cutting capabilities as an infrastructure layer that is configured as code. The policy configurations can be consistently applied to the whole ecosystem of microservices; enforced on both in and out of mesh traffic (via the mesh proxy as a gateway) as well as on the traffic at each service (via the same mesh proxy as a sidecar container). While we're keeping a close eye on the progress of different open source service mesh projects such as Linkerd, we've successfully used Istio in production with a surprisingly easy-to-configure operating model.