Recursos compatíveis com o Cloud Service Mesh e as APIs do Google Cloud
Este documento resume os recursos disponíveis no Cloud Service Mesh.
Uma malha de serviço do Cloud consiste nos seus aplicativos, em um plano de dados compatível com xDS (o proxy Envoy de código aberto ou o plano de dados sem proxy gRPC) e na malha de serviço do Cloud como seu plano de controle.
Nas tabelas a seguir, o valor N/A (não aplicável) significa que um recurso não é compatível 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 desses recursos estão disponíveis apenas com as APIs de balanceamento de carga. Qa é altamente recomendável usar as APIs de roteamento de serviço e que você não crie novas implantações usando o balanceador de carga APIs de terceiros.
Versão xDS com suporte
O Cloud Service Mesh usa APIs de plano de controle do xDS de código aberto para configurar Envoy e clientes gRPC sem proxy. Esses clientes atuam em nome do código do aplicativo para fornecer os recursos de rede de aplicativos do Cloud Service Mesh.
Há suporte apenas para xDS v3. Migrar para o xDS v3 se você estiver usando o xDS v2. Para informações sobre como migrar, consulte Migrar do xDS v2 para o xDS v3.
Plataformas para executar os serviços da malha
Você pode executar aplicativos nas seguintes plataformas e adotá-los em um ambiente da malha de serviço configurada pelo Cloud Service Mesh.
Recurso | 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 o 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.
Recurso | 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. Assim, o aplicativo só precisa enviar solicitações para o plano de dados (por exemplo, o proxy sidecar executado com o aplicativo). Em seguida, o plano de dados envia solicitações para o endpoint correto.
Na tabela a seguir, os aplicativos descritos como na malha são aqueles que usam o plano de dados gerenciado pela Cloud Service Mesh para se comunicar com outros serviços. Esses aplicativos podem enviar tráfego para serviços dentro e fora da malha.
Recurso | 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 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 dá suporte a dados e topologias de plano de controle que atendam às suas necessidades de rede de serviços.
Recurso | 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.
Seleção 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 a Cloud Service Mesh usando as linguagens de programação a seguir. 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 | ✔ |
Nó | ✔ |
Protocolos de solicitação
Os aplicativos podem usar os seguintes protocolos de solicitação ao usar o Plano de dados configurado para a comunicação com o Cloud Service Mesh.
Recurso | Compatível |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Segurança do serviço
O Cloud Service Mesh oferece suporte à segurança de serviços com os seguintes personalizadas.
Recurso | 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 você que podem ser usados para direcionar, dividir e moldar o tráfego que 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 têm suporte quando o Cloud Service Mesh processa tráfego TCP (não HTTP(S).
Recurso | 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 a Visão geral dos serviços de back-end e Visão geral do balanceamento de carga avançado.
Recurso | 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
|
|
|
Resiliência do serviço
O Cloud Service Mesh oferece suporte a recursos que ajudam a melhorar a resiliência seus serviços. Por exemplo, é possível usar o Cloud Service Mesh para implementar um padrão de implantação azul-verde, testes canário ou quebra de circuito (Envoy, gRPC).
Recurso | 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 do serviço e do back-end para garantir a distribuição ideal do tráfego nos back-ends dos serviços. A Cloud Service Mesh é integrada à infraestrutura do Google Cloud para coletar automaticamente dados de capacidade. Também é possível definir e configurar a capacidade manualmente.
Recurso | 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 é compatível com esses tipos de implantações, ativando a redundância de várias zonas/regiões.
Recurso | 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 o back-end a integridade dos dados.
Para ver informações de referência, consulte Visão geral das verificações de integridade.
Recurso | 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:
|
✔ |
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. A Cloud Service Mesh não pode configurar a geração de registros e o rastreamento de um aplicativo do 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 envie solicitações de um determinado cliente da melhor maneira possível para o mesmo desde que ele esteja íntegro e tenha capacidade. Para mais informações, consulte a Visão geral dos serviços de back-end.
Recurso | 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 é compatível com topologias de rede comuns do Google Cloud.
Recurso | 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 de 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
- Para saber mais sobre o Cloud Service Mesh, consulte a Visão geral do Cloud Service Mesh.
- Para encontrar casos de uso e padrões de arquitetura para serviços do gRPC sem proxy, consulte a Visão geral dos serviços do gRPC sem proxy.