Cloud Service Mesh com recursos compatíveis com as APIs do Google Cloud

Neste documento, resumimos os atributos disponíveis no Cloud Service Mesh.

Um Cloud Service Mesh consiste em seus aplicativos, um plano de dados compatível com xDS (o proxy Envoy de código aberto ou plano de dados gRPC sem proxy) e o Cloud Service Mesh como plano de controle.

Nas tabelas a seguir, o valor N/A (não aplicável) significa que um recurso não pode ser aceito porque não é compatível com a configuração específica do Cloud Service Mesh. Um espaço em branco, sem uma marca de seleção ou N/A, significa que o recurso não é compatível.

Alguns recursos estão disponíveis apenas com as APIs de balanceamento de carga. É altamente recomendável usar as APIs de roteamento de serviço e não criar novas implantações usando as APIs de balanceamento de carga.

Versões xDS compatíveis

O Cloud Service Mesh usa APIs de plano de controle xDS de código aberto para configurar clientes gRPC sem proxy e Envoy. Eles atuam em nome do código do aplicativo para fornecer os recursos de rede de aplicativos do Cloud Service Mesh.

Versão Suporte
xDS v2 disponibilidade geral. Alguns recursos, como a segurança de serviços, estão disponíveis apenas no xDS v3. O suporte para o xDS v2 termina em 20 de junho de 2024.
xDS v3 Disponibilidade geral

Plataformas para executar os serviços da malha

É possível executar aplicativos nas plataformas a seguir e adotá-los em uma malha de serviço global configurada pelo Cloud Service Mesh.

Engenharia de Compatível
Instâncias de máquina virtual (VM) do Compute Engine
Instâncias de contêiner do Google Kubernetes Engine (GKE)
Kubernetes em instâncias de contêiner do Compute Engine

Gerenciamento de serviços

Os serviços em uma malha configurada pelo Cloud Service Mesh se beneficiam do seguinte:

  • Descoberta de serviços. Quando um aplicativo na sua malha quiser alcançar outro app, ele poderá chamar esse serviço pelo nome.

  • Escalonamento automático de back-end. As instâncias que executam o código do aplicativo escalonam verticalmente ou reduzem dinamicamente com base nas necessidades.

  • Registro automático de endpoints. À medida que novas instâncias são criadas ou removidas, elas são associadas automaticamente ao seu serviço.

Engenharia de Compatível
Implantação automatizada de proxies sidecar para VMs do Compute Engine
Injeção automática de proxies secundários para os pods do GKE
Descoberta de serviço com base no nome do host
Escalonamento automático de instâncias com base no uso de CPU
Escalonamento automático de instâncias com base na capacidade de carga/exibição de tráfego
(VMs do Compute Engine em grupos de instâncias gerenciadas, ou MIGs, somente)
Recuperação automática de instâncias com base em verificações de integridade configuráveis
Registro automático de endpoints para VMs do Compute Engine
Registro automático de endpoints para instâncias/pods de contêiner do GKE
API para adicionar ou remover endpoints de forma programática

Endpoints para o tráfego do plano de dados

Os microsserviços usam o plano de dados para acessar serviços na sua malha e fora dela. O Cloud Service Mesh permite separar a lógica do aplicativo da lógica de rede para que o aplicativo só precise enviar solicitações ao plano de dados (por exemplo, o proxy secundário em execução com o aplicativo). Em seguida, o plano de dados envia solicitações para o endpoint correto.

Na tabela a seguir, os aplicativos descritos como fazendo parte da malha são aqueles que usam o plano de dados gerenciado pelo Cloud Service Mesh para se comunicar com outros serviços. Esses aplicativos podem enviar tráfego para serviços dentro e fora da malha.

Engenharia de Compatível
Aplicativos baseados em VM na malha
Aplicativos baseados em contêiner na malha
Aplicativos baseados em VM fora da malha
Aplicativos baseados em contêiner fora da malha
Aplicativos em execução em data centers locais
Aplicativos em ambientes de multicloud

Topologias do plano de dados

No modelo de malha de serviço, seus aplicativos usam um plano de dados para se comunicar. Esse plano de dados geralmente consiste em proxies sidecar implantados com seus aplicativos. O Cloud Service Mesh é altamente flexível e oferece suporte a topologias de plano de dados que atendam às suas necessidades de rede de serviços.

Engenharia de Compatível
Proxies sidecar em execução com aplicativos
Aplicativos gRPC sem proxy
Proxies intermediários entre dois aplicativos em uma malha
Proxies de borda no limite da malha
Malha que abrange vários Clusters do GKE e/ou VMs do Compute Engine em várias regiões

Configuração programática orientada por API

Toda a configuração é exposta por meio da API REST e do painel, ambos prontos para uso, o que permite automatizar alterações em equipes grandes e gerenciar as mudanças de forma programática. Alguns recursos não podem ser configurados usando o Console do Google Cloud.

Engenharia de Compatível
APIs REST
Console do Google Cloud
CLI do Google Cloud
Cloud Deployment Manager
Suporte ao Terraform

Suporte a linguagem com aplicativos gRPC sem proxy

É possível criar aplicativos gRPC sem proxy que funcionam com o Cloud Service Mesh usando as seguintes linguagens de programação. Os recursos da malha de serviço compatíveis com várias implementações e versões do gRPC estão listados no GitHub.

Idioma Compatível
Java
Go
C++
Python
Ruby
PHP

Protocolos de solicitação

Os aplicativos podem usar os protocolos de solicitação a seguir quando usam o plano de dados configurado pelo Cloud Service Mesh para se comunicar.

Engenharia de Compatível
HTTP
HTTPS
HTTP/2
TCP
gRPC

Segurança do serviço

O Cloud Service Mesh oferece suporte à segurança de serviço com as configurações a seguir.

Engenharia de Envoy gRPC
TLS com pods do GKE
mTLS com pods do GKE
Controle de acesso e autorização

Gerenciamento de tráfego e roteamento

O Cloud Service Mesh oferece suporte a políticas avançadas de gerenciamento de tráfego que podem ser usadas para orientar, dividir e moldar o tráfego conforme ele passa pelo plano de dados.

Alguns recursos avançados de gerenciamento de tráfego não estão disponíveis com serviços gRPC sem proxy, e nenhum dos recursos avançados de gerenciamento de tráfego está disponível com o recurso de proxy TCP de destino.

Os recursos a seguir não são compatíveis quando o Cloud Service Mesh processa o tráfego TCP (não HTTP(S).

Engenharia de Compatível com proxy Envoy configurado para processar tráfego HTTP ou gRPC Compatível com gRPC sem proxy
O roteamento de solicitação HTTP/Layer 7 com base na correspondência de sufixo/prefixo/completo/regex nestes itens:
• Nome do host
• Caminho
Cabeçalhos
Método N/A
• Cookies
parâmetros de solicitação N/A
Injeção de falha
Tempo limite configurável N/A
Consulte Duração máxima do streaming.
Novas tentativas
Exceto por tempo limite de novas tentativas
Redirecionamentos
URI reescreve
Transformações do cabeçalho de solicitação/resposta
Divisão de tráfego
Espelhamento do tráfego
Detecção de outlier
Disjuntores
Somente maxRequests
Duração máxima do streaming

Balanceamento de carga

É possível configurar métodos e algoritmos avançados de balanceamento de carga para balancear a carga no serviço, no grupo de back-ends (grupos de instâncias ou de endpoints de rede) e em níveis de endpoints ou back-ends específicos. Para mais informações, consulte Visão geral dos serviços de back-end e Visão geral do balanceamento de carga avançado.

Engenharia de Compatível com o proxy Envoy configurado para processar o tráfego HTTP(s), TCP ou gRPC Compatível com gRPC sem proxy
Seleção de back-ends (grupo de instâncias ou de endpoints de rede) com base na região (de preferência a região mais próxima com uma capacidade de back-end íntegra)
Seleção de back-ends usando o modo de balanceamento baseado em taxa (solicitações por segundo)
Não compatível com tráfego TCP (não HTTP(S)).
Seleção de back-ends com base no modo de balanceamento baseado na utilização (somente VMs em grupos de instâncias do Compute Engine)
Capacidade máxima configurável por back-end (somente no Compute Engine e no GKE)

Seleção de back-ends com base em políticas de balanceamento de carga configurável

Para informações sobre cada política integrada, consulte localityLbPolicy.

  • Use uma única política integrada. escolha entre as opções a seguir:

    • Round robin
    • Solicitação mínima
    • Anel de hash
    • Aleatória
    • Destino original
    • Maglev

Resiliência do serviço

O Cloud Service Mesh oferece suporte a recursos que ajudam a melhorar a resiliência dos seus serviços. Por exemplo, é possível usar o Cloud Service Mesh para implementar um padrão de implantação azul-verde, teste canário ou quebra de circuito (Envoy, gRPC).

Engenharia de Compatível com o proxy Envoy configurado para processar o tráfego HTTP(s), TCP ou gRPC Compatível com gRPC sem proxy
Seleção de serviços por divisões de tráfego com base no peso
Disjuntores
Somente maxRequests

Gerenciamento de capacidade de serviço e back-end

O Cloud Service Mesh considera a capacidade de serviço e de back-end para garantir a distribuição ideal de tráfego entre os back-ends dos serviços. O Cloud Service Mesh é integrado à infraestrutura do Google Cloud para coletar dados de capacidade automaticamente. Também é possível definir e configurar a capacidade manualmente.

Engenharia de Compatível
Monitora automaticamente a capacidade e a utilização do back-end, com base na CPU, para instâncias de VM em um grupo gerenciado de instâncias.
Capacidade e modificações manuais para instâncias de VM e contêiner em MIGs e grupos de endpoint de rede (NEGs, na sigla em inglês) com base na taxa de solicitação.
Diminuição da capacidade manual.

Failover

As cargas de trabalho empresariais geralmente dependem de implantações de alta disponibilidade para garantir o tempo de atividade do serviço. O Cloud Service Mesh oferece suporte a esses tipos de implantações, ativando a redundância de várias zonas/regiões.

Engenharia de Compatível
Failover automático para outra zona na mesma região que tem uma capacidade de back-end íntegra
Failover automático para a região mais próxima com uma capacidade de back-end íntegra.

Verificações de integridade

O Cloud Service Mesh oferece suporte à verificação de integridade centralizada para determinar a integridade do back-end.

Para ver informações de referência, consulte Visão geral das verificações de integridade.

Engenharia de Compatível
Verificações de integridade do gRPC
Verificações de integridade de HTTP
Verificações de integridade de HTTPS
Verificações de integridade de HTTP/2
Verificações de integridade de TCP

Verificações de integridade configuráveis:

  • Porta
  • Intervalos de verificação
  • Tempo limite
  • Limites íntegros e não íntegros
Caminho de solicitação configurável (HTTP, HTTPS, HTTP/2)
String ou caminho de solicitação configurável (TCP ou SSL)
String de resposta esperada configurável

Observabilidade

As ferramentas de observabilidade fornecem informações de monitoramento, depuração e desempenho para ajudar você a entender a malha de serviço. Os recursos a seguir são fornecidos por padrão ou configurados no seu plano de dados. O código do aplicativo não precisa fazer nada especial para gerar esses dados de observabilidade.

O painel de integridade do serviço está disponível com serviços gRPC sem proxy, mas não é possível configurar a geração de registros e o rastreamento do plano de dados. O Cloud Service Mesh não pode configurar a geração de registros e o rastreamento de um aplicativo gRPC. Para ativar a geração de registros e o rastreamento, siga as instruções nas seções de solução de problemas ou nos guias do gRPC disponíveis em sites de código aberto. Por exemplo, para ativar a coleta e o rastreamento de métricas nos serviços gRPC sem proxy, use o Opencensus.

Recurso Compatível com proxies Compatível com serviços gRPC sem proxy
Painel de integridade do serviço
Geração de registros do plano de dados
Rastreamento do plano de dados

Afinidade da sessão

As comunicações entre clientes e servidores geralmente envolvem várias solicitações sucessivas. Nesse caso, é útil encaminhar solicitações sucessivas do cliente para o mesmo back-end ou servidor. O Cloud Service Mesh oferece opções configuráveis para enviar solicitações de um cliente específico da melhor maneira possível para o mesmo back-end, desde que ele esteja íntegro e tenha capacidade. Para mais informações, consulte a Visão geral dos serviços de back-end.

Engenharia de Compatível com proxies HTTP(S) Compatível com proxies TCP Compatível com serviços gRPC sem proxy
Endereço IP do cliente
Cookie HTTP N/A
Cabeçalho HTTP N/A
Cookie gerado (define o cookie do cliente na primeira solicitação) N/A

Topologias de rede

O Cloud Service Mesh oferece suporte a topologias de rede comuns do Google Cloud.

Engenharia de Compatível
Rede única em um projeto do Google Cloud
Várias malhas em um projeto do Google Cloud
Vários gateways em um projeto do Google Cloud
VPC compartilhada (rede única compartilhada em vários projetos do Google Cloud)

Para uma explicação detalhada sobre como a VPC compartilhada é compatível com o Cloud Service Mesh, consulte Limitações.

Compliance

O Cloud Service Mesh está em conformidade com os padrões a seguir.

Certificação de conformidade Compatível
HIPAA
ISO 27001, ISO 27017, ISO 27018
SOC1, SOC2, SOC3
PCI DSS

A seguir