Ter um aplicativo travando no meio de uma compra é frustrante.
Podem haver muitas razões para o travamento, incluindo gerenciamento inadequado de carga de trabalho. Um aplicativo baseado em nuvem rapidamente se sobrecarrega com um único servidor por trás dele, levando a interrupções de serviço, tempos de inatividade e até mesmo travamentos.
Muitos usuários acessando simultaneamente os mesmos dados ou software dentro da infraestrutura de TI de uma empresa causam um travamento, especialmente se o tráfego do aplicativo não estiver devidamente balanceado. Mas, como as empresas equilibram o tráfego? Entre em cena o software de balanceamento de carga.
O que é um balanceador de carga?
Um balanceador de carga é um dispositivo de rede ou software que facilita o balanceamento de carga – o processo de distribuir metodicamente e eficientemente o tráfego de rede sobre múltiplos servidores de backend em um pool de servidores. Ele reduz as sobrecargas de gerenciamento e manutenção de aplicativos ao atuar como um proxy reverso. Isso torna os aplicativos mais confiáveis e capazes de lidar com usuários simultâneos e sessões de rede.
Um balanceador de carga atua como um facilitador invisível para os usuários. Eles não podem ver, mas têm seus pedidos roteados por ele o tempo todo. Por exemplo, um usuário comprando para o Natal navegará por diferentes produtos antes de escolher um ou mais. Quando o usuário clica em um produto, o dispositivo cliente envia um pedido de informação para os servidores de backend. Um balanceador de carga recebe esse pedido de entrada e o roteia para todos os servidores capazes.
Essa distribuição de carga é crucial para um rendimento eficiente de dados e otimização dos recursos de entrega de aplicativos. Também melhora o desempenho ao evitar que um único servidor fique sobrecarregado. Além disso, um balanceador de carga verifica a capacidade de um servidor de lidar com pedidos, remove servidores inadequados e até cria novos servidores de aplicativos virtualizados conforme necessário.
Funções de um balanceador de carga:
- Adiciona ou remove servidores sob demanda
- Reduz o tempo de resposta dos pedidos dos usuários
- Distribui pedidos de clientes eficientemente
- Identifica e bloqueia conteúdo malicioso
- Automatiza a recuperação de desastres em sites de backup
- Torna o ambiente de computação mais resiliente
- Detecta automaticamente falhas de servidor e redireciona pedidos de clientes
- Permite manutenção de servidores sem impactar as operações atuais
- Direciona o tráfego para servidores capazes e online para garantir desempenho e confiabilidade
Hoje, os balanceadores de carga geralmente estão contidos em controladores de entrega de aplicativos (ADCs) que otimizam o fluxo de dados entre duas entidades e melhoram o desempenho do aplicativo. Isso resultou de sua contínua evolução de balanceadores de carga originalmente desenvolvidos para garantir serviços de aplicativos previsíveis, escaláveis e altamente disponíveis.
O balanceamento de carga percorreu um longo caminho desde sua criação. Empresas nos primeiros dias da internet comercial confiavam em servidores baseados em PC único para lidar com o tráfego da web. Mas, esses servidores não conseguiam lidar com as crescentes demandas de aplicativos web.
Então veio a tecnologia de sistema de nomes de domínio (DNS) round-robin. Ela funcionava bem em termos de distribuição sequencial de usuários usando o nome como um ponto de virtualização. No entanto, não conseguia melhorar a alta disponibilidade e remover dinamicamente servidores com mau funcionamento.
Isso levou ao nascimento de soluções de balanceamento de carga construídas para esse propósito. Essas soluções são diretamente integradas ao sistema operacional (OS) ou ao software de aplicativo e se comunicam usando o protocolo de internet de cluster (IP) em vez de endereços IP físicos. Uma sessão de serviço começaria apenas após um servidor responder ao pedido de conexão e redirecioná-lo para um endereço IP físico.
Essas soluções proprietárias de balanceamento de carga melhoraram a escalabilidade, previsibilidade e alta disponibilidade. O verdadeiro desafio era a comunicação constante entre os membros do cluster. Mais servidores significavam mais comunicação entre servidores e utilização do processador. Isso aumentou o tráfego de rede e eventualmente impactou o tráfego do usuário final.
Então veio a era do hardware de balanceamento de carga baseado em rede. Esses eram essencialmente dispositivos neutros em relação ao aplicativo localizados fora do servidor de aplicativos. Eles usavam tradução de endereço de rede (NAT) bidirecional para encaminhar usuários de endereços de servidores virtuais para os servidores reais mais capazes.
Os dispositivos baseados em rede também tornaram possível mascarar a identidade do servidor de aplicativos e tirar um servidor do ar para manutenção sem interrupção do usuário. Os ADCs que você vê hoje vêm desses balanceadores de carga baseados em rede.
Depois de começar como dispositivos de hardware, os ADCs rapidamente se tornaram disponíveis tanto como máquinas virtuais quanto como software. Os ADCs baseados em software atendiam a picos de tráfego, garantiam segurança e ofereciam mais flexibilidade. Os ADCs são incompletos sem a tecnologia subjacente de balanceamento de carga crucial para lidar com a entrega de aplicativos.
Importância do balanceamento de carga
Sites de alto tráfego recebem milhões de pedidos de usuários simultâneos para retorno instantâneo de dados de aplicativos. Essa carga de trabalho massiva, se não for controlada, pode sobrecarregar um único servidor. Um servidor sobrecarregado pode falhar em entregar respostas ou se tornar indisponível, resultando em perda de negócios. É aqui que entram os balanceadores de carga.
Um balanceador de carga coordena com servidores para distribuição eficiente de pedidos de usuários. Ele garante que nenhum servidor esteja sobrecarregado ou não esteja processando nenhum tráfego. Além disso, dispositivos de balanceamento de carga podem detectar servidores com mau funcionamento e redirecionar o tráfego para servidores operacionais. Alguns balanceadores de carga com algoritmos avançados podem até prever se um servidor está prestes a ficar sobrecarregado e roteiam o tráfego de acordo.
Empresas que recebem tráfego massivo têm diferentes partes interessadas, bem como clientes visitando seus aplicativos ou sites. A capacidade de suportar essa demanda aumentada é fundamental para a continuidade do patrocínio de partes interessadas e clientes. É por isso que as empresas adicionam balanceadores de carga à sua infraestrutura de nuvem para melhorar a disponibilidade, a capacidade de resposta e a escalabilidade.
Quer aprender mais sobre Software de Balanceamento de Carga? Explore os produtos de Balanceamento de Carga.
Tipos de balanceadores de carga
Os balanceadores de carga são principalmente responsáveis por gerenciar o balanceamento de carga de servidor (SLB). Dependendo de suas capacidades, eles também podem oferecer funcionalidades adicionais: segurança, autenticação e armazenamento geográfico. Essas funções variadas, juntamente com as configurações, ajudam a categorizar os balanceadores de carga em sete tipos.
1. Balanceador de carga de rede (NLB)
Um balanceador de carga de rede distribui o tráfego com base em variáveis de rede: IP de origem, IP de destino, porta de origem, porta de destino e protocolo IP. Também é conhecido como balanceador de carga de camada 4 (L4) já que funciona na quarta camada do modelo de interconexão de sistemas abertos (OSI).
Um balanceador de carga de rede não considera parâmetros de nível de aplicativo, como tipo de conteúdo, dados de cookies, cabeçalhos personalizados, localização do usuário ou comportamento do aplicativo. É sem contexto e direciona o tráfego com base nas informações da camada de rede contidas nos pacotes.
2. Balanceador de carga de aplicativo (ALB)
Um balanceador de carga de aplicativo distribui pedidos de entrada com base em múltiplas variáveis de nível de aplicativo. Também é conhecido como balanceador de carga de camada 7 (L7) porque ocupa a posição mais alta no modelo OSI.
Um balanceador de carga de aplicativo é ciente do conteúdo. Ele toma decisões de balanceamento de carga com base em elementos de carga útil de conteúdo, como localizador uniforme de recursos (URL), cabeçalho de protocolo de transferência de hipertexto (HTTP) e camada de soquetes seguros (SSL). Essa consciência permite que um balanceador de carga de aplicativo controle o tráfego do servidor de acordo com o comportamento e uso do aplicativo.
3. Balanceador de carga de servidor global (GSLB)
Um balanceador de carga de servidor global ou balanceador de carga de múltiplos sites usa tecnologia DNS dinâmica para distribuir o tráfego entre servidores em diferentes locais.
O balanceamento de carga de servidor global atua como um proxy DNS e usa algoritmos de balanceamento de carga em tempo real para responder. Ele maximiza o desempenho e minimiza a latência ao permitir que os usuários se conectem a um servidor geograficamente mais próximo deles. Além do balanceamento de carga, ele monitora a saúde do servidor por meio de configurações e facilita a recuperação em caso de desastre no servidor.
4. Dispositivo de balanceador de carga de hardware (HLD)
Um dispositivo de balanceador de carga de hardware é um dispositivo físico localizado no local que roteia o tráfego da web para diferentes servidores. Geralmente é implementado na camada de transporte (L4) e na camada de aplicativo (L7) do modelo OSI.
Os HLDs ou randomizam a distribuição do tráfego ou consideram vários fatores, como a conexão disponível do servidor, a utilização de recursos e o poder de processamento do servidor. Esses balanceadores de carga não têm dependências, e você pode instalá-los em data centers. Apesar de lidar com um grande volume de tráfego, os HLDs oferecem flexibilidade limitada e são caros.
5. Balanceador de carga de software (SLB)
Um balanceador de carga de software usa um ou mais algoritmos de agendamento para distribuir pedidos de entrada entre os servidores. Os SLBs são flexíveis, e você pode facilmente integrá-los a soluções de orquestração de virtualização. Como os SLBs rodam em hardware comum, eles também são menos caros.
6. Balanceador de carga virtual (VLB)
Um balanceador de carga virtual é um balanceador de carga de hardware que funciona em uma máquina virtual. Os VLBs usam software de controlador de entrega de aplicativos virtualizado para distribuir a carga de tráfego de rede. Grandes organizações com picos constantes de tráfego frequentemente usam esses balanceadores de carga. Desafios comuns dos VLBs incluem habilidades limitadas de automação, menos escalabilidade e falta de gerenciamento centralizado.
7. Balanceador de carga de gateway (GLB)
Um balanceador de carga de gateway implanta, escala e gerencia appliances virtuais, como firewalls, sistemas de inspeção profunda de pacotes e sistemas de prevenção de intrusões. Este balanceador de carga usa um gateway de rede de ponto de entrada e saída único para distribuir o tráfego. Um GLB opera na terceira camada do modelo OSI.
Como funciona um balanceador de carga?
Um balanceador de carga geralmente fica entre um cliente e os hosts que fornecem serviços ao cliente. Suponha que um balanceador de carga esteja conectado a um servidor virtual e a um cluster de pontos de serviço. Ele também está conectado a hosts para processar o tráfego de retorno para o cliente. Veja como esse balanceador de carga funciona durante uma transação:
- Tentativa de conexão: Um cliente tenta se conectar a serviços por trás de um balanceador de carga.
- Aceitação de conexão: O balanceador de carga aceita o pedido de entrada. Ele escolhe o host mais adequado, mas roteia o pedido apenas após alterar o IP de destino com base nos serviços do host selecionado.
- Resposta do host: O host aceita a conexão e responde ao cliente via balanceador de carga.
- Intercepção do pacote de retorno: O balanceador de carga intercepta o pacote de retorno e altera o IP de origem para o IP do servidor virtual antes de encaminhar o pacote para o cliente.
- Recebimento do pacote de retorno: O cliente recebe o pacote de retorno e continua a fazer outros pedidos.
Algoritmos de balanceamento de carga
A eficiência do balanceamento de carga decorre dos algoritmos de balanceamento de carga.
Um algoritmo de balanceamento de carga é uma lógica que um balanceador de carga usa para processar pacotes de dados de entrada e distribuir cargas entre servidores. Selecionar o algoritmo certo é fundamental para a confiabilidade, desempenho e redundância.
Os algoritmos de balanceamento de carga analisam o tráfego de entrada e usam vários parâmetros para distribuí-lo. Com base nesses parâmetros, os algoritmos de balanceamento de carga são divididos em dois tipos: estático e dinâmico.
Algoritmo de balanceamento de carga estático
Um algoritmo de balanceamento de carga estático distribui todo o tráfego uniformemente entre os servidores. É estático porque não considera o estado do sistema atual para mudança de carga.
Este algoritmo roteia o tráfego com base no conhecimento dos recursos do servidor. Além disso, um algoritmo de balanceamento de carga estático requer que as tarefas de balanceamento de carga sejam realizadas exclusivamente. Outros dispositivos não podem realizar essas tarefas. Este algoritmo é ideal para sistemas com baixas variações de carga.
Abaixo estão alguns dos algoritmos de balanceamento de carga estático mais comumente usados.
Round-robin
O balanceamento de carga round-robin é um dos algoritmos mais simples e amplamente usados para distribuir pedidos de entrada para servidores. Ele percorre uma lista de servidores e encaminha um pedido de cliente para cada servidor na lista. No final de uma lista, ele repete o mesmo processo até que todos os pedidos sejam distribuídos. O algoritmo round-robin assume que todos os servidores estão disponíveis com a mesma capacidade de balanceamento de carga.
Duas variantes do algoritmo round-robin são:
1. Round-robin ponderado: O round-robin ponderado é uma configuração avançada do round-robin. Ele atribui um peso a cada servidor que geralmente denota a capacidade de manuseio de carga de um servidor. Quanto maior o peso, mais pedidos um servidor recebe.
Suponha que dois servidores, X e Y, tenham pesos 2 e 1, respectivamente. Um balanceador de carga distribuirá dois pedidos para X para cada pedido que enviar para Y.
2. Round-robin dinâmico: Um algoritmo round-robin dinâmico atribui dinamicamente um peso a cada servidor. Esse peso varia dependendo da carga atual e da capacidade ociosa de um servidor.
Hash de IP de origem
O algoritmo de balanceamento de carga de hash de IP de origem gera uma chave de hash combinando os endereços IP de origem e destino. Cada chave de hash é exclusiva para um servidor específico e aloca pedidos apenas para esse servidor. Esta chave pode ser regenerada e garante que um cliente seja direcionado para o mesmo servidor se uma sessão travar.
Estático aleatório
Um algoritmo de balanceamento de carga estático aleatório atribui tarefas aleatoriamente aos servidores. Ele pode até calcular uma permutação aleatória se souber o número de tarefas com antecedência. Como os processadores já conhecem as tarefas atribuídas a eles, um servidor não precisa de um mestre de distribuição nesses casos. Este algoritmo funciona bem para um tamanho de tarefa mínimo.
Gerente central
O algoritmo de gerente central distribui a carga de trabalho com um nó central como coordenador, escolhendo o processador com a menor carga. Ter informações de carga em todos os servidores ajuda o gerente a selecionar o processador menos carregado. Este algoritmo usa muita comunicação entre processos, o que pode rapidamente se tornar um gargalo.
Limite
O algoritmo de limite atribui o tráfego de entrada a novos servidores. Os servidores são selecionados localmente, eliminando a necessidade de comunicação por meio de mensagens remotas. Cada servidor mantém uma cópia da carga do processador categorizada em três níveis:
- Subcarregado: carga <tunder
- Médio: tunder ≤ carga ≤ tupper
- Sobrecarregado: carga > tupper
Algoritmo de balanceamento de carga dinâmico
Um algoritmo de balanceamento de carga dinâmico toma decisões de balanceamento de carga com base em informações de desempenho do nó. Este algoritmo distribui a carga de trabalho em tempo de execução e encontra a carga designada apropriada no servidor mais leve em uma rede. Algoritmos de balanceamento de carga dinâmico são geralmente complexos, mas oferecem melhor desempenho e tolerância.
Os algoritmos de balanceamento de carga dinâmico mais comumente usados são:
Menor conexão
Este algoritmo de balanceamento de carga distribui pedidos de clientes para servidores com o menor número de conexões ativas no momento de receber um novo pedido. Para conexões de longa duração, o algoritmo de menor conexão considera a carga de conexão ativa ao distribuir pedidos.
Menor conexão ponderada
Menor conexão ponderada, uma configuração avançada do algoritmo de menor conexão, usa ponderação de servidor e conexões ativas para distribuir pedidos de clientes. Uma vez que um administrador atribui um peso a cada servidor com base em sua capacidade de manuseio de tráfego, a menor conexão ponderada considera várias características do servidor de aplicativos para distribuição de carga. Este algoritmo requer mais tempos de computação, mas garante uma distribuição eficiente do tráfego.
Tempo de resposta ponderado
Este algoritmo de balanceamento de carga aproveita o tempo de resposta dos servidores de aplicativos para distribuição de carga. Quanto mais cedo a resposta, mais rápido um servidor recebe o próximo pedido. Este algoritmo calcula os pesos do servidor de aplicativos conectando o tempo de resposta a uma verificação de saúde.
Baseado em recursos (adaptativo)
Com este algoritmo, os recursos disponíveis para cada servidor impulsionam as decisões de distribuição de carga. Cada servidor contém um agente ou software especializado que mede as métricas de CPU e memória disponíveis. Este agente relata ao balanceador de carga para uma distribuição eficiente de pedidos. Outro algoritmo baseado em recursos que usa controladores de rede definida por software (SDN) e conhecimento da camada de rede para decisões de distribuição de tráfego é um algoritmo de carga baseado em recursos (SDN adaptativo).
Os algoritmos de balanceamento de carga dinâmico podem parecer superar os estáticos, mas são mais complexos, pois levam em conta o estado atual do sistema. Essa complexidade muitas vezes leva a sobrecarga e decisões de balanceamento de carga inadequadas. É por isso que é crucial ter uma visão completa de um mecanismo de balanceamento de carga antes de escolher um balanceador de carga.
Balanceamento de carga estático | Balanceamento de carga dinâmico | |
Distribuição de carga | Em tempo de compilação | Em tempo de execução |
Estabilidade | Mais | Menos |
Complexidade e custo | Menos | Mais |
Confiabilidade e tempo de resposta | Menos | Mais |
Previsibilidade | Fácil | Difícil |
Troca de processador e oscilação de estado | Nenhuma | Considerável |
Utilização de recursos | Menos | Mais |
Atraso de comunicação | Menor | Mais |
Benefícios do balanceador de carga
Aplicativos ou recursos web não responsivos não são apenas frustrantes para os usuários, mas também afetam potenciais negócios. O balanceamento de carga ajuda a otimizar o uso de recursos, o tempo de resposta e a entrega de dados em ambientes de alto tráfego. Abaixo estão alguns dos principais benefícios de um balanceador de carga.
Alto desempenho
Um balanceador de carga reduz a velocidade de carregamento e os tempos de resposta ao rotear o tráfego de entrada para servidores capazes. O balanceamento de carga inteligente reduz a carga nos servidores, otimiza a experiência do usuário e melhora o desempenho do seu site ou aplicativo. Veja como um balanceador de carga melhora o desempenho do servidor:
- Descarregamento de SSL: Remove a sobrecarga dos servidores e disponibiliza mais recursos para seu aplicativo web ou recursos
- Compressão de tráfego: Comprime o tráfego do site para otimizar a experiência do usuário
- Cache de tráfego: Entrega conteúdo rapidamente com cópias retidas de elementos web frequentemente acessados
- Suporte a HTTP 2.0: Ajuda a se comunicar com clientes e carregar sites mais rapidamente
Redundância
Um servidor com mau funcionamento interrompe os serviços. Os balanceadores de carga usam redundância embutida para lidar com falhas de hardware e mitigar seu impacto no tempo de atividade do site. Eles redirecionam automaticamente os pedidos dos clientes para servidores em funcionamento durante uma falha de servidor. Veja como os balanceadores de carga garantem ainda mais a redundância:
- Serviço contínuo: Use servidores em funcionamento para rotear pedidos de clientes quando um servidor falha
- Contornar servidores ocupados: Identifique servidores ocupados e redirecione o tráfego para servidores menos ocupados
- Site altamente disponível: Implante balanceadores de carga em pares para que um possa assumir quando o outro falhar
- Continuidade dos negócios: Detecta interrupção do site e redireciona visitantes para um site alternativo predefinido
Escalabilidade
Picos de tráfego podem se tornar um pesadelo sem um mecanismo para gerenciar a carga crescente. Um balanceador de carga adiciona um servidor físico ou virtual no processo de distribuição de tráfego para acomodar essa demanda. A escalabilidade garante serviço ininterrupto. Veja como a escalabilidade ajuda:
- Continuidade dos negócios: Redireciona o tráfego para sites alternativos durante interrupções do site
- Capacidade do site: Lida com picos de tráfego com servidores adicionais
- Auto-escalonamento em nuvem: Atende às demandas variáveis de sites hospedados na nuvem
- Adição de capacidade: Evita atualizações disruptivas
Segurança
Os balanceadores de carga também protegem dados com camadas adicionais de segurança de rede. Um balanceador de carga usa os seguintes recursos para aumentar a segurança do seu site ou aplicativo:
- Firewall de aplicativo web (WAF): Protege o site ou aplicativo de ameaças emergentes e executa atualizações diárias de regras
- Autenticação de acesso do usuário: Protege recursos web de acesso não autorizado
- Detecção de ameaças: Identifica e descarta tráfego de negação de serviço (DDoS)
Desafios do balanceador de carga
Alguns dos desafios mais comuns com um balanceador de carga decorrem de opções de configuração inadequadas. Alguns desses desafios são:
- Fechamento de conexões silenciosas: Uma configuração padrão em balanceadores de carga fecha conexões de protocolo de controle de transmissão (TCP) que estão silenciosas por um tempo. Embora isso seja adequado para balanceadores de carga que lidam com conexões de servidores web, o fechamento automático pode fazer com que as tentativas de reconexão de um cliente falhem.
- Agrupamento de conexões: Os balanceadores de carga geralmente vêm com um recurso de agrupamento de conexões que mantém a conexão servidor-balanceador de carga viva. Vários clientes usam essas conexões. O problema com o agrupamento de conexões é que, uma vez que a conexão multiplexada fecha, todas as conexões do lado do cliente também fecham.
- Conexão TCP cara: Criar uma nova conexão TCP para cada pedido é caro e aumenta o tempo de processamento do pedido. Essas novas conexões também aumentam significativamente o tráfego entre o balanceador de carga e o servidor. É melhor configurar um balanceador de carga para reutilizar conexões TCP para pedidos do mesmo cliente.
- Tempo limite de retransmissão TCP: Os balanceadores de carga que usam failover sofrem de tempo limite de transmissão TCP e causam longas latências para os clientes. Isso ocorre porque servidores indisponíveis mantêm conexões de clientes existentes abertas e armazenam dados em buffer antes de fechá-las. Você pode evitar isso modificando o tempo limite de retransmissão TCP do servidor host ou configurando um balanceador de carga para encerrar conexões não saudáveis.
Proxy reverso vs. balanceador de carga vs. CDN vs. clusterização
Um proxy reverso aceita um pedido de cliente e o encaminha para um servidor que pode atender ao pedido. Por outro lado, um balanceador de carga distribui pedidos de clientes entre um pool de servidores. Ambos:
- Melhoram a eficiência
- Atuam como dispositivos dedicados e construídos para um propósito
- Retornam a resposta do servidor ao cliente
- Contribuem para uma arquitetura de computação cliente-servidor
- Intermediam a comunicação entre cliente e servidor
A única diferença entre proxy reverso e balanceador de carga é que o primeiro é usado para um único servidor web ou de aplicativo e o último para múltiplos servidores. Além de oferecer segurança aumentada, os balanceadores de carga oferecem aceleração web que reduz o tempo de resposta.
Uma rede de entrega de conteúdo (CDN) é uma rede de servidores em múltiplas localizações geográficas. A CDN entrega dados aos usuários a partir da localização mais próxima a eles. CDNs e balanceadores de carga cumprem papéis semelhantes: distribuição eficiente de dados e maximização do tempo de atividade.
A principal diferença entre CDNs e balanceadores de carga é que as CDNs distribuem conteúdo em uma grande área geográfica, enquanto os balanceadores de carga distribuem o tráfego de clientes em uma rede de servidores.
- Tipo de servidor: O balanceamento de carga pode funcionar com diferentes tipos de servidores, enquanto a clusterização precisa de servidores idênticos dentro de um cluster.
- Gerenciamento: Um controlador pode gerenciar clusters, mas o balanceamento de carga requer expertise adicional em redes.
- Operações: Os balanceadores de carga não dependem de servidores de destino. Clusters dependem de agentes de nó e gerentes para comunicação.
Uma organização em crescimento precisa identificar maneiras de atender às necessidades de servidores em evolução. A escolha da tecnologia varia com o problema que você está tentando resolver. Independentemente do instrumento que você escolher, ele deve ser barato e flexível para mudanças.
Para resumir, você deve usar:
- Proxy reverso para acelerar o fluxo de tráfego ao armazenar em cache conteúdo comumente usado e comprimir dados (de entrada e saída)
- Balanceador de carga para melhorar o desempenho do aplicativo ao aumentar a capacidade e confiabilidade do aplicativo
- CDN para entregar conteúdo rapidamente aos usuários com uma rede de servidores localizados em várias geografias
- Clusterização para garantir alta disponibilidade ao permitir que outros servidores assumam em caso de uma interrupção
Casos de uso de balanceador de carga
Um balanceador de carga distribui principalmente o tráfego de entrada entre servidores de backend, mas também pode fazer muito mais. Alguns dos casos de uso notáveis de um balanceador de carga são:
- Escalonamento horizontal: Escalonar o tráfego é uma preocupação comum para organizações em crescimento que oferecem serviços web. Existem dois tipos de escalonamento: horizontal (distribuindo o tráfego entre múltiplos servidores) e vertical (movendo aplicativos para um servidor poderoso para atender às demandas crescentes). Os balanceadores de carga facilitam o escalonamento horizontal e tornam seu site ou aplicativo mais confiável.
- Alta disponibilidade: Alta disponibilidade é fundamental para reduzir o tempo de inatividade e otimizar a confiabilidade do sistema. Os balanceadores de carga eliminam pontos únicos de falha e ajudam você a alcançar alta disponibilidade. Eles identificam automaticamente servidores não funcionais com verificações de saúde e os removem para melhor disponibilidade.
- Implantações azul/verde: Suponha que você queira testar seu software minuciosamente antes de implantá-lo na infraestrutura de produção. Primeiro, você precisa garantir que tudo esteja funcionando antes da implantação. Graças à técnica de implantação azul/verde, você pode facilmente realizar esses testes com um balanceador de carga. Você também pode voltar para a versão antiga se uma implantação falhar.
- Implantações canário: As implantações canário testam uma nova versão de um aplicativo para um subconjunto de usuários e atualizam o restante do pool de servidores de acordo. Se você vir muitos erros após adicionar um servidor canário ao pool, pode abortar a implantação. Quando não há erros, você pode continuar implantando atualizações para o restante do pool.
- Implantações A/B: As implantações A/B ajudam você a tomar decisões informadas de marketing e desenvolvimento. Os balanceadores de carga permitem que você adicione servidores B ao pool de servidores A existente. Uma vez feito isso, você pode obter insights significativos da infraestrutura de monitoramento e registro.
Software de balanceamento de carga
O balanceamento de carga eficiente depende da escolha do software certo. Se você está procurando lidar com tráfego de alto volume distribuindo pedidos de clientes entre servidores de entrada, deixe o software de balanceamento de carga fazer o trabalho pesado.
Para ser incluído nesta categoria, um produto de software deve:
- Monitorar o tráfego da web e distribuir recursos
- Escalonar cargas de trabalho de infraestrutura para balancear o tráfego
- Integrar-se ou fornecer serviços de failover e backup
*Abaixo estão as cinco principais soluções de software de balanceamento de carga do Relatório Grid® de Inverno de 2021 da G2. Algumas avaliações podem ter sido editadas para clareza.
1. F5 NGINX
F5 NGINX oferece um proxy reverso e balanceador de carga nativo da nuvem e fácil de usar. Ele vem com capacidades variadas, como controles de segurança, recuperação de sistema DNS, monitoramento avançado, persistência de sessão, contêineres Kubernetes e interface de programação de aplicativos (API) de transferência de estado representacional (REST).
O que os usuários gostam:
Servidor HTTPS simples, fácil de usar e poderoso. O balanceamento de carga é um dos melhores que já vi. Atualmente, uso apenas a versão gratuita, mas ela faz tudo o que preciso. É leve e não usa muitos recursos.
- Avaliação do F5 NGINX, Joseph S.
O que os usuários não gostam:
Menos suporte da comunidade e documentação do que outros servidores web como Apache, mas provavelmente mais do que suficiente dependendo da sua experiência e caso de uso. Não tem tantos módulos ou extensões quanto o Apache. Pode ser difícil entender como configurá-lo inicialmente. Mas, uma vez que você pega o jeito, é bem simples de usar.
- Avaliação do F5 NGINX, Amogh H.
2. Kemp LoadMaster
Kemp LoadMaster oferece soluções de balanceamento de carga para alto desempenho e entrega segura de cargas de trabalho de aplicativos. É conhecido por implantações simplificadas, licenciamento flexível e suporte técnico de primeira linha.
O que os usuários gostam:
O produto LoadMaster é incrivelmente fácil de usar para todas as funções básicas. Conseguimos configurar facilmente regras de balanceamento de carga para sistemas web e internos, mas há muito mais que ele pode fazer como produto de balanceamento de carga. Esses recursos podem ser bastante complicados de configurar, mas o suporte é incomparável. Então, qualquer problema ao configurar um serviço, envie um ticket, e dentro de uma hora, alguém retorna, e sessões remotas resolvem os problemas. Não há espera de dias por uma resposta. Isso é o que realmente nos atrai a renovar a cada ano – você percebe o quão importante é um bom suporte. Configurar os LoadMasters a partir de uma imagem de VM leva cerca de 15 minutos para uma configuração HA.
- Avaliação do Kemp LoadMaster, Daniel S.
O que os usuários não gostam:
Interface web. É sem polimento e não intuitiva. Por exemplo, servidores reais não são configurados na seção "Servidores Reais". É difícil encontrar as configurações, e configurações para coisas relacionadas estão espalhadas por várias seções. Colocação inconsistente dos botões, nomes de campos inconsistentes: às vezes tudo em maiúsculas como "Tempo de Conexão", às vezes em maiúsculas e minúsculas como "Tentativas de Repetição" logo abaixo. Falta de suporte para Duo 2FA. Grande parte da documentação online e tutoriais estão desatualizados.
- Avaliação do Kemp LoadMaster, Peter K.
3. Azure Traffic Manager
Azure Traffic Manager oferece um serviço de balanceamento de carga baseado em nuvem projetado para garantir alta disponibilidade, aumentar a capacidade de resposta, fornecer insights baseados em uso e combinar sistemas locais e em nuvem.
O que os usuários gostam:
Os gerenciadores de tráfego permitem redirecionar usuários para endpoints apropriados com base em diferentes configurações. Estamos usando para rotear usuários para versões nacionais do site, dependendo da localização dos usuários. Isso permite que os usuários vejam informações em seu idioma nativo e minimiza o tempo de resposta das páginas da web porque os sites nacionais estão localizados nos data centers mais próximos. A principal característica é que todo o roteamento é realizado em segundo plano, e todos os usuários podem usar um único URL para acessar o site, independentemente de sua localização. A segunda grande característica é a opção de failover, então o site permanece disponível com o mesmo URL, independentemente de sua localização atual. Estamos usando para sites locais onde a Recuperação de Site do Azure foi configurada para servidores. O URL permanece ativo mesmo após o failover para o Azure.
- Avaliação do Azure Traffic Manager, Arthur S.
O que os usuários não gostam:
Ele aumenta o tempo de resposta inicial para o site devido às atividades de roteamento. Mesmo que os usuários sejam redirecionados para o site mais próximo, o pedido inicial irá para a região do Azure onde o gerenciador de tráfego está implantado.
- Avaliação do Azure Traffic Manager, Michael L.
4. AWS Elastic Load Balancing
AWS Elastic Load Balancing distribui o tráfego de aplicativos de entrada para melhorar a escalabilidade do aplicativo. É conhecido por oferecer alta disponibilidade, segurança robusta e recursos de escalonamento automático.
O que os usuários gostam:
O ELB é altamente disponível e permite o roteamento de tráfego para outros servidores instantaneamente, mesmo que o principal esteja inativo. Não é cobrável. O ELB funciona bem com o autoescalonamento da AWS (ajuda a escalar para cima/para baixo em tempo de execução sem qualquer impacto). Podemos integrar o ELB com o Route53 e o CloudFront para atender ao pedido a tempo de diferentes locais para evitar latência. É seguro e fácil de instalar também.
- Avaliação do AWS Elastic Load Balancing, Anshu K.
O que os usuários não gostam:
As verificações de saúde demoram um pouco mais do que o esperado às vezes, e isso pode causar problemas se você não configurar a verificação de saúde com cuidado.
- Avaliação do AWS Elastic Load Balancing, Joey D.
5. Micro Focus Silk Performer
Micro Focus Silk Performer otimiza o desempenho de aplicativos com testes de carga e estresse realistas e poderosos. Ele oferece diagnósticos de ponta a ponta e permite que aplicativos tolerem uso aumentado.
O que os usuários gostam:
Análise de aplicativos e a facilidade de lançar qualquer funcionalidade de teste de carga de pico de tamanho necessário. É fácil construir testes usando o Micro Focus Silk Performer para melhoria da qualidade de produção.
- Avaliação do Micro Focus Silk Performer, Debra M.
O que os usuários não gostam:
A criação de scripts foi difícil inicialmente. Muitas funções parecem semelhantes, mas é difícil avaliar a certa.
- Avaliação do Micro Focus Silk Performer, Rajesh H.
Melhore o tempo de atividade e a distribuição de carga
Hoje, os DevOps precisam garantir que os aplicativos atendam às crescentes demandas de tráfego com mínima interrupção do usuário. Eles aproveitam as capacidades de balanceamento de carga, como distribuição de carga de rede, melhoria do tempo de atividade, detecção de falhas de servidor e minimização de carga de servidor de backend para manter o servidor funcional. Os balanceadores de carga são cruciais para a escalabilidade, disponibilidade e segurança de aplicativos.
Procurando adicionar balanceadores de carga à sua rede? Descubra mais sobre servidores privados virtuais e se você deve escolhê-los para armazenar recursos.

Sudipto Paul
Sudipto Paul is an SEO content manager at G2. He’s been in SaaS content marketing for over five years, focusing on growing organic traffic through smart, data-driven SEO strategies. He holds an MBA from Liverpool John Moores University. You can find him on LinkedIn and say hi!