O termo balanceamento de carga refere-se à distribuição de cargas de trabalho entre 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 a sobrecarga de qualquer recurso. Ele também pode melhorar a disponibilidade compartilhando uma carga de trabalho entre recursos de computação redundantes.
O Azure fornece vários 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 Azure Application Gateway, o Azure Front Door, o Azure Load Balancer e o Azure Traffic Manager.
Este artigo descreve algumas considerações para determinar uma solução de balanceamento de carga apropriada para as necessidades da sua carga de trabalho.
Categorizações de serviços
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 entre back-ends regionais, nuvens ou serviços locais híbridos. Esses serviços suportam o gerenciamento de um único plano de controle responsável por rotear globalmente o tráfego do usuário final para um back-end disponível. Eles geralmente reagem a mudanças na confiabilidade ou no desempenho do serviço para maximizar a disponibilidade e o desempenho. Você pode pensar neles como sistemas que equilibram a carga entre carimbos de aplicativos, pontos de extremidade ou unidades de escala hospedados em diferentes regiões/regiões.
- Regional: esses serviços de balanceamento de carga distribuem o tráfego dentro de redes virtuais entre máquinas virtuais (VMs) ou pontos de extremidade de serviço com redundância zonal e de zona dentro de uma região. Você pode pensar neles como sistemas que equilibram a carga entre VMs, contêineres ou clusters dentro de 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 só aceitam tráfego HTTP(S). Destinam-se a aplicações Web ou outros pontos de extremidade HTTP(S). Eles podem ter recursos como descarregamento de SSL, firewall de 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 |
---|---|---|
Azure Front Door | Global | HTTP(S) |
Gestor de Tráfego do Azure | Global | Não-HTTP(S) |
Gateway de Aplicação do Azure | Regional | HTTP(S) |
Balanceador de Carga do Azure | Regional ou Global | Não-HTTP(S) |
Nota
O Azure Traffic Manager e o Azure Load Balancer 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
Aqui estão os principais serviços de balanceamento de carga atualmente disponíveis no Azure:
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 SSL, roteamento baseado em caminho, failover rápido e cache para melhorar o desempenho e a alta disponibilidade de seus aplicativos.
O Gestor de Tráfego é um balanceador de carga de tráfego baseado em DNS que lhe permite distribuir o tráfego de forma otimizada para serviços em regiões globais do Azure, ao mesmo tempo que fornece alta disponibilidade e capacidade de resposta. Como o Gerenciador de Tráfego é um serviço de balanceamento de carga baseado em DNS, ele balanceia a carga somente no nível do domínio. Por esse motivo, ele não pode fazer failover tão rapidamente quanto o Azure Front Door, devido a desafios comuns em torno do cache de DNS e sistemas que não respeitam TTLs de DNS.
O Application Gateway fornece controlador de entrega de aplicativos como um serviço, oferecendo vários recursos de balanceamento de carga de Camada 7 e funcionalidade de firewall de aplicativos 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 e latência ultrabaixa (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 sua solução esteja altamente disponível. O Load Balancer é redundante de zona, garantindo alta disponibilidade em zonas de disponibilidade. Ele suporta uma topologia de implantação regional e uma topologia entre regiões.
Nota
A tecnologia de clustering, como os Aplicativos de Contêiner do Azure ou o Serviço Kubernetes do Azure, contém construções de balanceamento de carga que operam principalmente dentro do escopo de seus próprios limites de cluster, roteando o tráfego para instâncias de aplicativos disponíveis com base em testes de preparação e integridade. 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: É uma aplicação web HTTP(S)? Trata-se de uma aplicação pública ou privada?
- Global vs. regional: você precisa balancear a carga de VMs ou contêineres em uma única rede virtual, ou dimensionar a unidade/implantações de balanceamento de carga entre regiões, ou ambos?
- Disponibilidade: Qual é o contrato de nível de serviço?
- Custo: para obter mais informações, consulte Preços do Azure. Além do custo do próprio serviço, considere o custo de operações para a gestão de uma solução incorporada 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 por '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ê através de um conjunto de critérios-chave de decisão para chegar a uma recomendação.
Trate este fluxograma como um ponto de partida. Cada aplicação tem requisitos únicos, por isso use a recomendação como ponto de partida. Em seguida, realize uma avaliação mais detalhada.
Quando sua carga de trabalho envolve 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.
Definições
Aplicativo Web (HTTP/HTTPS): refere-se à necessidade da capacidade de tomar uma decisão de roteamento para dados da Camada 7, como caminho de URL, dar suporte à inspeção da carga útil de comunicação (como um corpo de solicitação HTTP) ou manipular a funcionalidade TLS.
Aplicação voltada para a Internet: Aplicativos que são acessíveis publicamente a partir da Internet. Como prática recomendada, os proprietários de aplicativos aplicam políticas de acesso restritivas ou protegem o aplicativo configurando ofertas como firewall de aplicativos da Web e proteção contra DDoS.
Global / Implantado em várias regiões: Se esse balanceador de carga deve ter um único plano de controle altamente disponível que é responsável pelo roteamento de 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.
Nota
É possível usar um serviço regional, como o Application Gateway, para balancear a carga entre back-ends abrangendo várias regiões e controlar o roteamento por meio de um único plano de controle. Essa arquitetura é possível usando o Private Link entre regiões, o emparelhamento de rede virtual global ou até mesmo IPs públicos de serviços em outras regiões.
No entanto, este cenário não é o ponto principal desta decisão.
Usar um recurso regional como um roteador para back-ends distribuídos globalmente introduz um único ponto regional de falha e incorre em latência adicional à medida que o tráfego é forçado através de uma região antes de ir para outra e depois voltar novamente.
Plataforma como serviço (PaaS): fornece um ambiente de hospedagem gerenciado, onde você pode implantar seu aplicativo sem precisar gerenciar VMs ou recursos de rede. Nesse caso, PaaS refere-se a serviços que fornecem balanceamento de carga integrado dentro de uma região. Para obter mais informações, consulte Escolher um serviço de computação – Escalabilidade.
Serviço Kubernetes do Azure (AKS): permite implantar e gerenciar aplicativos em contêineres. O AKS fornece Kubernetes sem servidor, uma integração contínua integrada e experiência de entrega contínua, além de segurança e governança de nível empresarial. Para obter mais informações sobre recursos de arquitetura AKS, consulte Design de arquitetura do Serviço Kubernetes do Azure.
Infraestrutura como serviço (IaaS): uma opção de computação em que você provisiona as máquinas virtuais de que precisa, juntamente com os componentes de rede e armazenamento associados. Os aplicativos IaaS exigem balanceamento de carga interno dentro de uma rede virtual usando o Load Balancer.
Processamento da camada de aplicativo: refere-se ao roteamento especial dentro de uma rede virtual. Por exemplo, roteamento baseado em caminho dentro da rede virtual entre VMs ou conjuntos de dimensionamento de máquina virtual. Para obter mais informações, consulte Quando devemos implantar um Gateway de Aplicativo atrás da Porta Frontal do Azure?.
Aceleração de desempenho: refere-se a recursos que aceleram o acesso à Web. A aceleração de desempenho pode ser alcançada usando redes de entrega de conteúdo (CDNs) ou entrada otimizada no ponto de presença para integração acelerada do cliente na rede de destino. O Azure Front Door suporta CDNs e aceleração de tráfego Anycast. Os benefícios de ambos os recursos podem ser obtidos com ou sem o Application Gateway 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. Aqui estão alguns exemplos que podem ser relevantes para seu cenário de balanceamento de carga.
- Suporte a Web Sockets
- Suporte HTTP/2 (recebendo e continuando a nós de back-end)
- Suporte a sessões adesivas
- Mecanismo de monitoramento da integridade do nó de back-end
- Experiência do cliente ou atraso entre a deteçã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 solução.
Serviços | Artigo | Description |
---|---|---|
Balanceador de Carga | Balancear a carga de máquinas virtuais (VMs) em zonas de disponibilidade | Balanceie a carga de VMs em zonas de disponibilidade para ajudar a proteger seus aplicativos e dados de uma falha ou perda improvável de um datacenter inteiro. Com a redundância de zona, uma ou mais zonas de disponibilidade podem falhar e o caminho de dados sobrevive enquanto uma zona na região permanecer íntegra. |
Azure Front Door | Partilhar a localização em tempo real utilizando serviços do Azure sem servidor de baixo custo | Use o Azure Front Door para fornecer maior disponibilidade para seus aplicativos do que implantar 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. |
Gestor de Tráfego | Aplicativo Web multicamadas criado para alta disponibilidade e recuperação de desastres | Implante aplicativos resilientes de várias camadas criados para alta disponibilidade e recuperação de desastres. 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 + Application Gateway | SaaS multilocatário no Azure | Use uma solução multilocatária que inclua uma combinação de Azure Front Door e Application Gateway. O Azure Front Door ajuda a equilibrar a carga do tráfego entre regiões. O Application Gateway roteia e equilibra a carga do tráfego internamente no aplicativo para os vários serviços que satisfazem as necessidades de negócios do cliente. |
Gestor de Tráfego + Load Balancer | Aplicativo multirregional de N camadas | 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 esta região ficar indisponível, o Gestor de Tráfego efetuará a ativação pós-falha para a região secundária. |
Gestor de Tráfego + Gateway de Aplicação | Balanceamento de carga multirregião com o Gerenciador de Tráfego e o Application Gateway | Saiba como atender cargas de trabalho da Web e implantar aplicativos resilientes de várias camadas em várias regiões do Azure para obter alta disponibilidade e uma infraestrutura robusta de recuperação de desastres. |