מִכְבָּר מַעֲשֵׂה רֶשֶׁת michbar ma'aseh reshet · uma grade, obra de rede · Shemot 27:4

Blog/Artigos · Cloud e Plataforma

Service Mesh: a rede de bronze que liga cada serviço a todos

O sidecar e os planos de dados e controle, mTLS, gestão de tráfego e observabilidade, com Istio e Linkerd, e a pergunta honesta de quando precisa.

Por Juliano Vince de Campos · · 8 min de leitura · 5 seções · 5 figuras

רֶשֶׁת MICHBAR · SHEMOT 27:4

Para o altar do Mishkan, a Torá manda fazer uma grade de bronze, obra de rede, uma malha entrelaçada que sustenta e distribui. A imagem serve com precisão à comunicação entre serviços na nuvem. Quando uma aplicação vira dezenas ou centenas de microsserviços, o problema deixa de ser cada serviço e passa a ser a rede entre eles: como eles se acham, se autenticam, tentam de novo quando falham, e como se enxerga o que trafega nessa teia. Service Mesh é a obra de rede que se tece sobre os serviços para resolver isso por fora do código de cada um. A malha carrega o que antes cada serviço tinha que carregar sozinho, e mal.

O problema não é o serviço, é a rede entre eles

Quebrar uma aplicação em microsserviços resolve o acoplamento e cria um problema novo: a comunicação. Cada chamada entre serviços, que antes era uma chamada de função dentro do mesmo processo, vira uma chamada de rede, que pode falhar, demorar, ou nunca chegar. E cada serviço passa a precisar das mesmas capacidades transversais: tentar de novo quando a chamada falha, desistir depois de um tempo, criptografar o tráfego, e reportar o que aconteceu. Sem uma rede que resolva isso, cada time reimplementa essas capacidades no seu serviço, em cada linguagem, de forma inconsistente e cheia de bug.

Service Mesh tira essas preocupações do código da aplicação e as coloca na infraestrutura de rede. O desenvolvedor volta a escrever a lógica de negócio, e a malha cuida de que a chamada seja criptografada, tentada de novo, cronometrada e observada, por igual, para todos os serviços, sem uma linha de código de infraestrutura na aplicação. É a mesma filosofia da plataforma, aplicada à comunicação: o difícil e repetitivo, resolvido uma vez, por fora, e herdado por todos. A rede de bronze sustenta o que cada serviço, sozinho, sustentaria mal.

Figura 1O que a malha tira do código de cada serviço
  1. 01Descoberta e roteamentoachar o serviço de destino e escolher a instância
  2. 02Criptografia (mTLS)cifrar e autenticar a chamada entre serviços, por padrão
  3. 03IAResiliênciaretry, timeout e circuit breaking sem código na aplicação
  4. 04Observabilidademétrica, trace e log de cada chamada, por igual
  5. 05Política de tráfegoquem pode falar com quem, e como o tráfego se divide

O desenvolvedor volta a escrever a lógica de negócio; a malha cuida do transversal por igual para todos, sem uma linha de infraestrutura na aplicação.

Sem mesh, cada time reimplementa retry, mTLS e observabilidade no seu serviço, em cada linguagem, com bug. O mesh resolve o difícil e repetitivo uma vez, por fora, e todos herdam, como a plataforma faz.

O sidecar e os dois planos: onde a malha vive

A malha é feita de duas partes. O plano de dados é onde o tráfego de fato passa: ao lado de cada serviço roda um proxy, o sidecar, tipicamente o Envoy, que intercepta toda a comunicação de entrada e saída daquele serviço. O serviço acha que fala direto com o destino; na verdade, fala com o seu sidecar, que aplica as regras, criptografa, tenta de novo, mede, e só então encaminha. Como o sidecar está no caminho de toda chamada, ele pode fazer tudo isso sem que o código do serviço saiba que ele existe.

O plano de controle é o cérebro que configura todos os sidecars. É nele que você declara a política, roteie dez por cento do tráfego para a versão nova, exija mTLS neste namespace, aplique este timeout, e ele distribui essa configuração para os proxies do plano de dados. A separação é a mesma elegância declarativa do Kubernetes: você declara a intenção no plano de controle, e o plano de dados a realiza em cada chamada. Essa arquitetura é o que permite mudar o comportamento da rede inteira, de retry a criptografia, por configuração central, sem tocar em nenhum serviço nem fazer nenhum deploy de aplicação.

Figura 2A arquitetura de uma Service Mesh
  1. Plano de controle o cérebroonde se declara a política; distribui a configuração aos sidecars
  2. Sidecar (Envoy) no caminhoproxy ao lado de cada serviço, intercepta toda a comunicação
  3. Plano de dados o tráfegoo conjunto de sidecars por onde a comunicação de fato passa
  4. Serviço alheioescreve só a lógica; não sabe que o sidecar existe
Declara-se a intenção no plano de controle, e o plano de dados a realiza em cada chamada, como o modelo declarativo do Kubernetes. Muda-se o comportamento da rede inteira por configuração central, sem deploy de aplicação.

O que a malha entrega: tráfego, segurança e visão

A malha entrega três famílias de capacidade. Gestão de tráfego: roteamento fino que sustenta o canary e o blue-green do progressive delivery, dividindo o tráfego por percentual ou por cabeçalho, além de retry, timeout e circuit breaking, que impede uma falha de se espalhar cortando a chamada para um serviço já doente. Segurança: mTLS automático entre todos os serviços, dando criptografia e autenticação mútua sem o desenvolvedor configurar certificado, o que materializa o Zero Trust dentro do cluster, onde nenhum serviço confia em outro só por estar na mesma rede.

E observabilidade: como o sidecar vê toda chamada, a malha gera automaticamente as métricas de ouro, latência, tráfego, erro e saturação, para cada serviço e cada conexão, sem instrumentar o código. Ela desenha o mapa real de quem fala com quem, aquele mesmo mapa de dependência que a migração precisava, agora vivo e atualizado a cada chamada. Essas três capacidades, juntas, são o que justifica a malha: elas transformam a teia caótica de microsserviços numa rede governada, segura e visível, sem espalhar essa responsabilidade por dentro de cada serviço.

Figura 3As capacidades que a Service Mesh entrega
  • ROUTERoteamento finodividir tráfego por percentual, sustenta canary e blue-green
  • RESILResiliênciaretry, timeout e circuit breaking contra a falha em cascata
  • MTLSmTLS automáticocriptografia e autenticação mútua sem configurar certificado
  • AUTHZPolítica de acessoquem pode chamar quem, o Zero Trust dentro do cluster
  • OBSMétricas de ourolatência, tráfego, erro e saturação sem instrumentar código
  • MAPMapa de dependênciaquem fala com quem, vivo, atualizado a cada chamada
Três famílias: tráfego, segurança e visão. Juntas, transformam a teia caótica de microsserviços numa rede governada, segura e observável, sem espalhar essa responsabilidade por dentro de cada serviço.

A pergunta honesta: a malha vale a complexidade?

Service Mesh é poderosa e cara em complexidade, e fingir o contrário custa caro. O sidecar em cada pod consome CPU e memória e adiciona um salto de rede a cada chamada, o que soma latência. O plano de controle é mais uma peça crítica para operar, atualizar e depurar. E quando algo dá errado na rede, agora há uma camada a mais entre o serviço e o problema, o que pode transformar depuração em arqueologia. Muitos times adotaram Istio pela fama e afogaram-se na operação de algo que não precisavam, para rodar poucos serviços que não exigiam nada daquilo.

A pergunta madura é a mesma do Kubernetes: preciso mesmo? Poucos serviços, com pouca comunicação entre si, não justificam uma malha; uma biblioteca de resiliência e TLS na borda resolvem com uma fração do custo. A malha rende quando há muitos serviços, muita comunicação entre eles, e necessidade real de mTLS universal, roteamento fino ou observabilidade sem instrumentar. Quando ela é a escolha certa, o Linkerd tende a ser mais leve e simples que o Istio, que é mais completo e mais complexo, e a evolução do mercado com o ambient mesh e o eBPF promete reduzir o custo do sidecar, tornando a malha mais barata de carregar. Mas a decisão de adotá-la continua sendo sobre escala e necessidade, não sobre moda.

Figura 4Quando a Service Mesh compensa: escala contra necessidade transversal
Número de serviços e comunicação entre eles
Adote a malhamuitos serviços, muita comunicação, necessidade transversal real: ela rende.
Malha leveescala alta mas necessidade média: prefira o mais simples, como Linkerd.
Biblioteca na bordapoucos serviços mas exige mTLS: resolve sem malha, com uma fração do custo.
Não use malhapoucos serviços, pouca comunicação: adotar por moda é afogar-se em complexidade.
Necessidade de mTLS, roteamento fino e observabilidade
A pergunta é 'preciso mesmo?'. A malha rende com muitos serviços e necessidade transversal real. Poucos serviços não justificam; biblioteca de resiliência e TLS na borda resolvem por uma fração do custo. Ambient mesh e eBPF prometem baratear o sidecar.

A maturidade da malha, e onde ela se encaixa

A malha amadurece do transversal espalhado à rede governada e leve. No começo, cada serviço reimplementa retry, TLS e observabilidade, mal e diferente. Depois vem a malha adotada, com sidecar e mTLS. No meio ela sustenta o roteamento do progressive delivery e dá o mapa de dependência vivo. No topo é a malha com a evolução do ambient mesh, custo de sidecar reduzido, política coerente e observabilidade que vira detecção. Cada degrau tira mais um pedaço de infraestrutura de dentro do código e o resolve por fora, por igual.

A malha se apoia no Kubernetes, que dá o chão onde os sidecars vivem, e serve a vários vizinhos deste eixo: dá ao progressive delivery o roteamento fino do canary, ao Zero Trust o mTLS entre serviços, à observabilidade as métricas de ouro sem instrumentar. Ela é a obra de rede que entrelaça a comunicação da arquitetura de microsserviços. Saber tecê-la é útil; saber quando não precisar de malha alguma é o que separa quem adota por moda de quem adota por necessidade. A rede de bronze sustenta o altar, mas nem todo altar precisa de uma rede de bronze.

Figura 5Maturidade no uso de Service Mesh
  1. 0Espalhadocada serviço reimplementa retry, TLS e observabilidade, mal
  2. 1Malha adotadasidecar e mTLS automático entre os serviços
  3. 2Tráfego governadoroteamento fino sustenta canary e blue-green
  4. 3Visão vivamapa de dependência e métricas de ouro sem instrumentar
  5. 4Política coerenteacesso serviço a serviço como Zero Trust no cluster
  6. 5Leve e detectivaambient mesh reduz custo, observabilidade vira detecção
Cada degrau tira mais infraestrutura de dentro do código e a resolve por fora, por igual. A malha serve ao canary, ao Zero Trust e à observabilidade, mas nem todo altar precisa de uma rede de bronze.

Para levar

Service Mesh é a obra de rede que se tece sobre os microsserviços para resolver por fora o transversal que cada um sustentaria mal: mTLS, retry, timeout e observabilidade. O sidecar no plano de dados intercepta toda chamada, o plano de controle a governa por configuração central, e as três famílias, tráfego, segurança e visão, transformam a teia caótica em rede governada. Mas o poder vem com complexidade e latência reais, e a pergunta honesta é se a escala justifica a malha ou se o mais simples resolve. A IA mostra o valor e valida a política. Decidir tecer ou não a rede de bronze, porém, continua sendo arquitetura de quem responde pela comunicação do sistema.

Tags

  • #julianovincedecampos
  • #ServiceMesh
  • #CloudEPlataforma
  • #Istio
  • #Kubernetes
  • #mTLS
  • #Microsserviços

Onde eu estudei, me certifiquei e trabalhei

  • University of Cambridge
  • PUC Minas
  • PUC-RS
  • PUC Goiás
  • Pontificia Universidad Católica del Perú
  • Amazon Web Services
  • Google
  • IBM
  • Oracle
  • COBIT 5 Foundation
  • ITIL v3 Foundation
  • Exemplar Global
  • Red Team Leaders
  • Infosec
  • Salesforce
  • Flowgrammers
  • ISO/IEC 27001
  • NIST Cybersecurity Framework
  • Compass UOL
  • Luby
  • Creditas
  • PicPay
  • PagoNxt, Santander
  • Mercado Pago
  • Itaú Unibanco
  • Foursys
  • Soluti Certificação Digital