Informações gerais do Cloud Service Mesh

do tipo

O Cloud Service Mesh é uma malha de serviço disponível no Google Cloud e em plataformas do GKE Enterprise com suporte. Ele dá suporte a serviços executados em diversas infraestruturas de computação. O Cloud Service Mesh é controlado por APIs projetadas para o Google Cloud, para código aberto ou para ambos.

Este documento é para quem está começando a usar o Cloud Service Mesh ou é cliente do Anthos Service Mesh ou do Traffic Director.

O que é uma malha de serviço?

Uma malha de serviço é uma arquitetura que permite a comunicação gerenciada, observável e segura entre seus serviços, facilitando a criação de aplicativos empresariais robustos compostos de muitos microsserviços na infraestrutura escolhida. As malhas de serviço gerenciam os requisitos comuns da execução de um serviço, como monitoramento, rede e segurança, com ferramentas consistentes e eficientes. Assim, os desenvolvedores e operadores de serviços podem se concentrar na criação e no gerenciamento de ótimos aplicativos para os usuários.

Em termos de arquitetura, uma malha de serviço consiste em um ou mais planos de controle e um plano de dados. A malha de serviço monitora todo o tráfego que entra e sai dos serviços. No Kubernetes, um proxy é implantado por um padrão de arquivo secundário nos microsserviços na malha. No Compute Engine, é possível implantar proxies em VMs ou usar gRPC sem proxy para o plano de dados.

Esse padrão dissocia a lógica de aplicativo ou de negócios das funções de rede e permite que os desenvolvedores se concentrem nos recursos necessários para os negócios. As malhas de serviço também permitem que as equipes de operações e de desenvolvimento separem o trabalho uma da outra.

Arquitetar os aplicativos como microsserviços oferece muitos benefícios. No entanto, as cargas de trabalho podem ficar mais complexas e fragmentadas à medida que são escalonadas. A malha de serviço ajuda a resolver o problema de fragmentação e facilita o gerenciamento dos microsserviços.

O que é o Cloud Service Mesh?

O Cloud Service Mesh é a solução do Google para o Google Cloud e para ambientes do GKE Enterprise com suporte.

  • No Google Cloud: o Cloud Service Mesh fornece APIs específicas para a infraestrutura de computação em que suas cargas de trabalho são executadas.
  • Fora do Google Cloud: com o Distributed Cloud Virtual ou o GKE multicloud, o Cloud Service Mesh é compatível com as APIs do Istio para cargas de trabalho do Kubernetes.

Seja no Google Cloud ou fora dele, o Cloud Service Mesh permite gerenciar, observar e proteger seus serviços sem precisar alterar o código do aplicativo.

O Cloud Service Mesh reduz o trabalho das equipes de operações e desenvolvimento simplificando a entrega de serviços, desde o gerenciamento de tráfego e a telemetria de malha até a segurança das comunicações entre serviços. A malha de serviço totalmente gerenciada do Google permite administrar ambientes complexos e aproveitar os benefícios prometidos.

Recursos

O Cloud Service Mesh tem um pacote de recursos para gerenciamento de tráfego, observabilidade, telemetria e segurança.

Gerenciamento de tráfego

O Cloud Service Mesh controla o fluxo de tráfego entre os serviços na malha, para a malha (entrada) e para os serviços externos (saída). Você configura e implanta recursos para gerenciar esse tráfego na camada (L7) do aplicativo. Por exemplo, é possível realizar estas ações:

  • Usar a descoberta de serviços.
  • Configurar o balanceamento de carga entre serviços.
  • Criar implantações canário e azul-verde.
  • Controle muito bem o roteamento dos seus serviços.
  • Instale os disjuntores.

O Cloud Service Mesh mantém uma lista de todos os serviços na malha por nome e pelos respectivos endpoints. Ele mantém essa lista para gerenciar o fluxo de tráfego (por exemplo, endereços IP do pod do Kubernetes ou os endereços IP de VMs do Compute Engine em um grupo de instâncias gerenciadas). Ao usar esse registro de serviço e executar os proxies lado a lado com os serviços, a malha pode direcionar o tráfego para o endpoint apropriado. As cargas de trabalho gRPC sem proxy também podem ser usadas em paralelo com cargas de trabalho usando proxies Envoy.

Insights sobre observabilidade

A interface do usuário do Cloud Service Mesh no console do Google Cloud fornece insights sobre a malha de serviço. Essas métricas são geradas automaticamente para cargas de trabalho configuradas usando as APIs do Istio.

  • Os registros e as métricas de serviço do tráfego HTTP no cluster do GKE da malha são ingeridos automaticamente no Google Cloud.
  • Os painéis de serviço pré-configurados mostram as informações necessárias para entender seus serviços.
  • Com a telemetria detalhada, com tecnologia do Cloud Monitoring, Cloud Logging e Cloud Trace, é possível se aprofundar nas métricas e registros de serviço. É possível filtrar e segmentar os dados em vários atributos.
  • As relações entre serviços ajudam você a entender rapidamente as dependências entre serviços e quem se conecta a cada serviço.
  • É possível ver rapidamente a postura de segurança da comunicação não apenas do seu serviço, mas também das relações com outros serviços.
  • Os objetivos de nível de serviço (SLOs, na sigla em inglês) oferecem insights sobre a integridade dos serviços. É possível definir um SLO e um alerta de acordo com seus próprios padrões de integridade do serviço.

Saiba mais sobre os recursos de observabilidade do Cloud Service Meshs no nosso Guia de observabilidade.

Benefícios de segurança

O Cloud Service Mesh oferece muitos benefícios de segurança.

  • Reduz os riscos de ataques de reprodução ou de falsificação de identidade que usam credenciais roubadas. O Cloud Service Mesh depende de certificados TLS mútuos (mTLS) para autenticar pares em vez de tokens do portador, como JSON Web Tokens (JWT).
  • Garante a criptografia em trânsito. O uso da mTLS para autenticação também garante que todas as comunicações TCP sejam criptografadas em trânsito.
  • Diminui o risco de que clientes não autorizados possam acessar um serviço com dados confidenciais, independentemente do local da rede do cliente e das credenciais no nível do aplicativo.
  • Reduz o risco de violação de dados do usuário na rede de produção. Você pode garantir que pessoas com informações privilegiadas só possam acessar dados confidenciais por meio de clientes autorizados.
  • Identifica quais clientes acessaram um serviço com dados confidenciais. A geração de registros de acesso do Cloud Service Mesh captura a identidade mTLS do cliente, além do endereço IP.
  • Todos os componentes do plano de controle no cluster são criados com módulos de criptografia validados pelo FIPS 140-2.

Saiba mais sobre os benefícios e recursos de segurança da malha de serviço no Guia de segurança.

Opções de implementação

Você tem as seguintes opções de implantação no Cloud Service Mesh:

  • No Google Cloud
    • Cloud Service Mesh gerenciado: controle gerenciado e plano de dados para o GKE (recomendado)
    • Cloud Service Mesh gerenciado: controle e plano de dados gerenciados para o Compute Engine com VMs (recomendado)
    • Plano de controle no cluster para GKE com APIs do Istio (não recomendado)
  • Fora do Google Cloud
    • Plano de controle no cluster para Kubernetes com APIs do Istio

Malha de serviço gerenciada do Cloud

O Cloud Service Mesh gerenciado consiste no plano de controle gerenciado para todas as infraestruturas e no plano de dados gerenciado para o GKE. Com o Cloud Service Mesh gerenciado, o Google cuida de upgrades, escalonamento e segurança para você, minimizando a manutenção manual do usuário. Isso abrange o plano de controle, o plano de dados e os recursos relacionados.

Implementação do plano de dados

Se você usa APIs do Google Cloud, seu plano de dados pode ser fornecido por proxies Envoy ou por aplicativos gRPC sem proxy. Caso esteja atualizando um aplicativo já existente, a abordagem baseada em arquivo secundário permite a integração na malha sem alterar o aplicativo. Se você quiser evitar a sobrecarga da execução de um arquivo secundário, atualize seu aplicativo para usar o gRPC.

Os proxies Envoy e o gRPC sem proxy usam a API xDS para se conectar ao plano de controle. Se você usa gRPC sem proxy, tem uma opção de linguagens compatíveis com seus aplicativos, incluindo Go, C++, Java e Python.

Se você usa APIs do Istio de código aberto, seu plano de dados é fornecido por proxies Envoy.

Implementação do plano de controle

Seu plano de controle do Cloud Service Mesh depende da configuração estar ativada ou desativada no Google Cloud e se você é um novo cliente.

Implementação do plano de controle para usuários atuais

Para determinar o plano de controle atual, leia Identificar a implementação do plano de controle. Para mais informações sobre planos de controle e migração de plano de controle, consulte Visão geral do plano de controle gerenciado para clientes contínuos.

Implementação do plano de controle para novos usuários

Migração do plano de controle

Se você for um cliente contínuo do Anthos Service Mesh e usar as APIs do Istio, seus clusters começarão a migrar para o plano de controle do Traffic Director. É possível continuar usando as APIs do Istio para configuração.

Para determinar se os clusters ainda usam o plano de controle do Istio ou migraram para o novo plano de controle global, leia Identificar a implementação do plano de controle.

A seguir