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.
01O 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
01Descoberta e roteamentoachar o serviço de destino e escolher a instância
02Criptografia (mTLS)cifrar e autenticar a chamada entre serviços, por padrão
03IAResiliênciaretry, timeout e circuit breaking sem código na aplicação
04Observabilidademétrica, trace e log de cada chamada, por igual
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.
02O 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
Plano de controle o cérebroonde se declara a política; distribui a configuração aos sidecars
Sidecar (Envoy) no caminhoproxy ao lado de cada serviço, intercepta toda a comunicação
Plano de dados o tráfegoo conjunto de sidecars por onde a comunicação de fato passa
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.
03O 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.
04A 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.
05A 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
0Espalhadocada serviço reimplementa retry, TLS e observabilidade, mal
1Malha adotadasidecar e mTLS automático entre os serviços
2Tráfego governadoroteamento fino sustenta canary e blue-green
3Visão vivamapa de dependência e métricas de ouro sem instrumentar
4Política coerenteacesso serviço a serviço como Zero Trust no cluster
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
Quem escreve: Juliano Vince de Campos
Gerente de Operações, Tecnologia e Infraestrutura (SRE) numa central de registros. Trabalho com tecnologia desde 2009 e com cibersegurança em tempo integral desde 2015, em infraestrutura crítica, fintech e banking. Escrevo sobre o que eu opero: confiabilidade, segurança, governança e IA que passa por gate antes de chegar em produção.