O que é um balanceador de carga?
Um balanceador de carga permite distribuir dinamicamente o tráfego de rede entre recursos (locais ou na nuvem) para dar suporte a uma aplicação.
Um balanceador de carga é uma solução que atua como proxy de tráfego e distribui o tráfego de rede ou de aplicações entre endpoints em vários servidores. Os balanceadores de carga são usados para distribuir a capacidade durante os períodos de pico de tráfego e aumentar a confiabilidade das aplicações. Eles melhoram o desempenho geral das aplicações ao reduzir a carga sobre serviços ou nuvens individuais e distribuir a demanda entre diferentes ambientes computacionais, ajudando a manter as sessões de aplicações e de rede.
Os aplicativos modernos precisam processar milhões de sessões simultaneamente e fornecer a cada usuário os textos, vídeos, imagens e outros dados corretos de forma rápida e confiável. Para lidar com volumes de tráfego tão elevados, a maioria dos aplicativos conta com vários servidores de recursos que contêm dados duplicados.
O balanceamento de carga distribui dinamicamente o tráfego de rede por uma rede de recursos que dão suporte a uma aplicação. Um balanceador de carga é o dispositivo ou serviço que fica entre o usuário e o grupo de servidores e atua como um facilitador invisível, garantindo que todos os servidores de recursos sejam utilizados igualmente. Um balanceador de carga ajuda a aumentar a confiabilidade e a disponibilidade, mesmo em períodos de alta utilização e demanda, além de garantir maior tempo de atividade e uma melhor experiência para o usuário.
Em alguns casos, é essencial que todas as solicitações de um cliente sejam enviadas ao mesmo servidor durante uma sessão, por exemplo, quando um cliente adiciona itens a um carrinho de compras e depois conclui a compra. A manutenção da conexão entre o cliente e o servidor é conhecida como persistência de sessão. Sem a persistência de sessão, as informações precisam ser sincronizadas entre os servidores e podem ter que ser recuperadas várias vezes, gerando ineficiências de desempenho.
Benefícios do balanceamento de carga
Usuários e clientes dependem da capacidade de encontrar informações e realizar transações praticamente em tempo real. A latência ou respostas pouco confiáveis e inconsistentes — mesmo durante períodos de pico de demanda e uso — podem afastar um cliente para sempre. Além disso, picos elevados na necessidade de recursos computacionais podem causar problemas graves em um servidor interno ou sistema de servidores se a demanda recebida — ou “carga” — for alta demais para ser facilmente atendida.
As vantagens de usar um balanceador de carga incluem:
- Disponibilidade do aplicativo: Tanto os usuários internos quanto os externos precisam poder contar com a disponibilidade do aplicativo. Se um aplicativo ou uma função estiver fora do ar, com lentidão ou travado, perde-se um tempo precioso — além de surgir uma possível fonte de atrito que pode levar um cliente a procurar um concorrente.
- Escalabilidade da aplicação: Imagine que você administra uma empresa de venda de ingressos e que os ingressos para um espetáculo popular sejam anunciados para venda em determinada data e horário. Milhares de pessoas, ou até mais, podem tentar acessar seu site para comprar ingressos. Sem um balanceador de carga, seu site ficaria limitado à capacidade de um único servidor — que provavelmente não daria conta de tamanha demanda. Em vez disso, você pode se preparar para esse grande pico de tráfego usando um balanceador de carga para direcionar as solicitações e o tráfego a outros recursos computacionais disponíveis. Assim, mais clientes poderão conseguir os ingressos desejados.
- Segurança de aplicações: O balanceamento de carga também permite que as organizações dimensionem suas soluções de segurança. Uma das principais maneiras de fazer isso é distribuir o tráfego entre vários sistemas de back-end, o que ajuda a minimizar a superfície de ataque e dificulta o esgotamento de recursos e a saturação de links. Os balanceadores de carga também podem redirecionar o tráfego para outros sistemas caso um deles esteja vulnerável ou comprometido. Além disso, os balanceadores de carga podem oferecer uma camada adicional de proteção contra ataques DDoS, redirecionando o tráfego entre servidores caso um deles fique vulnerável.
- Desempenho das aplicações: Ao fazer tudo isso, um balanceador de carga melhora o desempenho das aplicações. Ao aumentar a segurança, otimizar o tempo de atividade e permitir a escalabilidade durante picos de demanda, os balanceadores de carga mantêm suas aplicações funcionando conforme o esperado — da maneira que você e seus clientes desejam.
Algoritmos de balanceamento de carga
Há dois tipos de algoritmos de balanceamento de carga quanto à forma como operam: estáticos e dinâmicos. O balanceamento de carga estático mede a carga recebida por um servidor usando algoritmos que dispõem de informações sobre a capacidade de desempenho dos servidores existentes na rede distribuída. O balanceamento de carga dinâmico consegue identificar, durante a execução, a quantidade de carga que precisa ser redistribuída e qual sistema deve assumi-la. Ele foi projetado para sistemas com grandes oscilações na carga recebida.
A seguir estão alguns dos tipos mais comuns de algoritmos de balanceamento de carga.
- Round robin: Esse algoritmo envia o tráfego alternadamente para uma lista de servidores usando o Sistema de Nomes de Domínio (DNS). (Observação: o balanceamento de carga de DNS também pode ser uma solução dinâmica.)
- Limite: Esse algoritmo distribui tarefas com base em um valor limite definido pelo administrador.
- Aleatório com duas opções: O “poder de dois” algoritmo seleciona aleatoriamente dois servidores e envia a solicitação àquele escolhido após a aplicação do algoritmo Menor Número de Conexões ou do algoritmo Menor Tempo, caso esteja configurado dessa forma.
- Menor número de conexões: Uma nova solicitação é enviada ao servidor com o menor número de conexões ativas com clientes. A capacidade computacional relativa de cada servidor é considerada para determinar qual deles tem menos conexões ou utiliza menos largura de banda ou recursos.
- Menor tempo: Nesse algoritmo, uma solicitação é enviada ao servidor selecionado por uma fórmula que combina o tempo de resposta mais rápido e o menor número de conexões ativas.
- Hash de URL: Esse algoritmo gera um valor de hash com base na URL presente nas solicitações dos clientes. As solicitações são encaminhadas aos servidores com base no valor de hash. O balanceador de carga armazena em cache o valor de hash da URL; assim, as solicitações subsequentes que usam a mesma URL encontram o valor no cache e são encaminhadas ao mesmo servidor.
- Hash de IP de origem: Esse algoritmo usa os endereços IP de origem e de destino do cliente para gerar uma chave hash exclusiva que vincula o cliente a um servidor específico. Como a chave pode ser gerada novamente se a sessão for desconectada, as solicitações de reconexão podem ser redirecionadas para o mesmo servidor usado anteriormente.
- Hashing consistente: Esse algoritmo mapeia clientes e servidores em uma estrutura de anel, atribuindo a cada servidor vários pontos no anel de acordo com sua capacidade. Quando uma solicitação de cliente é recebida, um hash a associa a um ponto no anel e, em seguida, ela é encaminhada dinamicamente no sentido horário para o próximo servidor disponível.
Como funciona o balanceamento de carga?
O balanceamento de carga funciona respondendo de forma estática ou dinâmica a uma solicitação do usuário e distribuindo-a para um dos servidores de back-end capazes de atendê-la. Se um dos servidores ficar indisponível, o balanceador de carga redirecionará o tráfego para os demais servidores que estiverem online.
Exemplos de balanceamento de carga
Um exemplo de balanceamento de carga estático: Uma empresa hospeda um site com conteúdo predominantemente estático. Esse cenário seria ideal para um balanceador de carga estático, pois as necessidades de tráfego são previsíveis e constantes. A empresa pode usar dois (ou mais) servidores web idênticos entre os quais o balanceador de carga estático pode distribuir o tráfego.
Um exemplo de balanceamento de carga dinâmico: Uma empresa enfrenta aumentos repentinos, picos e quedas no tráfego. Alguns são previsíveis, outros não. Essas organizações se beneficiariam do balanceamento de carga dinâmico. Entre essas empresas, podem estar uma varejista de comércio eletrônico que anuncia os horários e as datas da Black Friday; uma empresa do setor de saúde que acaba de anunciar a possibilidade de agendar online a aplicação de uma vacina sazonal; um órgão governamental de assistência ao desemprego que exige que os beneficiários do seguro-desemprego apresentem uma solicitação semanal em determinado dia da semana; ou uma organização humanitária que talvez precise responder rapidamente pela internet a um desastre natural. Alguns desses aumentos repentinos e picos de tráfego e demanda podem ser previstos, mas outros não. Nesses cenários, um algoritmo de balanceamento de carga dinâmico ajudará a garantir o acesso a aplicativos e recursos quando clientes e usuários mais precisarem deles.
Diferentes tipos de balanceadores de carga
Diferentes tipos de balanceadores de carga, com diferentes recursos, fazem parte da arquitetura chamada Interconexão de Sistemas Abertos (OSI). Esse modelo é composto por sete camadas. Os firewalls de rede operam nos níveis de um a três (L1 — física, L2 — enlace de dados e L3 — rede). Já o balanceamento de carga ocorre nas camadas de quatro a sete (L4 — transporte, L5 — sessão, L6 — apresentação e L7 — aplicação). Os balanceadores de carga geralmente são usados nas camadas 4 e 7.
- Balanceadores de carga da camada 4 direcionam o tráfego com base em dados dos protocolos das camadas de rede e de transporte (IP, TCP, FTP, UDP). O balanceamento de carga na camada IP refere-se a uma implantação em que o endereço IP do balanceador de carga é aquele divulgado aos clientes de um site e, portanto, registrado como o endereço de destino. Quando o balanceador de carga recebe a solicitação, ele altera o endereço IP de destino registrado para o endereço do servidor de conteúdo escolhido.
- Os balanceadores de carga da camada 7 distribuem as solicitações com base em dados encontrados nos protocolos da camada de aplicação como cabeçalhos HTTP, cookies, identificador uniforme de recursos, ID de sessão SSL e dados de formulários HTML. Eles também permitem tomar decisões de roteamento com base em dados contidos na própria mensagem da aplicação, como o valor de um parâmetro específico. A camada 7 adiciona a comutação de conteúdo ao balanceamento de carga.
Balanceadores de carga baseados em nuvem
Balanceadores de carga baseados em nuvem não servem apenas para controlar picos de tráfego e otimizar o uso dos servidores. Os balanceadores de carga nativos da nuvem também podem fornecer análises preditivas para ajudar você a visualizar gargalos de tráfego antes que eles ocorram. Isso, por sua vez, gera insights práticos que ajudam qualquer empresa a otimizar suas soluções de TI.
Balanceamento de carga de aplicações: À medida que as empresas dependem cada vez mais do desempenho e da disponibilidade das aplicações, o balanceamento de carga de aplicações pode ajudá-las a crescer, otimizar as operações e economizar.
Balanceamento de carga global de servidores: Com usuários e clientes em todo o mundo, as empresas podem aumentar a disponibilidade de suas cargas com o balanceamento de carga global de servidores, que direciona os usuários para o endpoint mais próximo.
Balanceamento de carga de DNS: A prática de configurar um domínio no Sistema de Nomes de Domínio (DNS) para que as solicitações dos usuários ao domínio sejam distribuídas entre um grupo de servidores é chamada de balanceamento de carga de DNS.
Balanceamento de carga de rede: Os controladores de entrega de aplicações (ADCs), dispositivos físicos ou virtuais que funcionam como proxies para servidores físicos, gerenciam funções de aplicações ou de rede e contam com uma solução de balanceamento de carga de rede para auxiliá-los. Os ADCs também usam outras técnicas, incluindo cache, compactação e descarregamento do processamento SSL, para melhorar o desempenho das aplicações web. Na configuração habitual, o ADC fica à frente de um grupo de servidores web e de aplicações e intermedeia as solicitações e respostas entre eles e seus clientes, fazendo com que, na prática, o grupo pareça um único servidor virtual para o usuário final.
Balanceamento de carga HTTP(S): A técnica de distribuição de tráfego entre vários grupos de servidores web ou de aplicações para otimizar a utilização de recursos é chamada de balanceamento de carga HTTP(S).
Balanceamento de carga interno: Um balanceador de carga interno é atribuído a uma sub-rede privada e não possui um IP público. Normalmente, ele opera em um conjunto de servidores.
Diameter: Um balanceador de carga Diameter distribui o tráfego de sinalização entre vários servidores em uma rede. Uma das maneiras mais econômicas de fazer isso é dimensionar o plano de controle Diameter, em vez da camada de transporte de dados. (O balanceamento de carga Diameter também pode ser estático ou dinâmico.)
Tecnologia de balanceamento de carga
Existem outros tipos de soluções de balanceamento de carga, que podem ser usados de forma independente ou em uma rede com balanceadores de carga nativos da nuvem. Veja alguns dos principais tipos.
Balanceador de carga de hardware: Um balanceador de carga de hardware é um dispositivo físico com um sistema operacional especializado que pode ser programado para distribuir o tráfego da Web entre vários servidores de aplicações, geralmente no ambiente local.
Balanceador de carga de software: Um balanceador de carga de software funciona como um balanceador de carga físico, mas é executado em programas de software. O software mantém os aplicativos disponíveis diante de todos os tipos de demanda de tráfego, usando balanceamento de carga estático e dinâmico para eliminar pontos únicos de falha.
Balanceador de carga virtual: Um balanceador de carga virtual é um tipo de balanceador que combina balanceadores de carga de hardware e de software. Ele usa um software controlador de entrega de aplicações que ajuda a distribuir a carga do tráfego de rede entre servidores de back-end físicos.
Como a F5 pode ajudar
- Encontrar o balanceador de carga ideal para as necessidades da sua organização é fundamental para manter seus sistemas disponíveis e otimizados, seus dados acessíveis e seus usuários e clientes satisfeitos.
- A F5 pode atender às necessidades específicas de balanceamento de carga da sua organização, desde uma solução estática até uma solução global integrada que combina os pontos fortes dos balanceadores de carga baseados em hardware, software e nuvem. A F5 oferece um algoritmo ou uma solução de balanceamento de carga para as necessidades específicas da sua empresa.
- F5 NGINX Plus e NGINX são as melhores soluções de balanceamento de carga da categoria, usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites em todo o mundo contam com o NGINX Plus e o NGINX Open Source para disponibilizar seu conteúdo com rapidez, confiabilidade e segurança. Como controlador de entrega de aplicações e balanceador de carga baseado em software, o NGINX Plus é significativamente mais econômico do que soluções de hardware com recursos semelhantes. Ele combina servidor web, balanceamento de carga, armazenamento em cache, entrega de mídia e muito mais, sendo a escolha ideal para controlar a entrega de suas aplicações.
- Os serviços de aplicações BIG-IP oferecem uma solução integrada para gerenciar, dimensionar e otimizar seus serviços de aplicações digitais. Além disso, o BIG-IP Local Traffic Manager (LTM) inclui balanceamento de carga estático e dinâmico para eliminar pontos únicos de falha. O F5 BIG-IP DNS estende o balanceamento de carga entre aplicações e o aplica globalmente, garantindo que suas aplicações estejam disponíveis e atendam às necessidades dos clientes.
- F5 Distributed Cloud DNS Load Balancer oferece uma solução simples de balanceamento de carga com recuperação de desastres confiável, para que suas equipes de desenvolvimento possam se concentrar em ajudar sua empresa a inovar.
- F5 Distributed Cloud App Connect ajuda a viabilizar o balanceamento de carga conectando com segurança seus aplicativos e serviços em qualquer tipo de ambiente, inclusive na borda.
- A F5 oferece um conjunto abrangente de soluções de balanceamento de carga para manter seus aplicativos, tráfego, dados e recursos computacionais otimizados.

