Vista geral do balanceador de carga de aplicações

O balanceador de carga de aplicações é um balanceador de carga da camada 7 baseado em proxy que lhe permite executar e dimensionar os seus serviços. O balanceador de carga de aplicações distribui o tráfego HTTP e HTTPS para back-ends alojados numa variedade de plataformas, como o Compute Engine, o Google Kubernetes Engine (GKE), o Cloud Storage e o Cloud Run, bem como back-ends externos ligados através da Internet ou através da conectividade híbrida. Google Cloud

Os equilibradores de carga de aplicações estão disponíveis nos seguintes modos de implementação:

  • Balanceador de carga de aplicações externo: equilibra o tráfego proveniente de clientes na Internet. Para ver detalhes da arquitetura, consulte o artigo Arquitetura do Application Load Balancer externo.

    Modo de implementação Nível de serviço de rede Esquema de balanceamento de carga Endereço IP Portas da interface
    Global externo Nível premium EXTERNAL_MANAGED IPv4
    IPv6

    Pode referenciar exatamente uma porta de 1 a 65535.

    Regional externo Nível Premium ou Standard EXTERNAL_MANAGED IPv4
    Clássico

    Global no nível Premium

    Regional no Standard Tier

    EXTERNO* IPv4
    IPv6 (requer nível Premium)
    * É possível anexar serviços de back-end da EXTERNAL_MANAGED a regras de encaminhamento da EXTERNAL. No entanto, não é possível anexar serviços de back-end da EXTERNAL a regras de encaminhamento da EXTERNAL_MANAGED. Para tirar partido das novas funcionalidades disponíveis apenas com o Application Load Balancer externo global, recomendamos que migre os seus recursos EXTERNAL existentes para EXTERNAL_MANAGED através do processo de migração descrito em Migre recursos do Application Load Balancer externo clássico para o global.
  • Balanceador de carga de aplicações interno: equilibra a carga do tráfego na sua rede VPC ou nas redes ligadas à sua rede VPC. Para ver detalhes da arquitetura, consulte o artigo Arquitetura do Application Load Balancer interno.

    Modo de implementação Nível de serviço de rede Esquema de balanceamento de carga Endereço IP Portas da interface
    Regional interno Nível premium INTERNAL_MANAGED IPv4

    Pode referenciar exatamente uma porta de 1 a 65535.

    Interno entre regiões*

    Nível premium INTERNAL_MANAGED IPv4

    * O balanceador de carga usa recursos globais e pode ser implementado numa ou em várias Google Cloud regiões à sua escolha.

O esquema de balanceamento de carga é um atributo da regra de encaminhamento e do serviço de back-end de um balanceador de carga e indica se o balanceador de carga pode ser usado para tráfego interno ou externo. O termo _MANAGED no esquema de balanceamento de carga indica que o balanceador de carga é implementado como um serviço gerido nos Google Front Ends (GFEs) ou no proxy Envoy de código aberto. Num esquema de balanceamento de carga _MANAGED, os pedidos são encaminhados para o GFE ou para o proxy Envoy.

Balanceador de carga de aplicações externo

Os equilibradores de carga de aplicações externos são implementados através de front-ends da Google (GFEs) ou proxies geridos. Os equilibradores de carga de aplicações externos globais e os equilibradores de carga de aplicações clássicos usam GFEs distribuídos globalmente, que funcionam em conjunto usando a rede global e o plano de controlo da Google. Os GFEs oferecem o equilíbrio de carga em várias regiões no nível Premium, direcionando o tráfego para o back-end saudável mais próximo que tenha capacidade e terminando o tráfego HTTP(S) o mais próximo possível dos seus utilizadores. Os balanceadores de carga de aplicações externos globais e os balanceadores de carga de aplicações externos regionais usam o software de proxy Envoy de código aberto para ativar capacidades avançadas de gestão de tráfego.

Estes equilibradores de carga podem ser implementados num dos seguintes modos: global, regional ou clássico.

Os balanceadores de carga de aplicações externos suportam as seguintes capacidades:

  • Gestão de tráfego avançada, como a replicação de tráfego, a divisão de tráfego baseada em ponderação e as transformações de cabeçalhos baseadas em pedidos/respostas. Para obter detalhes, consulte o artigo Vista geral da gestão de tráfego.
  • Balanceamento de carga do tráfego para back-ends alojados numa variedade de Google Cloud plataformas, como o Compute Engine, o Google Kubernetes Engine (GKE), o Cloud Run e muito mais. O apoio técnico de back-end depende do modo de implementação do balanceador de carga. Para ver detalhes, consulte a vista geral do balanceador de carga de aplicações externo.
  • Respostas em cache com o Cloud CDN.
  • Proteção contra DDoS ou outros ataques Web através do Google Cloud Armor.
  • Equilibrar a carga para o GKE usando Ingress ou Gateway (totalmente orquestrado) ou NEGs autónomos.
  • Organização de balanceadores de carga de aplicações externos regionais em aplicações do App Hub para compreender as interações dos balanceadores de carga de aplicações externos regionais e suportar as funções empresariais.

O diagrama seguinte mostra uma arquitetura de exemplo do Application Load Balancer externo.

Arquitetura do balanceador de carga de aplicações externo.
Arquitetura do balanceador de carga de aplicações externo.

Para uma vista geral completa, consulte o artigo Vista geral da arquitetura dos balanceadores de carga de aplicações externos.

Balanceador de carga de aplicações interno

Os balanceadores de carga de aplicações internos são balanceadores de carga regionais de camada 7 baseados no proxy Envoy que lhe permitem executar e dimensionar o tráfego da sua aplicação HTTP atrás de um endereço IP interno. Os equilibradores de carga de aplicações internos suportam back-ends numa região, mas podem ser configurados para serem acessíveis globalmente por clientes de qualquerGoogle Cloud região.

O balanceador de carga distribui o tráfego para back-ends alojados na Google Cloud, infraestrutura no local ou noutros ambientes de nuvem. Os balanceadores de carga de aplicações internos também suportam as seguintes funcionalidades:

  • Políticas de Localidade. Num grupo de instâncias de back-end ou num grupo de pontos finais da rede, pode configurar a forma como os pedidos são distribuídos às instâncias ou aos pontos finais membros. Para obter detalhes, consulte o artigo Gestão de tráfego.
  • Acesso global. Quando o acesso global está ativado, os clientes de qualquer região podem aceder ao equilibrador de carga. Para obter detalhes, consulte Ative o acesso global.
  • Acesso a partir de redes ligadas. Pode tornar o seu equilibrador de carga acessível a clientes de redes além da sua própria rede de nuvem virtual privada (VPC). Google CloudAs outras redes têm de estar ligadas à rede VPC do balanceador de carga através do peering de redes VPC, do Cloud VPN ou do Cloud Interconnect. Para ver detalhes, consulte Aceda a redes associadas.
  • Compatibilidade com o GKE através do Ingress (totalmente orquestrado). Para obter detalhes, consulte o artigo Configure o Ingress para balanceadores de carga de aplicações internos.
  • Organização de balanceadores de carga de aplicações internos regionais em aplicações do App Hub para compreender as interações dos balanceadores de carga de aplicações internos regionais e suportar funções empresariais.
Arquitetura do balanceador de carga de aplicações interno.
Arquitetura do balanceador de carga de aplicações interno.

Para uma vista geral completa, consulte o artigo Vista geral da arquitetura para balanceadores de carga de aplicações internos.

Exemplos de utilização

As secções seguintes descrevem alguns exemplos de utilização comuns para equilibradores de carga de aplicações.

Serviços Web de três camadas

Pode implementar uma combinação de equilibradores de carga de aplicações e equilibradores de carga de rede para suportar serviços Web convencionais de três camadas. O exemplo seguinte mostra como pode implementar cada nível, consoante o tipo de tráfego:

  • Nível Web. A interface de utilizador da aplicação é publicada por um Application Load Balancer externo com back-ends de grupos de instâncias. O tráfego entra a partir da Internet e é encaminhado por proxy do balanceador de carga para um conjunto de back-ends do grupo de instâncias em várias regiões. Estes back-ends enviam tráfego HTTP(S) para um conjunto de balanceadores de carga de aplicações internos.
  • Nível de aplicação. O middleware da aplicação é implementado e dimensionado através de um balanceador de carga de aplicações interno e back-ends de grupos de instâncias. Os balanceadores de carga distribuem o tráfego para grupos de instâncias de middleware. Em seguida, estes grupos de instâncias de middleware enviam o tráfego para balanceadores de carga de rede de passagem interna.
  • Nível da base de dados. Os balanceadores de carga de rede servem como front-ends para a camada de base de dados. Distribuem o tráfego para backends de armazenamento de dados em várias regiões.
Encaminhamento baseado na camada 7 numa aplicação Web de três camadas.
Encaminhamento baseado na camada 7 numa aplicação Web de três camadas.

Acesso global para balanceadores de carga de aplicações internos regionais

Se ativar o acesso global para o seu Application Load Balancer interno regional, as VMs do cliente de nível Web podem estar noutra região.

Este exemplo de aplicação de vários níveis mostra o seguinte:

  • Uma camada Web acessível pela Internet a nível global que equilibra a carga do tráfego através de um balanceador de carga de aplicações externo.
  • Uma camada de base de dados com equilíbrio de carga de back-end interno na região us-east1, à qual a camada Web global acede.
  • Uma VM cliente que faz parte da camada Web na região europe-west1 que acede à camada de base de dados com equilíbrio de carga interno localizada em us-east1.
App Web de três camadas com um balanceador de carga de aplicações externo, acesso global e um balanceador de carga de aplicações interno.
App Web de três camadas com um Application Load Balancer externo, acesso global e um Application Load Balancer interno (clique para aumentar).

Cargas de trabalho com conformidade jurisdicional

Algumas cargas de trabalho com requisitos regulamentares ou de conformidade exigem que as configurações de rede e a terminação de tráfego residam numa região específica. Para estas cargas de trabalho, um Application Load Balancer externo regional é frequentemente a opção preferida para fornecer os controlos jurisdicionais que estas cargas de trabalho requerem.

Gestão avançada de tráfego

Os equilibradores de carga de aplicações suportam funcionalidades avançadas de gestão de tráfego que lhe dão um controlo detalhado sobre a forma como o tráfego é processado. Estas capacidades incluem o seguinte:

  • Pode atualizar a forma como o tráfego é gerido sem ter de modificar o código da aplicação.
  • Pode encaminhar o tráfego de forma inteligente com base em parâmetros HTTP(S), como o anfitrião, o caminho, os cabeçalhos e outros parâmetros de pedido. Por exemplo, pode usar contentores do Cloud Storage para processar qualquer conteúdo de vídeo estático e pode usar grupos de instâncias ou NEGs para processar todos os outros pedidos.
  • Pode mitigar os riscos quando implementa uma nova versão da sua aplicação usando a divisão de tráfego baseada no peso. Por exemplo, pode enviar 95% do tráfego para a versão anterior do seu serviço e 5% para a nova versão do seu serviço. Depois de validar que a nova versão funciona como esperado, pode alterar gradualmente as percentagens até que 100% do tráfego alcance a nova versão do seu serviço. A divisão do tráfego é normalmente usada para implementar novas versões, testes A/B, migração de serviços, modernização de serviços antigos e processos semelhantes.

Segue-se um exemplo de encaminhamento baseado em caminhos implementado através de um Application Load Balancer interno. Cada caminho é processado por um back-end diferente.

Encaminhamento baseado em caminhos com balanceadores de carga de aplicações internos.
Encaminhamento baseado em caminhos com balanceadores de carga de aplicações internos.

Para mais detalhes, consulte o seguinte:

Extensibilidade com extensões de serviços

A integração com extensões de serviço permite-lhe injetar lógica personalizada no caminho de balanceamento de carga dos balanceadores de carga de aplicações suportados.

Para mais informações, consulte o artigo Vista geral das extensões de serviços.

Migrar serviços antigos para o Google Cloud

A migração de um serviço existente para o Google Cloud permite-lhe libertar capacidade no local e reduzir o custo e o encargo da manutenção de uma infraestrutura no local. Pode configurar temporariamente uma implementação híbrida que lhe permita encaminhar tráfego para o seu serviço no local atual e para um ponto final de serviço Google Cloud correspondente.

O diagrama seguinte demonstra esta configuração com um Application Load Balancer interno. Se estiver a usar um balanceador de carga interno, pode configurar o balanceador de carga para usar a divisão de tráfego com base no peso para dividir o tráfego entre os dois serviços. Google Cloud A divisão de tráfego permite-lhe começar por enviar 0% do tráfego para o serviçoGoogle Cloud e 100% para o serviço no local. Em seguida, pode aumentar gradualmente a proporção de tráfego enviado para o serviço Google Cloud. Eventualmente, envia 100% do tráfego para o serviço Google Cloud e pode desativar o serviço no local.

Migre os serviços antigos para Google Cloud.
Migre os serviços antigos para o Google Cloud.

Balanceamento de carga para aplicações do GKE

Existem três formas de implementar equilibradores de carga de aplicações para clusters do GKE:

  • GKE Gateway controller. Apenas suportado pelos balanceadores de carga de aplicações externos globais, pelos balanceadores de carga de aplicações clássicos e pelos balanceadores de carga de aplicações internos regionais. Para ver instruções de configuração, consulte o artigo Implementação de gateways.
  • Controlador de entrada do GKE. Pode usar o controlador de entrada do GKE incorporado, que implementa equilibradores de carga em nome dos utilizadores do GKE.Google Cloud Isto é igual à arquitetura de equilíbrio de carga autónoma, exceto que o respetivo ciclo de vida é totalmente automatizado e controlado pelo GKE. Suportado por balanceadores de carga de aplicações externos e internos. Para ver instruções de configuração, consulte o seguinte:
  • NEGs zonais autónomos. Os NEGs autónomos são implementados e geridos através do controlador do NEG do GKE, mas todos os recursos de equilíbrio de carga (regras de encaminhamento, verificações de estado, etc.) são implementados manualmente. Estes são suportados por balanceadores de carga de aplicações externos e internos.

Equilíbrio de carga para o Cloud Run, as funções do Cloud Run e as aplicações do App Engine

Pode usar um Application Load Balancer como o front-end das suas Google Cloud aplicações sem servidor. Isto permite-lhe configurar as suas aplicações sem servidor para publicar pedidos a partir de um endereço IP dedicado que não é partilhado com outros serviços.

Para configurar esta opção, usa um NEG sem servidor como back-end do equilibrador de carga. Os diagramas seguintes mostram como uma aplicação sem servidor está integrada num Application Load Balancer.

Global externo

Este diagrama mostra como um NEG sem servidor se enquadra numa arquitetura de Application Load Balancer externo global.

Arquitetura do balanceador de carga de aplicações externo global para apps sem servidor.
Arquitetura do Application Load Balancer externo global para apps sem servidor.

Regional externo

Este diagrama mostra como um NEG sem servidor se enquadra numa arquitetura de Application Load Balancer externo regional. Este equilibrador de carga só suporta back-ends do Cloud Run.

Arquitetura do Application Load Balancer externo regional para apps sem servidor.
Arquitetura do Application Load Balancer externo regional para apps sem servidor.

Regional interno

Este diagrama mostra como um NEG sem servidor se enquadra no modelo do Application Load Balancer interno regional. Este equilibrador de carga só suporta back-ends do Cloud Run.

Arquitetura do balanceador de carga de aplicações interno regional para apps sem servidor.
Arquitetura do Application Load Balancer interno regional para apps sem servidor.

Interno entre regiões

Este diagrama mostra como um NEG sem servidor se enquadra no modelo do Application Load Balancer interno entre regiões. Este equilibrador de carga só suporta back-ends do Cloud Run.

Arquitetura do balanceador de carga de aplicações interno entre regiões para apps sem servidor.
Arquitetura do Application Load Balancer interno em várias regiões para apps sem servidor (clique para aumentar).

Documentação relacionada:

Balanceamento de carga para back-ends fora do domínio Google Cloud

Os balanceadores de carga de aplicações suportam o tráfego de balanceamento de carga para pontos finais que se estendem para além Google Cloud, como centros de dados nas instalações e outros ambientes de nuvem. Normalmente, os backends externos estão acessíveis de uma das seguintes formas:

  • Acessível através da Internet pública. Para estes pontos finais, usa um NEG da Internet como o back-end do equilibrador de carga. O NEG da Internet está configurado para apontar para um único ponto final FQDN:Port ou IP:Port no back-end externo. As NEGs de Internet podem ser globais ou regionais.

    O diagrama seguinte demonstra como estabelecer ligação a back-ends externos acessíveis através da Internet pública com um NEG da Internet global.

    Balanceador de carga de aplicações externo global com um back-end externo.
    Balanceador de carga de aplicações externo global com um back-end externo.

    Para mais detalhes, consulte a vista geral dos NEGs da Internet.

  • Acessível através da conetividade híbrida (Cloud Interconnect ou Cloud VPN). Para estes pontos finais, usa um NEG híbrido como o back-end do equilibrador de carga. O NEG híbrido está configurado para apontar para pontos finais IP:Porta no back-end externo.

    Os diagramas seguintes demonstram como estabelecer ligação a back-ends externos acessíveis através do Cloud Interconnect ou do Cloud VPN.

    Externo

    Conetividade híbrida com balanceadores de carga de aplicações externos globais.
    Conetividade híbrida com equilibradores de carga de aplicações externos globais.

    Internos

    Conetividade híbrida com balanceadores de carga de aplicações internos.
    Conetividade híbrida com balanceadores de carga de aplicações internos.

    Para mais detalhes, consulte a vista geral dos NEGs híbridos.

Integração com o Private Service Connect

O Private Service Connect permite o consumo privado de serviços em redes VPC que pertencem a diferentes grupos, equipas, projetos ou organizações. Pode usar o Private Service Connect para aceder a APIs e serviços Google ou a serviços geridos noutra rede VPC.

Pode usar um Application Load Balancer externo global para aceder a serviços publicados através do Private Service Connect. Para mais informações, consulte o artigo Acerca dos back-ends do Private Service Connect.

Pode usar um Application Load Balancer interno para enviar pedidos para APIs Google regionais e serviços suportados. Para mais informações, consulte o artigo Aceda às APIs Google através de back-ends.

Alta disponibilidade e comutação por falha entre regiões

A comutação por falha entre regiões só está disponível com balanceadores de carga de aplicações externos globais, balanceadores de carga de aplicações clássicos e balanceadores de carga de aplicações internos entre regiões. Estes balanceadores de carga permitem-lhe melhorar a disponibilidade do serviço quando cria serviços de back-end globais com back-ends em várias regiões. Se os backends numa determinada região estiverem inativos, o tráfego é transferido para outra região sem problemas.

Para saber mais sobre o funcionamento da comutação por falha, consulte os seguintes tópicos: