Esta arquitetura de referência oferece uma solução altamente disponível e escalável que usa o Cloud Service Mesh e os gateways do Envoy para gerir o tráfego de rede para aplicações Windows executadas no Google Kubernetes Engine (GKE). Explica como gerir esse tráfego de rede através de um serviço que pode encaminhar o tráfego para pods e para um proxy compatível com xDS de código aberto. A utilização de uma arquitetura como esta pode ajudar a reduzir os custos e melhorar a gestão da rede.
Este documento destina-se a arquitetos da nuvem, administradores de rede e profissionais de TI responsáveis pela conceção e gestão de aplicações Windows executadas no GKE.
Arquitetura
O diagrama seguinte mostra uma arquitetura para gerir a rede de aplicações Windows executadas no GKE através da malha de serviços da nuvem e dos gateways do Envoy:
A arquitetura inclui os seguintes componentes:
- Um cluster regional do GKE com pools de nós do Windows e do Linux.
- Duas aplicações Windows em execução em dois pods do GKE separados.
- Cada aplicação é exposta por um serviço do Kubernetes do tipo
ClusterIP
e um grupo de pontos finais da rede (NEG).
- Cada aplicação é exposta por um serviço do Kubernetes do tipo
- O Cloud Service Mesh cria e gere as rotas de tráfego para os NEGs de cada pod do GKE. Cada rota é mapeada para um
scope
específico. Quescope
identifica de forma exclusiva um gateway de entrada do Cloud Service Mesh. - Rotas HTTP que mapeiam os serviços de back-end para a malha de serviços na nuvem.
- EnvoyEnvoy que atuam como um gateway do Envoy para o cluster do GKE.
- Gateways Envoy que são executados em nós Linux. Os gateways estão configurados para
direcionar o tráfego para as aplicações Windows através dos serviços que
correspondem a essas aplicações. 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 aplicações interno que termina o tráfego SSL e direciona todo o tráfego de entrada externo para os gateways do Envoy.
Produtos usados
Esta arquitetura de referência usa os seguintes produtos Google Cloud e de terceiros:
Google Cloud produtos
- Cloud Load Balancing: um portefólio de balanceadores de carga globais, escaláveis e de elevado desempenho, bem como balanceadores de carga regionais.
- Google Kubernetes Engine (GKE): um serviço Kubernetes que pode usar para implementar e operar aplicações em contentores em grande escala através da infraestrutura da Google.
- Cloud Service Mesh: um conjunto de ferramentas que ajuda a monitorizar e gerir uma malha de serviços fiável no local ou no Google Cloud.
Produtos de terceiros
- Envoy Gateway: gerencia um proxy Envoy como um gateway de aplicação autónomo ou baseado no Kubernetes.
- API Gateway: Um projeto oficial do Kubernetes focado no encaminhamento L4 e L7 no Kubernetes.
Exemplo de utilização
O principal exemplo de utilização desta arquitetura de referência é gerir o tráfego de rede para aplicações Windows executadas no GKE. Esta arquitetura oferece as seguintes vantagens:
Gestão de rede simplificada: a malha de serviços na nuvem e as gateways Envoy oferecem uma gestão de rede simplificada através de um plano de controlo centralizado que gere o tráfego de rede para as aplicações. Estas aplicações podem ser aplicações Linux ou Windows executadas no GKE ou no Compute Engine. A utilização deste esquema de gestão de rede simplificado reduz a necessidade de configuração manual.
Escalabilidade e disponibilidade melhoradas: para satisfazer as suas exigências em constante mudança, use a malha de serviços na nuvem e os gateways do Envoy para dimensionar as suas aplicações Linux e Windows. Também pode usar gateways Envoy para oferecer alta disponibilidade às suas aplicações através do equilíbrio de carga do tráfego em vários pods.
Segurança melhorada: use gateways Envoy para adicionar funcionalidades de segurança às suas aplicações Linux e Windows, como a terminação SSL, a autenticação e a limitação de taxas.
Custos reduzidos: o Cloud Service Mesh e as gateways do Envoy podem ajudar a reduzir os custos de gestão do tráfego de rede para aplicações Linux e Windows.
Considerações de design
Esta secção fornece orientações para ajudar a desenvolver uma arquitetura que cumpra os seus requisitos específicos de segurança, fiabilidade, custo e eficiência.
Segurança
- Rede segura: a arquitetura usa um Application Load Balancer interno para encriptar o tráfego recebido para os contentores do Windows. A encriptação em trânsito ajuda a evitar a fuga de dados.
- Contentores Windows: os contentores Windows ajudam a oferecer um ambiente seguro e isolado para aplicações contentorizadas.
Fiabilidade
- Balanceamento de carga: a arquitetura usa várias camadas do Cloud Load Balancing para distribuir o tráfego pelos gateways do Envoy e pelos contentores do Windows.
- Tolerância a falhas: esta arquitetura é tolerante a falhas e não tem um único ponto de falha. Este design ajuda a garantir que está sempre disponível, mesmo que um ou mais componentes falhem.
- Dimensionamento automático: a arquitetura usa o dimensionamento automático para dimensionar automaticamente o número de gateways Envoy e contentores Windows com base na carga. O dimensionamento automático ajuda a garantir que os gateways e as aplicações conseguem processar picos de tráfego sem sofrer problemas de desempenho.
- Monitorização: a arquitetura usa o Google Cloud Managed Service for Prometheus e o Cloud Operations para monitorizar o estado dos gateways do Envoy e dos contentores Windows. A monitorização ajuda a identificar problemas antecipadamente e, potencialmente, a impedir que interrompam as suas aplicações.
Otimização de custos
- Escolha os tipos de instâncias certos para as suas cargas de trabalho: tenha em atenção os seguintes fatores ao escolher os tipos de instâncias:
- O número de CPUs virtuais e memória que as suas aplicações requerem
- A carga de tráfego esperada para as suas aplicações
- A necessidade de os utilizadores terem aplicações altamente disponíveis
Use a escala automática: a escala automática pode ajudar a poupar dinheiro ao escalar automaticamente as suas cargas de trabalho do Windows vertical e horizontalmente.
O escalamento vertical ajusta os pedidos e os limites dos contentores de acordo com a utilização do cliente.
- Automatize a escala vertical com a escala automática vertical de pods.
O escalamento horizontal adiciona ou remove pods do Kubernetes para satisfazer a procura.
- Automatize a escala horizontal com a escala automática horizontal de pods.
Use o Cloud Service Mesh e os gateways do Envoy: O Cloud Service Mesh e os gateways do Envoy podem ajudar a poupar dinheiro através do encaminhamento eficiente do tráfego para as suas aplicações Windows. A utilização de um encaminhamento mais eficiente pode ajudar a reduzir a quantidade de largura de banda que tem de comprar. Também pode ajudar a melhorar o desempenho dessas aplicações.
Use redes da nuvem virtual privada (VPC) partilhadas: as redes da nuvem virtual privada partilhadas permitem-lhe partilhar uma única VPC em vários projetos. A partilha pode ajudar a poupar dinheiro ao reduzir o número de VPCs que tem de criar e gerir.
Eficiência operacional
- Vários domínios com um único balanceador de carga interno: a arquitetura usa balanceadores de carga de aplicações internos para descarregar o tráfego SSL. Cada proxy de destino HTTPS pode suportar vários certificados SSL (até ao máximo suportado) para gerir várias aplicações com domínios diferentes.
- Infraestrutura como código (IaC): para gerir a infraestrutura, a arquitetura pode ser implementada através da IaC. A IaC ajuda a garantir que a sua infraestrutura é consistente e repetível.
Implementação
Para implementar esta arquitetura, consulte o artigo Implemente aplicações Windows executadas no Kubernetes gerido.
O que se segue?
- Saiba mais sobre os Google Cloud produtos usados neste guia de design:
- Para ver mais arquiteturas de referência, diagramas e práticas recomendadas, explore o Centro de arquitetura na nuvem.
Colaboradores
Autor: Eitan Eibschutz | Staff Technical Solutions Consultant
Outros colaboradores:
- John Laham | Arquiteto de soluções
- Kaslin Fields | Consultor de programadores
- Maridi (Raju) Makaraju | Supportability Tech Lead
- Valavan Rajakumar | Key Enterprise Architect
- Victor Moreno | Gestor de produtos, redes na nuvem