Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução a Service Mesh usando o Istio

Avatar for Aecio Pires Aecio Pires
October 18, 2025

Introdução a Service Mesh usando o Istio

Será apresentado o conceito de Service Mesh e as ferramentas que implementam este conceito, dando foco no uso do Istio. Será comentado sobre as funcionalidades do Istio e cenários de uso.
Também será disponibilizado um repositório com o passo a passo para fazer um prova de conceito num ambiente local.

Apresentado em 18/10/2025 no DevOpsDays Campinas.

Avatar for Aecio Pires

Aecio Pires

October 18, 2025
Tweet

More Decks by Aecio Pires

Other Decks in Technology

Transcript

  1. 2 Sobre mim... linktr.ee/aeciopires • Site Reliability Engineer (SRE) •

    Mestre em Tecnologia da Informação • Autor nos livros:
  2. O que é Service Mesh? É uma camada de infraestrutura

    que atua como controle central para um sistema distribuído, abstraindo problemas de rede relacionados com a comunicação entre as aplicações. Possibilita adicionar funções como: • controle de tráfego • segurança • políticas de tolerância a falhas • observabilidade Não precisa implementar essas funções nas aplicações (workloads)... "terceiriza" para a Mesh. Referências: • https://docs.sensedia.com/pt/mesh-guide/Latest/index.html •https://www.ibm.com/think/topics/service-mesh •https://cloud.google.com/service-mesh/docs/overview •https://developer.hashicorp.com/consul/docs/use-case/service-mesh •https://spacelift.io/blog/what-is-a-service-mesh •https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh •https://aws.amazon.com/what-is/service-mesh/ •https://linkerd.io/what-is-a-service-mesh/
  3. O que é Istio? Ambos tem o código aberto: •

    https://github.com/istio/istio • https://github.com/envoyproxy/envoy São projetos graduados da CNCF - Cloud Native Computing Foundation Site oficial: • https://istio.io • https://www.envoyproxy.io Daniel Requena O Envoy é um proxy que atua da camada 4 a 7 (do modelo OSI) desenvolvido com o objetivo de abstrair as configurações e a comunicação de rede para as aplicações, de forma que quando ocorrem problemas de rede e/ou de aplicação, deve ser fácil determinar a origem do problema. Jhonatan Morais
  4. Istio usa o protocolo xDS O protocolo xDS é a

    forma como o plano de controle do Istio configura dinamicamente os proxies Envoy para gerenciar o tráfego. A configuração é aplicada a vários tipos de recursos: • CDS: Cluster Discovery Service. • RDS: Route Discovery Service. • LDS: Listener Discovery Service. • EDS: Endpoint Discovery Service. • SDS: Secret Discovery Service. • VHDS: Virtual Host Discovery Service. • SRDS: Scoped Route Discovery Service. • RTDS: Runtime Discovery Service. Vantagens de usar o protocolo xDS: • Escalabilidade: permite que o istiod envie atualizações simultaneamente para múltiplos proxies. • Flexibilidade: é extensível, permitindo adicionar novas funcionalidades. • Observabilidade: inclui APIs que permitem coletar dados para depuração e monitoramento da mesh. Referências: • https://tetrate.io/blog/istio-service-mesh-delta-xds • https://github.com/cncf/xds
  5. Istio não é simples de gerenciar e nem se aplica

    a todos os cenários. Pega essas dicas: • Service Mesh: Desafios e Reflexões Após Dois Anos em Produção - Jhonatan Morais - https://speakerdeck.com/jhonatancmorais/service-mesh-desafios-e-reflexoes-apos-dois-anos-em-producao • Walking the minefield of Service Mesh - Daniel Requena - https://speakerdeck.com/drequena/walking-the-minefield-of-service-mesh • All I wish I knew before running Istio in production - Daniel Requena - https://speakerdeck.com/drequena/all-i-wish-i-knew-before-running-istio-in-production Não é recomendado para: • Euquipes (exército de 1 homem só); • Times com muitas outras responsabilidades • Poucos microsserviços e poucos clusters kubernetes; • Baixa complexidade na integração entre os workloads; • Baixa complexidade nas atualizações dos workloads; • Aplicações desenvolvidas na mesma linguagem e que já tem uma lib que implementa criptografia, autorização, retry, tracing
  6. Como o Istio ajuda com o Deploy? "Istio tem CRDs

    (Custom Resources Definitions) que podem ser configurados para redirecionar tráfego entre os workloads auxiliando nas estratégias de deploy comentadas anteriormente". Virtual services Destination rules Gateways (ingress e egress) Service entries Network resilience and testing: Timeouts Retries Circuit breakers Fault injection
  7. Como o Istio ajuda com o controle de tráfego? Referências:

    • https://luandy-4171.medium.com/dive-into-istio-ingressgateway-321937baf4f5 • https://thenewstack.io/why-do-you-need-istio-when-you-already-have-kubernetes/
  8. Como o Istio ajuda com o controle de tráfego? Referências:

    • https://luandy-4171.medium.com/dive-into-istio-ingressgateway-321937baf4f5 • https://thenewstack.io/why-do-you-need-istio-when-you-already-have-kubernetes/
  9. Como o Istio ajuda com a observabilidade? https://istio.io/latest/docs/tasks/observability/ O Kiali

    depende das métricas do Prometheus O Istio não isenta os workloads de repassarem os headers de tracing a serem exibidas no Jaeger, da mesma forma que as apps precisam expor métricas para serem coletadas pelo Prometheus.
  10. Observabilidade dos componentes do Istio Istio dashboards para Grafana: •

    https://grafana.com/orgs/istio/dashboards Istio dashboards para Datadog: • https://www.datadoghq.com/dashboards/istio-dashboard/ • https://docs.datadoghq.com/integrations/istio/ • https://www.datadoghq.com/blog/istio-metrics/ • https://www.datadoghq.com/blog/istio-monitoring-tools/ • https://www.datadoghq.com/blog/istio-datadog/ • https://www.datadoghq.com/blog/how-to-monitor-istiod/ Istio metrics/telemetry: • https://istio.io/latest/docs/concepts/observability/ • https://istio.io/latest/docs/reference/config/metrics/ • https://istio.io/latest/docs/reference/config/telemetry/ • https://istio.io/latest/docs/tasks/observability/metrics/customize-metrics/ Envoy dashboards para Grafana: • https://gateway.envoyproxy.io/latest/tasks/observability/grafana-integration/ Envoy dashboards para Datadog: • https://docs.datadoghq.com/integrations/envoy/?tab=host Envoy Metrics: • https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/statistics • https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_stats • https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes Logs envoy: https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log Plus: • Status code HTTP: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status • Status code GRPC: https://grpc.io/docs/guides/status-codes/
  11. Control Plane (istiod) + Data plane Sidecar mode ( proxy

    por pod) Ambient mode (proxy por node e/ou namespace) Arquitetura do Istio no (Single ou multi cluster) Referência: https://istio.io/latest/docs/ops/deployment/deployment-models/
  12. Single cluster e single controlplane do Istio kube-api-server istiod workload

    ingress-gateway Cluster A mTLS Cloud 1 - VPC 1 workload kube-api-server istiod workload ingress-gateway Cluster B mTLS Cloud 1 - VPC 2 workload kube-api-server istiod workload ingress-gateway Cluster C mTLS Cloud 2 - VPC 3 workload primary cluster primary cluster primary cluster Many isolated meshes
  13. Multiples clusters e single external controlplane do Istio kube-api-server workload

    ingress-gateway Cluster A mTLS Cloud 1 - VPC 1 workload remote cluster istiod External Cluster(s) kube-api-server workload ingress-gateway Cluster B mTLS Cloud 1 - VPC 2 workload remote cluster kube-api-server workload ingress-gateway Cluster C mTLS Cloud 2 - VPC 3 workload remote cluster Discovery istiod istiod Many isolated meshes
  14. Múltiplos clusters e single controlplane do Istio kube-api-server istiod workload

    ingress-gateway Cluster A Discovery mTLS Cloud 1 - VPC 1 kube-api-server ingress-gateway workload Cluster B Cloud 1 - VPC 2 kube-api-server workload ingress-gateway Cluster C Connectivity Cloud 2 - VPC 3 single mesh primary cluster remote cluster remote cluster
  15. kube-api-server ingress-gateway workload Cluster C Múltiplos clusters e múltiplos controlplane

    do Istio kube-api-server istiod workload ingress-gateway Cluster A Discovery mTLS Cloud 1 - VPC 1 kube-api-server ingress-gateway workload Cluster B Cloud 1 - VPC 2 Connectivity Cloud 2 - VPC 3 istiod istiod Single mesh with balance requests evenly between endpoints in each cluster, but there is no high availability of istiod primary cluster primary cluster primary cluster
  16. A mesh provê: • As aplicações não precisam se preocupar

    com gestão de certificados, chaves criptográficas, em que cluster cada workload está deployado; • autenticação: identificação única para cada workload na mesh; • autorização: quais workloads podem se comunicar com outros; • criptografia: tráfego criptografado entre os workloads; • controle e distribuição do tráfego: os pacotes serão entregues, distribuídos ou descartados de acordo com as políticas de tráfego da mesh. Tudo isso pra que? Correlacionando com o tráfego aéreo… • O espaço aéreo de um país é como um mesh única. • O aeroporto é como um cluster na mesh. • O piloto só quer pousar ou decolar.
  17. Ambient mode Traz prós e contras, mas podemos destacar os

    benefícios: • Remoção do sidecar do envoy, o que reduz o processamento e distribuição de configuração; • Redução de custo, ao remover os containers sidecar • Permite o Istio ser adotado de forma incremental… 1- Workloads sem mesh 2- Workloads com mesh apenas na camada 4 do modelo OSI 3- Workloads com mesh nas camadas 4 e 7 modelo OSI. Referência: ttps://istio.io/latest/blog/2023/waypoint-proxy-made-simple/
  18. Ambient mode Referências: • https://istio.io/latest/docs/ambient/architecture/data-plane/ • https://www.solo.io/blog/istio-ambient-waypoint-proxy-deployment-model-explained • https://istio.io/latest/blog/2023/waypoint-proxy-made-simple/ •

    https://istio.io/latest/docs/ambient/usage/waypoint/ • https://www.infoq.com/articles/istio-ambient-mesh/ • https://www.alibabacloud.com/blog/analysis-of-istio-ambient-mesh-ztunnel-implementation---configuration-analysis_600670 • Ztunnel => é um proxy por nó do cluster, responsável por mTLS, autenticação, autorização (na camada 4 do modelo OSI) e telemetria, sem interromper o tráfego HTTP dos workloads ou analisar os cabeçalhos HTTP. O ztunnel garante que o tráfego seja transportado de forma eficiente e segura para os proxies de waypoint, onde todo o conjunto de funcionalidades do Istio, como telemetria HTTP e balanceamento de carga, é implementado. • HBONE (ou HTTP-Based Overlay Network Environment) => é um protocolo de tunelamento seguro usado entre componentes do Istio. Atua como um mecanismo para multiplexar de forma transparente fluxos TCP relacionados a diversas conexões de aplicativos em uma única conexão de rede criptografada por mTLS. • Waypoint => proxy opcional (baseado em envoy) que atua como um gateway para um ou mais recursos (namespace, serviço ou pod). Ele atua na camada 7 do modelo OSI.
  19. Ciclo de Desenvolvimento do Istio 1 release minor a cada

    trimestre com suporte até 6 semanas depois da release N+2. Exemplo: Release 1.27 foi lançada em 11/08/2025 e terá suporte até 6 semanas depois do lançamento da release 1.29. (possivelmente o suporte da release 1.27 terminará em Abr/2026) Mais detalhes em: • https://istio.io/latest/docs/releases/supported-releases/ • https://github.com/istio/istio/releases
  20. Slides: • Canary release com Kubernetes e Istio - Daniel

    Requena - https://speakerdeck.com/drequena/canary-release-com-kubernetes-e-istio • Walking the minefield of Service Mesh - Daniel Requena - https://speakerdeck.com/drequena/walking-the-minefield-of-service-mesh • All I wish I knew before running Istio in production - Daniel Requena - https://speakerdeck.com/drequena/all-i-wish-i-knew-before-running-istio-in-production • Service Mesh: Desafios e Reflexões Após Dois Anos em Produção - Jhonatan Morais - https://speakerdeck.com/jhonatancmorais/service-mesh-desafios-e-reflexoes-apos-dois-anos-em-producao Vídeos: • Istio & Service Mesh - Nana - https://www.youtube.com/watch?v=16fgzklcF7Y • Istio Architecture | Service Mesh in Kubernetes - Tech Primers - https://www.youtube.com/watch?v=qW2Uawj9q_M • Understanding Istio Architecture For Multi-cloud Services - Ashish Das - https://www.youtube.com/watch?app=desktop&v=c04p2pCg24U • Service Mesh: Desafios e Reflexões Após Dois Anos em Produção - Jhonatan Morais - https://www.youtube.com/watch?v=E4aySs64XW4&t=1222s Blog posts: • Exploring 6 Deployment Strategies for Smooth Software Updates - Relia Software - https://reliasoftware.com/blog/deployment-strategy • Using Istio in Ambient Mode - Do more for less! - Alex Ly, Craig Box, Daneyon Hansen - https://www.solo.io/blog/istio-more-for-less • Ambient Mode Security Deep Dive - Ethan Jackson, Yuval Kohavi, Justin Pettit, Christian Posta - https://istio.io/latest/blog/2022/ambient-security/ • What is Istio? - Architecture, Features, Benefits and Challenges - Sofija Simic - https://phoenixnap.com/kb/what-is-istio • Istio Networking Part 1 - Karim El Jamali - https://jamali.hashnode.dev/istio-networking-part-1 • How to get started with Istio in Kubernetes in 5 steps - Ravi Verma - https://imesh.ai/blog/how-to-get-started-with-istio-in-kubernetes-in-5-steps/ • Service Mesh Architecture and Best Practices | Quick Guide - Gursimran Singh - https://www.xenonstack.com/insights/what-is-a-service-mesh • Service mesh fundamentals - Layer5 - https://layer5.io/resources/service-mesh/service-mesh-fundamentals • Sobrevivendo a cenários de caos no Kubernetes com Istio e Amazon EKS - Matheus Fidelis - https://tinyurl.com/3epmbrmt Docs: • https://imesh.ai/blog/what-is-mtls-and-how-to-implement-it-with-istio/ • https://istio.io/latest/about/service-mesh/ • https://istio.io/latest/docs/overview/what-is-istio/ • https://istio.io/latest/docs/overview/why-choose-istio/ • https://istio.io/latest/docs/ops/deployment/architecture/ • https://istio.io/latest/docs/ambient/architecture/control-plane/ • https://istio.io/latest/docs/ambient/architecture/data-plane/ • https://istio.io/latest/docs/overview/dataplane-modes/ • https://istio.io/latest/docs/concepts/ • https://istio.io/latest/docs/setup/ • https://istio.io/latest/docs/ambient/ • https://istio.io/latest/docs/tasks/ • https://istio.io/latest/docs/examples/ • https://istio.io/latest/docs/ops/ Referências
  21. • https://landscape.cncf.io/guide#orchestration-management--service-mesh • https://devopscube.com/service-mesh-tools/ • https://github.com/festum/awesome-servicemesh • https://github.com/k8s-dev/awesome-servicemesh • https://docs.sensedia.com/pt/mesh-guide/Latest/index.html

    • https://www.ibm.com/think/topics/service-mesh • https://cloud.google.com/service-mesh/docs/overview • https://developer.hashicorp.com/consul/docs/use-case/service-mesh • https://spacelift.io/blog/what-is-a-service-mesh • https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh • https://aws.amazon.com/what-is/service-mesh/ • https://linkerd.io/what-is-a-service-mesh/ • https://istio.io/latest/about/service-mesh/ • https://konghq.com/blog/learning-center/what-is-a-service-mesh Existem várias ferramentas que implementam o Service Mesh