Malha de serviços
Uma malha de serviços permite que os desenvolvedores deleguem o trabalho de comunicação de rede e se concentrem mais na lógica de negócios.
O que é uma malha de serviços?
Uma malha de serviços é uma camada de infraestrutura configurável para uma aplicação de microsserviços. Ela torna a comunicação entre instâncias de serviço flexível, confiável e rápida. A malha oferece descoberta de serviços, balanceamento de carga, criptografia, autenticação e autorização, suporte ao padrão circuit breaker, entre outros recursos.
A malha de serviços geralmente é implementada por meio do fornecimento de uma instância de proxy, chamada sidecar, para cada instância de serviço. Os sidecars cuidam da comunicação entre serviços, do monitoramento e das questões relacionadas à segurança — tudo o que pode ser abstraído dos serviços individuais. Dessa forma, os desenvolvedores podem cuidar do desenvolvimento, do suporte e da manutenção do código da aplicação nos serviços, enquanto as equipes de operações podem manter a malha de serviços e executar a aplicação.
O Istio, apoiado pelo Google, pela IBM e pela Lyft, é atualmente a arquitetura de malha de serviços mais conhecida. O Kubernetes, originalmente desenvolvido pelo Google, é atualmente a única plataforma de orquestração de contêineres compatível com o Istio.
Vídeo sobre service mesh
O que é uma malha de serviços em uma arquitetura de microsserviços?
Uma malha de serviços soluciona alguns dos principais desafios da implementação de uma arquitetura de microsserviços. Ela oferece mais flexibilidade na escolha de um conjunto diversificado de tecnologias para implementar microsserviços, permitindo maior foco na lógica de negócios em vez de exigir mais tempo dedicado às funções de rede entre os serviços.
Malha de serviços e descoberta de serviços
Uma malha de serviços funciona em conjunto com um protocolo de descoberta de serviços para detectar os serviços à medida que são iniciados. Em seguida, a malha os desativa gradualmente quando eles desaparecem. A descoberta de serviços é uma estrutura de gerenciamento de contêineres que mantém uma lista das instâncias prontas para receber solicitações — ou serem descobertas — por outros serviços. Juntas, essas tecnologias tornam a comunicação entre serviços mais resiliente.
