Uma malha de serviços permite que os desenvolvedores de serviços aliviem o trabalho de comunicação de rede e se concentrem mais na lógica de negócios.

O que é uma malha de serviço?

Uma malha de serviços é uma camada de infraestrutura configurável para um aplicativo de microsserviços. Ele torna a comunicação entre instâncias de serviço flexível, confiável e rápida. A malha fornece descoberta de serviço, balanceamento de carga, criptografia, autenticação e autorização, suporte para o padrão de disjuntor e outros recursos.

A malha de serviço geralmente é implementada fornecendo uma instância de proxy, chamada sidecar, para cada instância de serviço. Os sidecars lidam com comunicações entre serviços, monitoramento e questões relacionadas à segurança – qualquer coisa que possa ser abstraída dos serviços individuais. Dessa forma, os desenvolvedores podem lidar com o desenvolvimento, o suporte e a manutenção do código do aplicativo nos serviços; as equipes de operações podem manter a malha de serviço e executar o aplicativo.

O Istio, apoiado pelo Google, IBM e Lyft, é atualmente a arquitetura de malha de serviço mais conhecida. O Kubernetes, que foi originalmente projetado pelo Google, é atualmente o único framework de orquestração de contêineres suportado pelo Istio.

Vídeo sobre Service Mesh

O que é uma malha de serviço em uma arquitetura de microsserviços?

Uma malha de serviços aborda alguns dos principais desafios para concretizar uma arquitetura de microsserviços. Uma malha de serviços permite mais margem de manobra na seleção de um conjunto diversificado de tecnologias de implementação de microsserviços, ao mesmo tempo em que se concentra mais na lógica de negócios, em vez de investir mais tempo em funções de rede entre serviços.

Malha de serviço e descoberta de serviço

Uma malha de serviços funciona com um protocolo de descoberta de serviços para detectar serviços conforme eles surgem. Então, a malha os envelhece graciosamente quando eles desaparecem. A descoberta de serviços é uma estrutura de gerenciamento de contêineres que mantém uma lista de instâncias que estão prontas para receber solicitações – ou serem descobertas – por outros serviços. Juntos, eles criam resiliência na comunicação entre serviços.

Referências