Service mesh: quando você precisa e quando é complexidade paga à toa

Service mesh resolve mTLS, política de tráfego e observabilidade sem tocar na aplicação — e cobra caro em operação. Como saber se o seu caso justifica.

Equipe Solvefy 7 min de leitura

Service mesh é uma tecnologia legítima que resolve problemas reais, e é também uma das que mais aparecem em ambientes que não têm esses problemas. O padrão é reconhecível: alguém implanta uma malha num cluster com oito serviços, ganha painéis bonitos, e seis meses depois a equipe está depurando o comportamento do proxy em vez do da aplicação, com uma atualização de plano de controle pendente que ninguém quer encarar. Vale entender o que ela entrega antes de decidir se você precisa.

O que uma malha realmente faz

O mecanismo é simples de descrever: um proxy é colocado ao lado de cada instância da sua aplicação e intercepta todo o tráfego que entra e sai. Como todo o tráfego passa por ali, esse proxy pode aplicar comportamentos sem que a aplicação saiba:

  • Criptografia mútua entre serviços, com identidade verificada dos dois lados e rotação automática de certificado. Feito sem alterar uma linha de código.
  • Política de tráfego — tempo limite, nova tentativa, interrupção de circuito, limite de requisições — de forma uniforme, mesmo com serviços escritos em linguagens diferentes.
  • Divisão de tráfego por percentual, o que habilita implantação gradual e teste com parcela de usuários sem lógica na aplicação.
  • Métricas consistentes de latência, taxa de erro e volume para toda comunicação entre serviços, no mesmo formato, sem instrumentação manual.
  • Autorização entre serviços, definindo quem pode chamar quem.

O apelo é evidente: recursos que exigiriam biblioteca em cada serviço, mantida em cada linguagem, passam a ser configuração de plataforma.

Os quatro casos em que ela se paga

Sendo específico, porque o resto é discutível:

  1. Exigência de criptografia mútua entre todos os serviços, por conformidade ou por política de rede sem confiança. Implementar isso serviço por serviço, com rotação de certificado, é trabalhoso e frágil. A malha resolve de forma completa, e este é o argumento mais forte que existe.
  2. Muitos serviços em linguagens diferentes. Com Java, Go, Python e Node no mesmo ambiente, manter biblioteca de resiliência equivalente em quatro ecossistemas é caro e divergente. O proxy é neutro.
  3. Necessidade de divisão de tráfego fina para implantação gradual, com reversão automática baseada em métrica.
  4. Autorização entre serviços com muitas regras, onde uma política central é mais auditável que verificação espalhada pelo código.

Se nenhum desses quatro descreve o seu ambiente, é bem provável que a malha esteja resolvendo um problema que você não tem.

Quando é complexidade paga à toa

Os sinais de que não é hora:

  • Menos de dez ou quinze serviços. O ganho de padronização cresce com o número de serviços; com poucos, a configuração explícita é mais simples de entender.
  • Uma única linguagem. Se tudo é Go ou tudo é Java, uma biblioteca compartilhada entrega tempo limite, nova tentativa e interrupção de circuito com muito menos peso operacional.
  • Nenhuma exigência de criptografia mútua interna. Se a rede já é confiável e não há requisito de conformidade, este que é o maior benefício simplesmente não se aplica.
  • Equipe sem folga para operar mais uma plataforma crítica. A malha entra no caminho de todo o tráfego. Ela não é um componente periférico que se pode negligenciar.
  • Problemas básicos ainda abertos. Se você ainda não tem rastreamento distribuído, tempo limite definido nas chamadas ou implantação automatizada, esses itens entregam mais por muito menos.

O que ela cobra

CustoImpacto prático
Recurso por instânciaUm proxy por réplica, somando CPU e memória em todo o ambiente
Latência adicionalDois saltos extras por chamada, na casa de milissegundos
Plano de controleUm componente crítico a mais para operar e atualizar
Complexidade de diagnósticoCada problema passa a ter a pergunta "é a aplicação ou o proxy?"
AtualizaçõesCiclo próprio, frequente, com compatibilidade a observar
Curva de aprendizadoVocabulário e modelo mental novos para toda a equipe

O item mais subestimado é o de diagnóstico. Quando o tráfego para de funcionar, a superfície de investigação dobra: pode ser a aplicação, o proxy, a política de autorização, o certificado, a configuração de descoberta de serviço. Sem alguém que conheça a malha, um incidente simples se estende por horas.

A armadilha da nova tentativa automática

Vale um aviso específico sobre o recurso mais tentador de configurar, porque ele já causou indisponibilidades sérias em empresas grandes.

Nova tentativa automática parece uma melhoria óbvia de resiliência. O problema aparece quando o serviço está degradado por sobrecarga: cada chamada que falha é repetida, o volume total sobe, o serviço sobrecarregado piora, e mais chamadas falham. Em uma cadeia de serviços, isso se multiplica — três níveis com três tentativas cada podem gerar vinte e sete requisições a partir de uma.

Duas defesas obrigatórias ao ligar nova tentativa: orçamento de tentativas, limitando o percentual do tráfego que pode ser repetido, e repetir apenas o que é seguro repetir — operação idempotente, erro que indica falha transitória. Nova tentativa sobre operação que cobra o cliente é problema pior que a falha original.

Alternativas que resolvem grande parte por muito menos

Antes de adotar a malha, vale verificar se o seu problema real não é atendido por algo mais leve:

  • Tempo limite e interrupção de circuito na aplicação. É o item de maior impacto em resiliência, e a ausência dele é a causa mais comum de falha em cascata. Chamada sem tempo limite é um travamento esperando acontecer.
  • Rastreamento distribuído, que entrega a maior parte do valor de observabilidade sem interceptar tráfego.
  • Gateway de entrada com terminação de TLS, limite de requisições e roteamento — suficiente quando a preocupação é o tráfego que entra, não o interno.
  • Recursos nativos do protocolo, como o balanceamento e a nova tentativa que o gRPC já oferece.
  • Modo sem proxy por instância, oferecido por algumas malhas modernas, que reduz o consumo de recurso e parte da complexidade — vale avaliar se você concluir que precisa de malha.

Se for adotar, adote assim

Um caminho que reduz o risco de arrependimento:

  1. Escreva antes qual dos quatro casos você tem. Se a justificativa não couber em uma frase concreta, não adote.
  2. Escolha pela simplicidade operacional, não pela lista de recursos. Malha mais simples e menos configurável costuma ser a decisão certa para quem está começando.
  3. Comece por observabilidade e criptografia mútua, que são de baixo risco e entregam valor imediato.
  4. Não ligue política de tráfego no primeiro mês. Nova tentativa e interrupção de circuito exigem entender o comportamento do sistema.
  5. Injete o proxy em poucos serviços primeiro, nunca no ambiente todo de uma vez.
  6. Treine mais de uma pessoa. Malha que só uma pessoa entende é um ponto único de falha no caminho de todo o tráfego.
  7. Defina como desativar. Saber reverter a decisão é parte de tomá-la com responsabilidade.

Erros comuns

  • Adotar malha em ambiente com poucos serviços e uma linguagem só.
  • Adotar antes de ter rastreamento distribuído e tempo limite nas chamadas.
  • Ligar nova tentativa automática sem orçamento de tentativas.
  • Repetir automaticamente operação não idempotente.
  • Injetar o proxy no ambiente inteiro de uma vez.
  • Escolher a malha com mais recursos em vez da mais simples de operar.
  • Uma pessoa só na equipe capaz de depurar a malha.
  • Não dimensionar o consumo de recurso dos proxies.
  • Deixar de considerar alternativas mais leves para o problema real.

Onde a Solvefy/Cloud entra

Em consultoria DevOps, a nossa contribuição aqui começa por uma resposta honesta: na maioria dos ambientes que avaliamos, a malha não é o próximo passo — tempo limite, rastreamento e implantação automatizada entregam mais por muito menos. Quando o caso justifica, normalmente por exigência de criptografia mútua ou por ambiente poliglota, implantamos por etapas, começando pelo de menor risco, com o consumo de recurso dimensionado e a equipe treinada para depurar. E deixamos documentado como reverter.

Quer avaliar se service mesh resolve o seu problema? Fazemos um diagnóstico gratuito, sem compromisso, em solvefy.cloud.

Solvefy/Cloud — Infraestrutura que cresce com você.

Faça agora o seu diagnóstico e orçamento

Inicie com um diagnóstico gratuito da sua infraestrutura e receba uma proposta personalizada — com escopo, cronograma e valores.