Software · Arquitetura de Software

Service Mesh com Istio: Sidecar, Ambient e o Custo da Malha

Como uma service mesh governa tráfego entre microsserviços, aplica mTLS e produz telemetria, comparando os modos sidecar e ambient do Istio sem esconder seus custos operacionais.

Malha de serviços conectada a um plano central que distribui políticas e telemetria

Quando a rede vira parte da arquitetura

Em uma aplicação com poucos serviços, cada equipe ainda consegue configurar timeouts, certificados e endereços diretamente no código. Quando dezenas de serviços passam a conversar entre si, essa lógica se repete em linguagens diferentes. Uma política exige alterações em vários repositórios; uma chamada lenta atravessa a plataforma sem deixar um rastro comum; um certificado expirado interrompe um caminho inteiro.

Uma service mesh, ou malha de serviços, desloca essas responsabilidades para uma camada de infraestrutura dedicada ao tráfego leste-oeste. A aplicação continua implementando o negócio, enquanto a malha observa e governa conexões entre workloads. Ela não corrige contratos ruins nem elimina falhas distribuídas, mas oferece um ponto uniforme para identidade, criptografia, roteamento e telemetria.

Control plane e data plane

O control plane recebe a configuração declarativa, valida políticas e distribui instruções. O data plane intercepta o tráfego e executa essas decisões no caminho de cada conexão. No Istio, o istiod exerce o papel de controle; proxies ou túneis próximos às cargas formam o plano de dados.

flowchart LR
    Operacao["Equipe de plataforma"] --> Controle["Control plane<br/>políticas e identidades"]
    Controle --> P1["Proxy ou túnel A"]
    Controle --> P2["Proxy ou túnel B"]
    ServicoA["Serviço A"] --> P1
    P1 --> P2
    P2 --> ServicoB["Serviço B"]
    P1 --> Telemetria["Métricas, logs e traces"]
    P2 --> Telemetria

Essa separação permite alterar uma regra de autorização sem recompilar todos os serviços. A configuração central, porém, amplia o raio de impacto de um erro. Políticas da malha também precisam de revisão, teste automatizado e implantação gradual.

Segurança, tráfego e observabilidade

O primeiro ganho costuma ser uma identidade verificável para cada workload. Ela sustenta mTLS, no qual os dois lados apresentam certificados e a comunicação é cifrada. Políticas podem autorizar uma identidade específica, em vez de confiar apenas em IPs transitórios.

O segundo ganho é o controle consistente de tráfego: timeouts, tentativas limitadas, circuit breaking, divisão percentual e espelhamento de requisições. Isso ajuda em lançamentos canário e migrações, mas retries indiscriminados podem repetir uma operação não idempotente ou multiplicar carga durante uma falha.

O terceiro ganho é a telemetria homogênea. Como o plano de dados enxerga conexões, ele produz métricas de volume, erros e latência sem depender do framework. Essa visão não conhece sozinha o significado da transação; traces completos e indicadores de negócio continuam exigindo contexto propagado e instrumentação da aplicação.

Sidecar e ambient mesh

No modo sidecar, um proxy acompanha cada workload. Ele oferece isolamento e controle fino de camada 7, mas adiciona CPU, memória, inicialização e atualização por pod. No modo ambient, um túnel compartilhado no nó fornece conectividade segura de camada 4; políticas e roteamento de camada 7 entram por waypoint proxies quando necessários.

A documentação do Istio sobre modos de data plane descreve os dois modelos, enquanto a visão geral do ambient mesh explica a divisão entre túnel seguro e waypoint.

Critério Sidecar Ambient
Unidade de proxy Um por workload Túnel por nó e waypoint opcional
Adoção Injeção e reinício de pods Entrada incremental por namespace
Controle L7 Próximo de cada workload Concentrado em waypoints
Custo base Cresce com o número de pods Compartilhado no nó
Raio de falha Tende a ficar no pod Exige cuidado com componentes compartilhados

Ambient não significa “sidecar gratuito”. Ele muda onde a capacidade é executada e como escala. A escolha depende da densidade de pods, necessidade de inspeção L7, compatibilidade e maturidade da operação.

Service mesh e API Gateway ocupam fronteiras diferentes

Um API Gateway governa principalmente o tráfego norte-sul: clientes entram pela borda, onde autenticação, limitação e roteamento de APIs são aplicados. A service mesh governa principalmente chamadas internas. Os dois podem coexistir.

Também não convém usar a malha para esconder serviços excessivamente conversadores ou uma cadeia frágil de chamadas síncronas. Criptografar e observar o acoplamento não o remove.

Quando a complexidade compensa

A malha faz sentido quando há muitos workloads, stacks diferentes e requisitos uniformes de identidade, auditoria ou tráfego progressivo. Para um sistema pequeno, bibliotecas bem configuradas e observabilidade no código podem entregar mais valor com menor superfície operacional.

A decisão madura não pergunta apenas quais recursos a service mesh oferece. Ela mede se os problemas atuais justificam adicionar uma camada crítica ao caminho de todas as requisições e se existe uma equipe capaz de operá-la como produto de plataforma.