Quando as organizações migram para microsserviços, elas precisam ser compatíveis com dezenas ou centenas de aplicações específicas. Gerenciar esses endpoints separadamente significa ser compatível com muitas máquinas virtuais ou VMs, incluindo a demanda. Um software de clusters, como o Kubernetes, pode criar pods e aumentá-los, mas o Kubernetes não oferece roteamento, regras de tráfego nem ferramentas robustas de monitoramento ou depuração.
Insira a malha de serviço.
À medida que o número de serviços aumenta, o número de formas potenciais de comunicação aumenta exponencialmente. Dois serviços têm apenas dois caminhos de comunicação. Três serviços têm seis, enquanto 10 serviços têm 90. Uma malha de serviço oferece uma maneira única de configurar esses caminhos de comunicação criando uma política para a comunicação.
Uma malha de serviços instrumentaliza os serviços e direciona o tráfego de comunicações de acordo com uma configuração predefinida. Isso significa que, em vez de configurar um contêiner em execução (ou escrever código para fazê-lo), um administrador pode fornecer a configuração à malha de serviços e fazer com que ela conclua esse trabalho. Anteriormente, isso sempre tinha que acontecer com servidores da web e comunicação entre serviços.
A maneira mais comum de fazer isso em um cluster é usar o padrão sidecar. Um sidecar é um novo contêiner dentro do pod que encaminha e monitora o tráfego de comunicações entre serviços e contêineres.