Opções de balanceamento de carga

Azure Load Balancer
Porta da frente do Azure
Gateway de Aplicativo do Azure
Gerenciador de Tráfego do Azure

O termo balanceamento de carga refere-se à distribuição de cargas de trabalho em vários recursos de computação. O balanceamento de carga visa otimizar o uso de recursos, maximizar a taxa de transferência, minimizar o tempo de resposta e evitar sobrecarregar qualquer recurso único. Ele também pode melhorar a disponibilidade através do compartilhamento de uma carga de trabalho entre recursos de computação redundantes.

O Azure fornece diversos serviços de balanceamento de carga que você pode usar para distribuir suas cargas de trabalho em vários recursos de computação. Esses recursos incluem o Gateway de Aplicativo do Azure, o Azure Front Door, o Azure Load Balancer e o Gerenciador de Tráfego do Azure.

Este artigo descreve algumas considerações para determinar uma solução de balanceamento de carga adequada para as necessidades da carga de trabalho.

Categorizações de serviço

Os serviços de balanceamento de carga do Azure podem ser categorizados em duas dimensões: global versus regional e HTTP(S) versus não HTTP(S).

Global vs. regional

  • Global: esses serviços de balanceamento de carga distribuem o tráfego por nuvens, back-ends regionais ou serviços locais híbridos. Esses serviços oferecem suporte ao gerenciamento de um único plano de controle responsável pelo roteamento global do tráfego do usuário final para um back-end disponível. Eles frequentemente se adaptam a alterações na confiabilidade ou no desempenho dos serviços para otimizar a disponibilidade e o desempenho. Você pode considerá-los como sistemas que balanceiam a carga entre carimbos de aplicativo, pontos de extremidade ou unidades de escala hospedados em diferentes regiões/áreas geográficas.
  • Regional: esses serviços de balanceamento de carga distribuem o tráfego dentro de redes virtuais pelas VMs (máquinas virtuais) ou pelos pontos de extremidade de serviço zonais e com redundância de zona em uma região. Você pode considerá-los como sistemas que equilibram a carga entre VMs, contêineres ou clusters em uma região em uma rede virtual.

HTTP(S) vs. não HTTP(S)

  • HTTP(S): esses serviços de balanceamento de carga são balanceadores de carga de Camada 7 que aceitam apenas tráfego HTTP(S). Eles são destinados a aplicativos Web ou outros pontos de extremidade HTTP(S). Eles podem ter recursos como descarregamento de SSL, firewall do aplicativo Web, balanceamento de carga baseado em caminho e afinidade de sessão.
  • Não-HTTP(S): esses serviços de balanceamento de carga são balanceadores de carga de Camada 4 que podem lidar com tráfego não-HTTP(S), principalmente serviços TCP ou UDP.

A tabela a seguir resume os serviços de balanceamento de carga do Azure.

Serviço Global/Regional Tráfego recomendado
Porta da frente do Azure Global HTTP(S)
Gerenciador de Tráfego do Azure Global Não HTTP(S)
Gateway de Aplicativo do Azure Regional HTTP(S)
Azure Load Balancer Regional ou Global Não HTTP(S)

Observação

O Gerenciador de Tráfego do Azure e o Balanceador de Carga do Azure têm os recursos para distribuir tráfego HTTP(S), mas não têm recursos específicos para rotear com base em informações de unidade de dados de protocolo superiores à Camada 4. Ambos suportam tráfego HTTP(S), mas apenas nos níveis de funcionalidade da Camada 4.

Serviços de balanceamento de carga do Azure

Estas são os principais serviços de balanceamento de carga disponíveis no Azure atualmente:

  • O Azure Front Door é uma rede de entrega de aplicativos que fornece balanceamento de carga global e serviço de aceleração de site para aplicativos Web. Ele oferece recursos de Camada 7 para seu aplicativo, como descarregamento de SSL, roteamento baseado em caminho, failover rápido e cache para melhorar o desempenho e a alta disponibilidade dos seus aplicativos.

  • O Gerenciador de Tráfego é um balanceador de carga de tráfego baseado em DNS que permite distribuir o tráfego de forma ideal para serviços em regiões globais do Azure, fornecendo alta disponibilidade e capacidade de resposta. Como o Gerenciador de Tráfego é um serviço de balanceamento de carga baseado em DNS, ele faz o balanceamento de carga somente no nível de domínio. Por esse motivo, ele não pode fazer failover tão rapidamente quanto o Azure Front Door, devido a desafios comuns relacionados ao cache do DNS e sistemas que não respeitam os TTLs do DNS.

  • O Gateway de Aplicativo fornece controlador de entrega de aplicativos como serviço, oferecendo vários recursos de balanceamento de carga da Camada 7 e funcionalidade de firewall do aplicativo Web. Use-o para fazer a transição do espaço de rede pública para seus servidores Web hospedados em espaço de rede privada dentro de uma região.

  • O Load Balancer é um serviço de balanceamento de carga de Camada 4 de alto desempenho, ultrabaixa latência (entrada e saída) para todos os protocolos UDP e TCP. Ele foi criado para lidar com milhões de solicitações por segundo, garantindo que a sua solução esteja altamente disponível. O Load Balancer tem redundância de zona, garantindo alta disponibilidade nas zonas de disponibilidade. Ele dá suporte a uma topologia de implantação regional e a uma topologia entre regiões.

Observação

A tecnologia de clustering, como os Aplicativos de Contêiner do Azure ou o Serviço de Kubernetes do Azure, contém construções de balanceamento de carga que operam principalmente dentro do escopo de seu próprio limite de cluster, roteando o tráfego para instâncias de aplicativo disponíveis com base em investigações de integridade e prontidão. Essas opções de balanceamento de carga não são abordadas neste artigo.

Árvore de decisão para balanceamento de carga no Azure

Considere estes fatores ao selecionar uma solução de balanceamento de carga:

  • Tipo de tráfego: é para um aplicativo Web HTTP(S)? É um aplicativo público ou privado?
  • Global vs. regional: você precisa balancear a carga de VMs e contêineres em uma única rede virtual ou balancear a carga em implantações/unidades de escala em diversas regiões? Ou ambas as opções?
  • Disponibilidade: qual é o contrato de nível de serviço?
  • Custo: para saber mais, confira Preços do Azure. Além do custo do serviço em si, leve em consideração o custo de operações para gerenciar uma solução compilada nesse serviço.
  • Recursos e limites: quais recursos são suportados em cada serviço e quais são os limites de serviço de cada serviço?

![DICA] O portal do Azure oferece um guia baseado em questionário semelhante ao fluxograma a seguir. No portal do Azure, procure "Balanceamento de carga - ajude-me a escolher". Ao responder às perguntas, você pode restringir suas opções de balanceamento de carga.

O fluxograma a seguir ajuda você a escolher uma solução de balanceamento de carga para seu aplicativo. O fluxograma orienta você por um conjunto de critérios de decisão essenciais que geram uma recomendação.

Trate esse fluxograma como um ponto de partida. Cada aplicativo tem requisitos exclusivos e, portanto use a recomendação como um ponto de partida. Em seguida, execute uma avaliação mais detalhada.

Quando sua carga de trabalho envolver vários serviços que exigem balanceamento de carga, é importante avaliar cada serviço individualmente. Em muitos casos, uma configuração eficaz usa mais de um tipo de solução de balanceamento de carga. Você pode incorporar essas soluções em locais diferentes na arquitetura da sua carga de trabalho, cada uma servindo a uma função ou função exclusiva.

Diagrama que mostra uma árvore de decisão para balanceamento de carga no Azure.

Definições

  • Aplicativo Web (HTTP/HTTPS): refere-se à necessidade de tomar uma decisão de roteamento para dados da Camada 7, como caminho de URL, oferecer suporte à inspeção da carga de comunicação (como um corpo de solicitação HTTP) ou manipular a funcionalidade TLS.

  • Aplicativo voltado para a Internet: aplicativos que são acessíveis publicamente pela Internet. Como prática recomendada, os proprietários de aplicativos aplicam políticas de acesso restritivo ou protegem o aplicativo configurando ofertas como firewall de aplicativo Web e proteção contra DDoS.

  • Global/Implantado em várias regiões: se esse balanceador de carga tiver um único plano de controle altamente disponível que seja responsável por rotear o tráfego para pontos de extremidade públicos em seu aplicativo distribuído globalmente. Isso pode ser para dar suporte a topologias ativo-ativo ou ativo-passivo entre regiões.

    Observação

    É possível usar um serviço regional, como o Gateway de Aplicativo, para balancear a carga entre back-ends que abrangem várias regiões e controlar o roteamento por meio de um único plano de controle. Essa arquitetura é possível usando o Link Privado entre regiões, o emparelhamento de rede virtual global ou até mesmo IPs públicos de serviços em outras regiões.

    No entanto, esse cenário não é o principal ponto dessa decisão.

    O uso de um recurso regional como roteador para back-ends distribuídos globalmente introduz um ponto único regional de falha e incorre em latência adicional, pois o tráfego é forçado através de uma região antes de ir para outra e depois voltar novamente.

  • PaaS (plataforma como serviço): fornece um ambiente de hospedagem gerenciado em que você pode implantar seu aplicativo sem a necessidade de gerenciar VMs ou recursos de rede. Nesse caso, PaaS refere-se aos serviços que fornecem balanceamento de carga integrado dentro de uma região. Para obter mais informações, confira Escolher um serviço de computação – escalabilidade.

  • AKS (Serviço de Kubernetes do Azure): permite implantar e gerenciar aplicativos conteinerizados. O AKS oferece Kubernetes sem servidor, uma experiência integrada de integração contínua/entrega contínua, bem como segurança e governança de nível corporativo. Para obter mais informações sobre nossos recursos de arquitetura do AKS, confira Design de arquitetura do Serviço de Kubernetes do Azure.

  • IaaS (infraestrutura como serviço): uma opção de computação na qual você provisiona as máquinas virtuais de que você precisa, juntamente com componentes de rede e armazenamento associados. Os aplicativos IaaS exigem balanceamento de carga interno em uma rede virtual usando o Azure Load Balancer.

  • Processamento de camada de aplicativo: refere-se ao roteamento especial em uma rede virtual. Por exemplo, roteamento baseado em caminho na rede virtual em VMs ou conjuntos de dimensionamento de máquinas virtuais. Para obter mais informações, confira Quando devemos implantar um Gateway de Aplicativo por trás do Azure Front Door?.

  • Aceleração de desempenho: refere-se a recursos que aceleram o acesso à Web. A aceleração de desempenho pode ser obtida usando CDNs (redes de distribuição de conteúdo) ou entrada de ponto de presença otimizada para integração acelerada do cliente na rede de destino. O Azure Front Door dá suporte a CDNs e à aceleração de tráfego Anycast. Os benefícios de ambos os recursos podem ser obtidos com ou sem o Gateway de Aplicativo na arquitetura.

Considerações adicionais

Cada serviço de balanceamento de carga também tem suporte de capacidade ou detalhes de implementação que também precisam ser considerados. Veja a seguir alguns exemplos que podem ser relevantes para o seu cenário de balanceamento de carga.

  • Suporte a Soquetes Web
  • Suporte a HTTP/2 (recebendo e continuando para nós de back-end)
  • Suporte a sessões temporárias
  • Mecanismo de monitoramento de integridade do nó de back-end
  • Experiência do cliente ou atraso entre a detecção de nó não íntegro e a remoção da lógica de roteamento.

Exemplos

A tabela a seguir lista vários artigos com base nos serviços de balanceamento de carga usados como uma solução.

Serviços Artigo Descrição
Load Balancer VMs (máquinas virtuais) de balanceamento de carga entre zonas de disponibilidade As VMs de balanceamento de carga nas zonas de disponibilidade ajudam a proteger seus aplicativos e dados de uma improvável falha ou perda de um datacenter inteiro. Com redundância de zona, uma ou mais zonas de disponibilidade podem falhar e o caminho de dados sobrevive, desde que uma zona da região permaneça íntegra.
Porta da frente do Azure Compartilhando a localização em tempo real usando os serviços do Azure sem servidor de baixo custo Use o Azure Front Door para fornecer maior disponibilidade para os aplicativos em comparação à implantação em uma única região. Se uma interrupção regional afetar a região primária, você poderá usar o Azure Front Door para fazer failover para a região secundária.
Gerenciador de Tráfego Aplicativo Web de várias camadas criado para alta disponibilidade e recuperação de desastre no Azure Implante aplicativos resilientes de várias camadas criados para alta disponibilidade e recuperação de desastre. Se a região primária ficar indisponível, o Gerenciador de Tráfego fará failover para a região secundária.
Azure Front Door + Gateway de Aplicativo SaaS multilocatário no Azure Usa uma solução multilocatário que inclui uma combinação do Azure Front Door e Gateway de Aplicativo. O Azure Front Door ajuda a equilibrar a carga do tráfego entre regiões. O Gateway de Aplicativo roteia e equilibra a carga do tráfego internamente no aplicativo para os vários serviços que atendem às necessidades de negócios do cliente.
Gerenciador de Tráfego + Load Balancer Aplicativo de N camadas de várias regiões Um aplicativo de N camadas de várias regiões que usa o Gerenciador de Tráfego para rotear solicitações de entrada para uma região primária. Se essa região ficar indisponível, o Gerenciador de Tráfego fará failover para a região secundária.
Gerenciador de Tráfego + Gateway de Aplicativo Balanceamento de carga de várias regiões com o Gerenciador de Tráfego e o Gateway de Aplicativo Saiba como atender às cargas de trabalho da Web e implantar aplicativos multicamadas resilientes em várias regiões do Azure para obter alta disponibilidade e uma infraestrutura de recuperação de desastres robusta.

Próximas etapas