Esta arquitetura de referência oferece uma solução altamente disponível e escalonável que usa o Cloud Service Mesh e os gateways Envoy para gerenciar o tráfego de rede de aplicativos Windows executados no Google Kubernetes Engine (GKE). Ela explica como gerenciar esse tráfego de rede usando um serviço que pode rotear o tráfego para pods e para um proxy compatível com xDS de código aberto. Usar uma arquitetura como essa pode ajudar a reduzir custos e melhorar o gerenciamento de rede.
Este documento é destinado a arquitetos de nuvem, administradores de rede e profissionais de TI responsáveis por projetar e gerenciar aplicativos Windows executados no GKE.
Arquitetura
O diagrama a seguir mostra uma arquitetura para gerenciar a rede de aplicativos Windows executados no GKE usando gateways do Envoy e Cloud Service Mesh:
A arquitetura inclui os seguintes componentes:
- Um cluster regional do GKE com pools de nós do Windows e do Linux.
- Dois aplicativos do Windows em execução em dois
pods do GKE separados.
- Cada aplicativo é exposto por um serviço do Kubernetes do tipo
ClusterIP
e um grupo de endpoints de rede (NEG).
- Cada aplicativo é exposto por um serviço do Kubernetes do tipo
- O Cloud Service Mesh cria e gerencia as rotas de tráfego para
os NEGs de cada pod do GKE. Cada rota é mapeada para um
scope
específico. Essescope
identifica exclusivamente um gateway de entrada do Cloud Service Mesh. - Rotas HTTP que mapeiam para os serviços de back-end para o Cloud Service Mesh.
- Pods de contêiner do Envoy que funcionam como um gateway do Envoy para o cluster do GKE.
- Gateways do Envoy que são executados em nós do Linux. Os gateways são configurados para direcionar o tráfego aos aplicativos Windows pelos serviços que correspondem a eles. O Envoy está configurado para usar o parâmetro
scope
para carregar os detalhes de configuração dos serviços relevantes do Cloud Service Mesh. - Um Balanceador de carga de aplicativo interno que encerra o tráfego SSL e direciona todo o tráfego de entrada externo para os gateways Envoy.
Produtos usados
Esta arquitetura de referência usa os seguintes produtos do Google Cloud e de terceiros:
Produtos do Google Cloud
- Cloud Load Balancing: um portfólio de balanceadores de carga globais, regionais, escalonáveis, globais e de alto desempenho.
- Google Kubernetes Engine (GKE): um serviço do Kubernetes que pode ser usado para implantar e operar aplicativos conteinerizados em escala usando a infraestrutura do Google.
- Cloud Service Mesh: um pacote de ferramentas que monitora e gerencia uma malha de serviço local confiável ou no Google Cloud.
Produtos terceirizados
- Gateway do Envoy: gerencia um proxy do Envoy como um gateway de aplicativo independente ou baseado no Kubernetes.
- API Gateway: um projeto oficial do Kubernetes focado no roteamento L4 e L7 no Kubernetes.
Caso de uso
O principal caso de uso dessa arquitetura de referência é gerenciar o tráfego de rede para aplicativos Windows executados no GKE. Essa arquitetura oferece os seguintes benefícios:
Gerenciamento de rede simplificado: Cloud Service Mesh e gateways do Envoy oferecem um gerenciamento de rede simplificado por meio de um sistema de controle que gerencia o tráfego de rede para aplicativos. Esses aplicativos podem ser Linux ou Windows executados no GKE ou Compute Engine. O uso desse esquema simplificado de gerenciamento de rede reduz a necessidade de configuração manual.
Escalonamento e disponibilidade aprimorados: para atender às demandas em mudança, use o Cloud Service Mesh e gateways do Envoy para escalonar seus aplicativos Linux e Windows. Também é possível usar gateways do Envoy para oferecer alta disponibilidade para seus aplicativos com o balanceamento de carga do tráfego em vários pods.
Segurança aprimorada: use os gateways Envoy para adicionar recursos de segurança aos seus aplicativos Linux e Windows, como terminação SSL, autenticação e limitação de taxa.
Custos reduzidos: os gateways Envoy e Cloud Service Mesh podem ajudar a reduzir os custos de gerenciamento do tráfego de rede nos aplicativos Linux e Windows.
Considerações sobre o design
Esta seção fornece orientações para ajudar você a desenvolver uma arquitetura que atenda aos seus requisitos específicos de segurança, confiabilidade, custo e eficiência.
Segurança
- Rede segura: a arquitetura usa um balanceador de carga de aplicativo interno para criptografar o tráfego de entrada para os contêineres do Windows. A criptografia em trânsito ajuda a evitar o vazamento de dados.
- Contêineres do Windows: ajudam a fornecer um ambiente seguro e isolado para aplicativos conteinerizados.
Confiabilidade
- Balanceamento de carga: a arquitetura usa várias camadas do Cloud Load Balancing para distribuir o tráfego entre os gateways do Envoy e os contêineres do Windows.
- Tolerância a falhas: essa arquitetura é tolerante a falhas e não tem um ponto único de falha. Esse design ajuda a garantir que ele esteja sempre disponível, mesmo que um ou mais componentes falhem.
- Escalonamento automático: a arquitetura usa escalonamento automático para escalonar o número de gateways do Envoy e contêineres do Windows com base na carga. O escalonamento automático garante que os gateways e os aplicativos podem lidar com picos de tráfego sem problemas de desempenho.
- Monitoramento: a arquitetura usa o Google Cloud Managed Service para Prometheus e o Cloud Operations para monitorar a integridade dos gateways do Envoy e dos contêineres do Windows. O monitoramento ajuda a identificar problemas precocemente e antes que eles interrompam seus aplicativos.
Otimização de custos
- Escolha os tipos de instância certos para suas cargas de trabalho: considere os seguintes fatores ao escolher os tipos de instância:
- O número de vCPUs e a memória que seus aplicativos exigem
- A carga de tráfego esperada para seus aplicativos
- A necessidade de os usuários terem aplicativos altamente disponíveis
Usar o escalonamento automático: o escalonamento automático pode ajudar a economizar dinheiro ao escalar automaticamente as cargas de trabalho do Windows vertical e horizontalmente.
O escalonamento vertical ajusta as solicitações e os limites de contêineres de acordo com o uso do cliente.
- Automatize o escalonamento vertical com o escalonamento automático vertical de pods.
O escalonamento horizontal adiciona ou remove pods do Kubernetes para atender à demanda.
- Automatize o escalonamento horizontal com o escalonamento automático e horizontal de pods.
Usar o Cloud Service Mesh e os gateways do Envoy: o Cloud Service Mesh e os gateways do Envoy podem ajudar a economizar dinheiro ao rotear o tráfego de maneira eficiente para seus aplicativos Windows. Usar mais o roteamento eficiente reduz a largura de banda necessária. Esse uso também pode ajudar a melhorar o desempenho desses aplicativos.
Usar redes de nuvem privada virtual (VPC) compartilhadas: as redes de nuvem privada virtual compartilhadas permitem compartilhar uma VPC única em vários projetos. O compartilhamento pode ajudar a economizar dinheiro, reduzindo o número de VPCs que você precisa criar e gerenciar.
Eficiência operacional
- Vários domínios com um único balanceador de carga interno: a arquitetura usa balanceadores de carga de aplicativo internos para descarregar o tráfego SSL. Cada proxy de destino HTTPS pode oferecer suporte a vários certificados SSL (até o máximo permitido) para gerenciar vários aplicativos com domínios diferentes.
- Infraestrutura como código (IaC): para gerenciar a infraestrutura, a arquitetura pode ser implantada usando a IaC. A IaC ajuda a garantir que sua infraestrutura seja consistente e repetível.
Implantação
Para implantar essa arquitetura, consulte Implantar aplicativos Windows em execução em Kubernetes gerenciados.
A seguir
- Saiba mais sobre os produtos do Google Cloud usados neste guia de design:
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autor: Eitan Eibschutz | Consultor de soluções técnicas da equipe
Outros colaboradores:
- John Laham | Arquiteto de soluções
- Kaslin Fields | Mediadora de desenvolvedores
- Maridi Raju Makaraju | Líder de tecnologia de suporte
- Valavan Rajakumar | Arquiteto corporativo fundamental
- Victor Moreno | Gerente de produtos, Cloud Networking