Quando as organizações migram para microsserviços, elas precisam oferecer suporte a dezenas ou centenas de aplicativos específicos. Gerenciar esses endpoints separadamente significa oferecer suporte a um grande número de máquinas virtuais (VMs), incluindo demanda. O software de cluster, 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ço instrumenta os serviços e direciona o tráfego de comunicações de acordo com uma configuração predefinida. Em vez de configurar um contêiner em execução ou escrever código para fazê-lo, um administrador pode fornecer a configuração ao service mesh e fazer com que ele conclua esse trabalho. Anteriormente, isso tinha que acontecer com servidores 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 roteia e observa o tráfego de comunicações entre serviços e contêineres.