Descoberta de serviços
O Cloud Service Mesh oferece descoberta de serviço e de endpoint. Esses recursos permitem agrupar as instâncias de máquina virtual (VM) e de contêiner que executam o código como endpoints dos serviços.
O Cloud Service Mesh monitora esses serviços para compartilhar informações atualizadas sobre verificação de integridade com os clientes. Portanto, quando um dos seus aplicativos usa a cliente do Cloud Service Mesh (como um proxy sidecar do Envoy ou um aplicativo gRPC sem proxy) para enviar uma solicitação, ela tem acesso informações sobre seus serviços.
No contexto da Cloud Service Mesh, um cliente é o código do aplicativo que é executado em uma VM ou em um contêiner que formula as solicitações a serem enviadas a um servidor. Um servidor é um código de aplicativo que recebe essas solicitações. Um cliente da Cloud Service Mesh é um Envoy, gRPC ou outro cliente xDS conectado à Cloud Service Mesh e que faz parte do plano de dados.
No plano de dados, o Envoy ou o gRPC faz o seguinte:
- Ele examina uma solicitação e corresponde a solicitação a um serviço de back-end, um recurso que você configura durante a implantação.
- Depois que a solicitação é correspondida, o Envoy ou o gRPC aplica todas as políticas de tráfego ou segurança configuradas anteriormente, escolhe um back-end ou um endpoint e direciona a solicitação para esse back-end ou endpoint.
Descoberta de serviços
O Cloud Service Mesh oferece descoberta de serviços. Ao configurar o Cloud Service Mesh, você cria serviços de back-end. Você também define regras de roteamento que especificam como uma solicitação de saída (uma solicitação enviada pelo código do aplicativo e processada por um cliente da Cloud Service Mesh) é correspondida a um serviço específico. Quando um cliente do Cloud Service Mesh processa uma solicitação que corresponde a uma regra, ele pode escolha o serviço que deve receber a solicitação.
Exemplo:
- Você tem uma VM executando o aplicativo. Esta VM tem um proxy sidecar do Envoy conectado ao Cloud Service Mesh e lida com solicitações de saída no do aplicativo.
- Você configurou um serviço de back-end denominado
payments
. Esse serviço de back-end tem dois back-ends de grupos de endpoints de rede (NEG, na sigla em inglês) que apontam para várias instâncias de contêiner que executam o código do serviçopayments
. - Você configurou um recurso
Mesh
definindo uma malha chamadasidecar-mesh
. - Você configurou um recurso
Route
que define destinos de tráfego para o serviço de back-endpayments
e o nome do hosthelloworld-gce
.
Com essa configuração, quando seu aplicativo (na VM) envia uma solicitação HTTP
payments.example.com
, o cliente do Cloud Service Mesh sabe que
essa solicitação é destinada ao serviço payments
.
Quando você usa o Cloud Service Mesh com serviços gRPC sem proxy, a descoberta de serviço funciona de maneira semelhante. No entanto, a biblioteca do gRPC, atuando como um cliente do Cloud Service Mesh, recebe apenas informações sobre os serviços para os quais você especificou um resolvedor xDS. Por padrão, o Envoy recebe informações sobre todos os serviços configurados na rede da nuvem privada virtual (VPC) especificada no arquivo de inicialização do Envoy.
Descoberta de endpoints
Com a descoberta de serviços, os clientes conhecem os serviços que você fornece. A descoberta de endpoints permite que os clientes conheçam as instâncias que executam o código.
Ao criar um serviço, você também especifica os back-ends dele. Esses back-ends são VMs em grupos gerenciados de instâncias (MIGs, na sigla em inglês) ou contêineres em NEGs. O Cloud Service Mesh monitora esses MIGs e NEGs para saber quando instâncias e endpoints são criados e removidos.
O Cloud Service Mesh compartilha continuamente informações atualizadas sobre esses e serviços com os clientes. Essa informação evita que os clientes enviem tráfego para endpoints que não existem mais. Com ela, os clientes também podem aprender sobre novos endpoints e aproveitar a capacidade extra fornecida por esses endpoints.
Além de adicionar endpoints a MIGs ou NEGs e configurar o Cloud Service Mesh, você não precisa de outras configurações para ativar a descoberta de serviços com do Cloud Service Mesh.
Interceptação de tráfego do proxy sidecar no Cloud Service Mesh
O Cloud Service Mesh oferece suporte ao modelo de proxy sidecar. Nesse modelo, quando um aplicativo envia tráfego para o destino, o tráfego é interceptado e redirecionado para uma porta no proxy sidecar no host em que o aplicativo está em execução. O proxy sidecar decide como balancear a carga do tráfego e, em seguida, envia o tráfego para o destino.
Com o Cloud Service Mesh e as APIs de roteamento de serviço, a interceptação de tráfego é gerenciados automaticamente.
A seguir
- Para saber como o Cloud Service Mesh oferece balanceamento de carga global para sua microsserviços internos com proxies sidecar, consulte Balanceamento de carga do Cloud Service Mesh:
- Para saber mais sobre o Cloud Service Mesh, consulte a Visão geral do Cloud Service Mesh.