Vista geral do Cloud Service Mesh
O Cloud Service Mesh é uma malha de serviços disponível no Google Cloud e em plataformas GKE Enterprise suportadas. Suporta serviços executados numa variedade de infraestruturas de computação. A malha de serviço na nuvem é controlada por APIs concebidas para Google Cloud, para código aberto ou para ambas.
Este documento destina-se a si se for um novo utilizador do Cloud Service Mesh ou um cliente contínuo do Anthos Service Mesh ou do Traffic Director.
O que é uma malha de serviços?
Uma malha de serviços é uma arquitetura que permite uma comunicação gerida, observável e segura entre os seus serviços, o que facilita a criação de aplicações empresariais robustas compostas por muitos microsserviços na infraestrutura escolhida. As malhas de serviços gerem os requisitos comuns da execução de um serviço, como a monitorização, a rede e a segurança, com ferramentas consistentes e poderosas, o que facilita aos programadores e operadores de serviços a concentração na criação e gestão de excelentes aplicações para os respetivos utilizadores.
Do ponto de vista da arquitetura, uma malha de serviços consiste num ou mais planos de controlo e num plano de dados. A malha de serviços monitoriza todo o tráfego de entrada e saída dos seus serviços. No Kubernetes, um proxy é implementado por um padrão de sidecar para os microserviços na malha. No Compute Engine, pode implementar proxies em VMs ou usar o gRPC sem proxy para o plano de dados.
Este padrão desvincula a lógica da aplicação ou da empresa das funções de rede e permite que os programadores se concentrem nas funcionalidades de que a empresa precisa. As malhas de serviços também permitem que as equipas de operações e as equipas de desenvolvimento desassociem o respetivo trabalho.
Criar a arquitetura das suas aplicações como microsserviços oferece muitas vantagens. No entanto, as cargas de trabalho podem tornar-se mais complexas e fragmentadas à medida que são dimensionadas. A malha de serviços ajuda a resolver o problema de fragmentação e facilita a gestão dos seus microsserviços.
O que é o Cloud Service Mesh?
O Cloud Service Mesh é a solução da Google para ambientes do GKE Enterprise e do Google Cloud
- Ativado Google Cloud: o Cloud Service Mesh fornece APIs específicas da infraestrutura de computação na qual as suas cargas de trabalho são executadas.
- Para cargas de trabalho do Compute Engine, o Cloud Service Mesh usa Google CloudAPIs de encaminhamento de serviços específicas.
- Para cargas de trabalho do Google Kubernetes Engine (GKE), o Cloud Service Mesh usa as APIs Istio de código aberto.
- Desativado Google Cloud: com o Distributed Cloud ou o GKE multicloud, o Cloud Service Mesh suporta as APIs Istio para cargas de trabalho do Kubernetes.
Com o Cloud Service Mesh ativado ou desativado Google Cloud, pode gerir, observar e proteger os seus serviços sem ter de alterar o código da aplicação.
O Cloud Service Mesh reduz o esforço das suas equipas de operações e desenvolvimento, simplificando a entrega de serviços, desde a gestão de tráfego e a telemetria da malha até à proteção das comunicações entre serviços. A malha de serviços totalmente gerida da Google permite-lhe gerir ambientes complexos e desfrutar das vantagens que prometem.
Funcionalidades
O Cloud Service Mesh tem um conjunto de funcionalidades para gestão de tráfego, observabilidade e telemetria, e segurança.
Gestão de tráfego
O Cloud Service Mesh controla o fluxo de tráfego entre serviços na malha, para a malha (entrada) e para serviços externos (saída). Configura e implementa recursos para gerir este tráfego na camada de aplicação (L7). Por exemplo, pode fazer o seguinte:
- Use a deteção de serviços.
- Configurar o balanceamento de carga entre serviços.
- Crie implementações canárias e azul-verde.
- Controle com precisão o encaminhamento dos seus serviços.
- Configure disjuntores.
O Cloud Service Mesh mantém uma lista de todos os serviços na malha por nome e pelos respetivos pontos finais. Mantém esta lista para gerir o fluxo de tráfego (por exemplo, endereços IP de pods do Kubernetes ou os endereços IP de VMs do Compute Engine num grupo de instâncias geridas). Ao usar este registo de serviços e executar os proxies lado a lado com os serviços, a malha pode direcionar o tráfego para o ponto final adequado. Os encargos de trabalho gRPC sem proxy também podem ser usados em paralelo com encargos de trabalho que usam proxies Envoy.
Estatísticas de observabilidade
A interface do utilizador do Cloud Service Mesh na Google Cloud consola fornece estatísticas sobre a sua malha de serviços. Estas métricas são geradas automaticamente para cargas de trabalho configuradas através das APIs Istio.
- As métricas e os registos de serviços para o tráfego HTTP no cluster do GKE da sua malha são carregados automaticamente para o Google Cloud.
- Os painéis de controlo de serviços pré-configurados fornecem as informações necessárias para compreender os seus serviços.
- A telemetria detalhada, com tecnologia do Cloud Monitoring, Cloud Logging e Cloud Trace, permite-lhe analisar detalhadamente as métricas e os registos do seu serviço. Pode filtrar e segmentar os seus dados com uma grande variedade de atributos.
- As relações entre serviços ajudam a compreender rapidamente as dependências entre serviços e quem se liga a cada serviço.
- Pode ver rapidamente a postura de segurança da comunicação não só do seu serviço, mas também das respetivas relações com outros serviços.
- Os objetivos ao nível do serviço (SLOs) dão-lhe estatísticas sobre o estado dos seus serviços. Pode definir um SLO e receber alertas com base nos seus próprios padrões de estado de funcionamento do serviço.
Saiba mais sobre as funcionalidades de observabilidade do Cloud Service Mesh no nosso guia de observabilidade.
Vantagens de segurança
O Cloud Service Mesh oferece-lhe muitas vantagens ao nível da segurança.
- Mitiga o risco de ataques de repetição ou roubo de identidade que usam credenciais roubadas. O Cloud Service Mesh baseia-se em certificados TLS mútuos (mTLS) para autenticar pares, em vez de tokens de portador, como tokens da Web JSON (JWT).
- Garante a encriptação em trânsito. A utilização do mTLS para autenticação também garante que todas as comunicações TCP são encriptadas em trânsito.
- Mitiga o risco de que clientes não autorizados possam aceder a um serviço com dados confidenciais, independentemente da localização de rede do cliente e das credenciais ao nível da aplicação.
- Mitiga o risco de violação de dados de utilizadores na sua rede de produção. Pode garantir que os intervenientes internos só podem aceder a dados confidenciais através de clientes autorizados.
- Identifica os clientes que acederam a um serviço com dados sensíveis. O registo de acesso do Cloud Service Mesh captura a identidade mTLS do cliente, além do endereço IP.
- Todos os componentes do plano de controlo no cluster são criados com módulos de encriptação validados pela FIPS 140-2.
Saiba mais sobre as vantagens e as funcionalidades de segurança da Service Mesh no guia de segurança.
Opções de implementação
Tem as seguintes opções de implementação na Cloud Service Mesh:
- A Google Cloud
- Managed Cloud Service Mesh: plano de controlo e plano de dados geridos para o GKE (recomendado)
- Managed Cloud Service Mesh: plano de controlo e plano de dados geridos para o Compute Engine com MVs (recomendado)
- Plano de controlo no cluster para o GKE com APIs Istio (desaconselhado)
- Desativado Google Cloud
- Plano de controlo no cluster para o Kubernetes com APIs Istio
Managed Cloud Service Mesh
A malha de serviços na nuvem gerida consiste no plano de controlo gerido para todas as infraestruturas e no plano de dados gerido para o GKE. Com o Managed Cloud Service Mesh, a Google processa as atualizações, o escalonamento e a segurança por si, minimizando a manutenção manual do utilizador. Isto abrange o plano de controlo, o plano de dados e os recursos relacionados.
Implementação do plano de dados
Se usar Google Cloud APIs, o seu plano de dados pode ser fornecido por proxies Envoy ou por aplicações gRPC sem proxy. Se estiver a atualizar uma aplicação existente, a abordagem baseada em sidecar permite a integração na malha sem alterar a sua aplicação. Se quiser evitar a sobrecarga da execução de um sidecar, pode atualizar a sua aplicação para usar o gRPC.
Os proxies Envoy e o gRPC sem proxy usam a API xDS para se ligarem ao plano de controlo. Se usar o gRPC sem proxy, tem uma escolha de idiomas suportados para as suas aplicações, incluindo Go, C++, Java e Python.
Se usar APIs Istio de código aberto, o plano de dados é fornecido por proxies Envoy.
Implementação do plano de controlo
O plano de controlo do Cloud Service Mesh depende de a sua configuração estar ativada ou desativada Google Cloud e de ser um novo cliente.
Implementação do plano de controlo para utilizadores existentes
- Se a sua configuração estiver desativada Google Cloud, está a usar o plano de controlo não gerido no cluster do Cloud Service Mesh. Para mais informações, consulte o artigo Funcionalidades suportadas do plano de controlo no cluster.
- Se usava o Anthos Service Mesh no Google Cloud, está a usar as APIs Istio. Para mais informações, consulte o artigo Funcionalidades suportadas através das APIs Istio (plano de controlo gerido) .
- Se era utilizador do Traffic Director, está a usar o plano de controlo gerido do Cloud Service Mesh com Google Cloud APIs. Para mais informações, consulte a secção Cloud Service Mesh com Google Cloud funcionalidades suportadas pelas APIs.
Para determinar o seu plano de controlo atual, leia o artigo Identifique a implementação do plano de controlo. Para mais informações sobre os planos de controlo e a migração do plano de controlo, consulte o artigo Vista geral do plano de controlo gerido para clientes contínuos.
Implementação do plano de controlo para novos utilizadores
- Se estiver a planear uma configuraçãoGoogle Cloud desativada, está a escolher o plano de controlo não gerido no cluster do Cloud Service Mesh. Para mais informações, consulte o artigo Funcionalidades suportadas do plano de controlo no cluster.
- Se estiver a planear uma configuraçãoGoogle Cloud no Kubernetes, está a escolher as APIs Istio, mas o seu plano de controlo usa a implementação do Traffic Director, exceto em determinados casos detalhados no artigo O que determina a implementação do plano de controlo. Consulte o artigo Funcionalidades suportadas através das APIs Istio (plano de controlo gerido) para ver mais detalhes.
- Se estiver a planear uma configuração no Compute Engine VMs, o seu plano de controlo usa o plano de controlo global de vários inquilinos, conhecido como a implementação do Traffic Director.Google Cloud Para mais informações, consulte o artigo Cloud Service Mesh com Google Cloud funcionalidades suportadas pelas APIs.
Migração do plano de controlo
Se for um cliente do Anthos Service Mesh e usar as APIs Istio, os seus clusters vão começar a migrar para o plano de controlo do Traffic Director. Pode continuar a usar as APIs Istio para configuração.
Para determinar se os seus clusters continuam a usar o painel de controlo do Istio ou se foram migrados para o novo painel de controlo global, leia o artigo Identifique a implementação do painel de controlo.
O que se segue?
- Se for um utilizador contínuo, leia o artigo Plano de controlo gerido para clientes contínuos.
- Se planeia fazer a configuração com o GKE, leia o artigo Aprovisione um plano de controlo.
- Se planeia fazer a configuração com o Compute Engine e as VMs, leia o artigo Prepare-se para fazer a configuração nas APIs de encaminhamento de serviços com o Envoy e cargas de trabalho sem proxy.