Visão geral do Cloud Service Mesh
O Cloud Service Mesh é uma malha de serviço disponível no Google Cloud e em plataformas do GKE Enterprise com suporte. Ele oferece suporte a serviços executados em uma variedade de infraestruturas de computação. O Cloud Service Mesh é controlado por APIs projetadas para o Google Cloud, para código aberto ou para os dois.
Este documento é para você se você for um novo usuário do Cloud Service Mesh ou um 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 por muitos microsserviços na infraestrutura escolhida. As malhas de serviço gerenciam os requisitos comuns de execução de um serviço, como monitoramento, rede e segurança, com ferramentas consistentes e avançadas, facilitando o foco dos desenvolvedores e operadores de serviço na criação e no gerenciamento de bons 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 de entrada e saída dos seus serviços. No Kubernetes, um proxy é implantado por um padrão de sidecar nos microsserviços da malha. No Compute Engine, é possível implantar proxies em VMs ou usar o 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 conforme o escalonamento. A malha de serviços ajuda a resolver o problema de fragmentação e facilita o gerenciamento dos microsserviços.
O que é a malha de serviços do Cloud?
O Cloud Service Mesh é a solução do Google para o Google Cloud e os ambientes compatíveis do GKE Enterprise.
- No Google Cloud: o Cloud Service Mesh fornece APIs
específicas para a infraestrutura de computação em que as cargas de trabalho são executadas.
- Para cargas de trabalho do Compute Engine, o Cloud Service Mesh usa APIs de roteamento de serviço específicas do Google Cloud.
- Para cargas de trabalho do Google Kubernetes Engine (GKE), o Cloud Service Mesh usa as APIs de código aberto do Istio.
- Fora do Google Cloud: com o Distributed Cloud ou o GKE multicloud, o Cloud Service Mesh oferece suporte às APIs Istio para cargas de trabalho do Kubernetes.
Com o Cloud Service Mesh, você pode gerenciar, observar e proteger seus serviços sem precisar mudar o código do aplicativo.
A Cloud Service Mesh reduz o esforço 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 gerenciar ambientes complexos e aproveitar os benefícios prometidos.
Recursos
O Cloud Service Mesh tem um pacote de recursos para gerenciamento de tráfego, observabilidade e telemetria e segurança.
Gerenciamento de tráfego
O Cloud Service Mesh controla o fluxo de tráfego entre os serviços na malha, na malha (entrada) e para serviços externos (saída). Você configura e implanta recursos para gerenciar esse tráfego na camada do aplicativo (L7). Por exemplo, é possível realizar estas ações:
- Use a descoberta de serviços.
- Configurar o balanceamento de carga entre serviços.
- Crie implantações canário e azul-verde.
- Controle o roteamento dos seus serviços.
- Configurar disjuntores.
O Cloud Service Mesh mantém uma lista de todos os serviços na malha por nome e pelos respectivos endpoints. Ela mantém essa lista para gerenciar o fluxo de tráfego (por exemplo, endereços IP do pod do Kubernetes ou 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 do gRPC sem proxy também podem ser usadas em paralelo com cargas de trabalho que usam proxies do Envoy.
Insights sobre observabilidade
A interface do usuário do Cloud Service Mesh no console do Google Cloud oferece insights sobre a malha de serviço. Essas métricas são geradas automaticamente para cargas de trabalho configuradas pelas APIs do Istio.
- Métricas e registros de serviço para 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 você entender seus serviços.
- A telemetria detalhada, com a tecnologia do Cloud Monitoring, Cloud Logging e Cloud Trace, permite aprofundar a análise das métricas do serviço e registros. É possível filtrar e segmentar os dados em vários atributos.
- As relações de serviço a serviço ajudam a entender rapidamente as dependências entre serviços e quem se conecta a cada serviço.
- É possível conferir 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. Você pode definir um SLO e um alerta para seus próprios padrões de integridade de serviço.
Saiba mais sobre os recursos de observabilidade do Cloud Service Mesh 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 de 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.
- Mitiga o risco de clientes não autorizados acessarem um serviço com dados sensíveis, 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. É possível garantir que as pessoas com acesso só possam acessar dados sensíveis 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 do Service Mesh no Guia de segurança.
Opções de implantação
Você tem as seguintes opções de implantação no Cloud Service Mesh:
- No Google Cloud
- Cloud Service Mesh gerenciado: plano de controle e de dados gerenciados para o GKE (recomendado)
- Cloud Service Mesh gerenciado: plano de controle e de dados gerenciado para o Compute Engine com VMs (recomendado)
- Plano de controle no cluster para o GKE com APIs do Istio (desaconselhado)
- Fora do Google Cloud
- Plano de controle no cluster para Kubernetes com APIs do Istio
Cloud Service Mesh gerenciado
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 Managed Cloud Service Mesh, o Google lida com upgrades, escalonamento e segurança para você, minimizando a manutenção manual do usuário. Isso inclui o plano de controle, o plano de dados e os recursos relacionados.
Implementação do plano de dados
Se você usa as APIs do Google Cloud, seu plano de dados pode ser fornecido por proxies do Envoy ou por aplicativos gRPC sem proxy. Se você estiver atualizando um aplicativo existente, a abordagem baseada em sidecar permite a integração à malha sem alterar o aplicativo. Se você quiser evitar a sobrecarga de execução de um sidecar, atualize o 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ê usar o gRPC sem proxy, poderá escolher entre as linguagens compatíveis para seus aplicativos, incluindo Go, C++, Java e Python.
Se você usar APIs do Istio de código aberto, seu plano de dados será fornecido por proxies do Envoy.
Implementação do plano de controle
O plano de controle do Cloud Service Mesh depende se a configuração está ativada ou desativada no Google Cloud e se você é um novo cliente.
Implementação do plano de controle para usuários
- Se a configuração estiver fora do Google Cloud, você estará usando o plano de controle não gerenciado do cluster do Cloud Service Mesh. Para mais informações, consulte Recursos compatíveis com o plano de controle no cluster.
- Se você era um usuário do Anthos Service Mesh no Google Cloud, está usando as APIs do Istio. Para mais informações, consulte Recursos compatíveis com as APIs do Istio (plano de controle gerenciado) .
- Se você era um usuário do Traffic Director, está usando o plano de controle gerenciado da Cloud Service Mesh com as APIs do Google Cloud. Para mais informações, consulte Recursos compatíveis do Cloud Service Mesh com as APIs do Google Cloud.
Para determinar seu plano de controle atual, leia Identificar a implementação do plano de controle. Para mais informações sobre planos de controle e migração, consulte Visão geral do plano de controle gerenciado para clientes atuais.
Implementação do plano de controle para novos usuários
- Se você estiver planejando uma configuração fora do Google Cloud, estará escolhendo o plano de controle não gerenciado no cluster do Cloud Service Mesh. Para mais informações, consulte Recursos compatíveis com o plano de controle no cluster.
- Se você estiver planejando uma configuração no Google Cloud no Kubernetes, você está escolhendo as APIs do Istio, mas seu plano de controle usa a implementação do Traffic Director, exceto em determinados casos detalhados em O que determina a implementação do plano de controle. Consulte Recursos compatíveis com as APIs do Istio (plano de controle gerenciado) para mais detalhes.
- Se você planeja uma configuração no Google Cloud em VMs do Compute Engine, seu plano de controle usa o plano de controle global multiusuário, conhecido como implementação do Traffic Director. Para mais informações, consulte Recursos compatíveis do Cloud Service Mesh com as APIs do Google Cloud.
Migração do plano de controle
Se você for um cliente do Anthos Service Mesh e usar as APIs do Istio, seus clusters vão começar a migrar para o plano de controle do Traffic Director. Você pode continuar usando as APIs do Istio para configuração.
Para determinar se os clusters ainda usam o plano de controle do Istio ou se foram migrados para o novo plano de controle global, leia Identificar a implementação do plano de controle.
A seguir
- Se você for um usuário contínuo, leia Plano de controle gerenciado para clientes contínuos.
- Se você planeja configurar com o GKE, consulte Provisionar um plano de controle.
- Se você planeja configurar com o Compute Engine e as VMs, leia Preparar a configuração nas APIs de roteamento de serviço com o Envoy e cargas de trabalho sem proxy.