Partilhar via


Acerca das malhas de serviço

Uma malha de serviço é uma camada de infraestrutura na sua aplicação que facilita a comunicação entre serviços. As malhas de serviço fornecem capacidades como a gestão de tráfego, resiliência, política, segurança, identidade forte e observabilidade para as suas cargas de trabalho. A sua aplicação é desacoplada destas capacidades operacionais, enquanto a malha de serviço as move para fora da camada da aplicação e para baixo para a camada de infraestrutura.

Cenários

Quando utiliza uma malha de serviço, pode ativar cenários como:

  • Encriptar todo o tráfego no cluster: ative o TLS mútuo entre os serviços especificados no cluster. Isto pode ser expandido para entrada e saída no perímetro de rede e fornece uma opção segura por predefinição sem que sejam necessárias alterações ao código da aplicação e à infraestrutura.

  • Implementações faseadas e canárias: especifique as condições para que um subconjunto de tráfego seja encaminhado para um conjunto de novos serviços no cluster. No teste bem-sucedido da versão canary, remova o encaminhamento condicional e aumente gradualmente a % de todo o tráfego para um novo serviço. Eventualmente, todo o tráfego será direcionado para o novo serviço.

  • Gestão e manipulação de tráfego: crie uma política num serviço que limite todo o tráfego a uma versão de um serviço a partir de uma origem específica ou uma política que aplique uma estratégia de repetição a classes de falhas entre serviços especificados. Espelhar o tráfego dinâmico para novas versões de serviços durante uma migração ou para problemas de depuração. Injetar falhas entre serviços num ambiente de teste para testar a resiliência.

  • Observabilidade: obtenha informações sobre como os seus serviços estão ligados e o tráfego que flui entre os mesmos. Recolha métricas, registos e rastreios para todo o tráfego no cluster, incluindo entrada/saída. Adicione capacidades de rastreio distribuído às aplicações.

Critérios de seleção

Antes de selecionar uma malha de serviço, certifique-se de que compreende os seus requisitos e o seu raciocínio para instalar uma malha de serviço. Faça as seguintes perguntas:

  • Um controlador de entrada é suficiente para as minhas necessidades?: Por vezes, ter uma capacidade como testes A/B ou divisão de tráfego na entrada é suficiente para suportar o cenário necessário. Não adicione complexidade ao seu ambiente sem vantagens.

  • As minhas cargas de trabalho e o meu ambiente podem tolerar as sobrecargas adicionais?: Todos os componentes necessários para suportar a malha de serviço necessitam de recursos como a CPU e a memória. Todos os proxies e as respetivas verificações de política associadas adicionam latência ao tráfego. Se tiver cargas de trabalho muito sensíveis à latência ou não conseguir fornecer recursos adicionais para cobrir componentes de malha de serviço, deve reconsiderar a utilização de uma malha de serviço.

  • Isto está a adicionar complexidade desnecessária?: Se pretender instalar uma malha de serviço para utilizar uma capacidade que não seja fundamental para as equipas empresariais ou operacionais, considere se a complexidade adicional da instalação, manutenção e configuração vale a pena.

  • Isto pode ser adotado numa abordagem incremental?: Algumas das malhas de serviço que fornecem muitas capacidades podem ser adotadas numa abordagem mais incremental. Instale apenas os componentes de que precisa para garantir o seu sucesso. Se mais tarde descobrir que são necessárias mais capacidades, explore-as mais tarde. Resista à vontade de instalar tudo desde o início.

Passos seguintes

Azure Kubernetes Service (AKS) oferece suplementos oficialmente suportados para Istio e Open Service Mesh:

Também existem malhas de serviço fornecidas por projetos open source e terceiros que são normalmente utilizados com o AKS. Estas malhas de serviço não são abrangidas pela política de suporte do AKS.

Para obter mais detalhes sobre a paisagem da malha de serviço, veja Paisagem do Service Mesh da Camada 5.

Para obter mais detalhes sobre os esforços de uniformização do service mesh, veja: