Load balancer: o balanceador de carga
Graças ao balanceamento de carga, os acessos aos servidores podem ser distribuídos uniformemente através de uma instância técnica intermédia, o balanceador de carga. Desta forma, garante-se uma velocidade de acesso estável, o que é fundamental para a captação de leads e clientes.
O que é o balanceamento de carga?
O balanceamento de carga é um método amplamente utilizado na tecnologia de servidores. Consiste em distribuir as solicitações dos utilizadores por vários servidores de forma transparente. Para tal, utiliza-se um balanceador de carga, que pode ser implementado tanto em hardware como em software. Esta tecnologia permite atribuir vários servidores a um mesmo domínio sem gerar conflitos de endereços, uma vez que todos operam sob um único URL público.
Os servidores secundários são identificados com nomes como www1, www2, www3, etc. Assim, o balanceamento de carga permite que uma página web esteja disponível através de um único URL, embora, na realidade, funcione com vários servidores em segundo plano. Isto evita a sobrecarga de um único servidor, uma vez que os pedidos externos são distribuídos por diferentes equipamentos físicos dentro do cluster. Os utilizadores, em geral, não notam este processo, uma vez que a atribuição das solicitações é feita através de algoritmos complexos em segundo plano.
O balanceamento de carga não se aplica apenas a servidores web, mas também a sistemas com vários processadores. Nestes casos, o balanceador de carga distribui as solicitações uniformemente entre os diferentes processadores, o que permite aumentar a capacidade de processamento.
Também na utilização de software de contentores , como o Kubernetes, os balanceadores de carga desempenham um papel fundamental. São responsáveis por distribuir de forma eficiente as cargas de trabalho entre os diferentes pods.
Como funciona o balanceamento de carga?
As consultas a um servidor web, tal como os acessos a uma página, chegam primeiro ao balanceador de carga. Este encarrega-se da distribuição da carga, redirecionando o tráfego para diferentes servidores. O balanceador de carga pode ser implementado tanto em hardware como em software, mas o princípio de funcionamento é o mesmo: quando recebe um pedido, consoante o método utilizado, o dispositivo ou o software redireciona-o para o servidor mais adequado.
A base técnica deste processo é o sistema DNS (Domain Name System). Os utilizadores acedem a um site introduzindo um URL, que é depois convertido pelo DNS num endereço IP. Este endereço IP aponta para o balanceador de carga, que gere a distribuição do tráfego. Na melhor das hipóteses, este processo é completamente impercetível para o utilizador.

Quais são as vantagens de um balanceador de carga bem configurado?
As três principais vantagens de um balanceador de carga eficiente são:
- Tempos de acesso otimizados: ao distribuir o tráfego por vários servidores, os tempos de resposta são reduzidos, mesmo quando há muitas solicitações simultâneas.
- Maior tolerância a falhas: um balanceador de carga melhora a estabilidade do sistema ao redirecionar automaticamente o tráfego de um servidor sobrecarregado ou lento para outros servidores do cluster. Se um servidor deixar de estar disponível, o site alojado continuará a funcionar.
- Manutenção do sistema simplificada: o balanceamento de carga facilita a administração do servidor, uma vez que permite realizar configurações e atualizações sem interromper o funcionamento. O balanceador de carga deteta quando um servidor está em manutenção e redireciona as solicitações automaticamente.
Que métodos de balanceamento de carga existem?
A distribuição das solicitações recebidas depende do algoritmo utilizado. Os algoritmos mais populares para o balanceamento de carga são: Round Robin, Weighted Round Robin, Least Connections e Weighted Least Connections.
Round Robin
O método Round Robin é um sistema de distribuição em que o balanceador de carga gere as solicitações recebidas numa fila e as distribua sequencialmente entre os servidores ligados em série. Cada nova solicitação é atribuída ao próximo servidor da lista, o que permite distribuir a carga de forma equitativa dentro do cluster de balanceamento de carga. No Round Robin, todas as solicitações são tratadas da mesma forma, sem considerar a urgência da solicitação ou a carga atual de cada servidor. Por isso, este método é mais adequado para ambientes em que todos os servidores dispõem de recursos semelhantes.
Round Robin ponderado
As limitações do algoritmo Round Robin em clusters de servidores heterogéneos podem ser resolvidas através do método Weighted Round Robin. Neste caso, os pedidos recebidos são distribuídos de acordo com uma ponderação estática de cada servidor, que deve ser definida previamente pelo administrador do sistema.
Por exemplo, pode atribuir-se um valor de «100» a um servidor com maior capacidade e um valor de «50» a servidores menos potentes. Neste cenário, o balanceador de carga atribuirá duas solicitações ao servidor com peso 100 por cada uma que o servidor com peso 50 receber. O método Weighted Round Robin é especialmente útil em ambientes onde os servidores do cluster têm capacidades de hardware diferentes.
Menos ligações
Os algoritmos Round Robin não têm em conta o número de ligações ativas que cada servidor mantém num determinado período de tempo. Isto pode fazer com que um servidor acumule muitas ligações e fique sobrecarregado, mesmo que, no total, tenha recebido menos pedidos do que outros. Para evitar este problema, o método Least Connections distribui os pedidos de acordo com o número de ligações ativas em cada servidor. O balanceador de carga atribui a nova solicitação ao servidor que tiver o menor número de conexões naquele momento. Este método de balanceamento de carga é ideal para clusters de servidores homogéneos, onde todos os equipamentos dispõem de recursos semelhantes.
Mínimo de conexões ponderado
Se um cluster de servidores tiver capacidades desiguais, em vez do método «Least Connections», recomenda-se utilizar um sistema de balanceamento de carga baseado na distribuição ponderada de acordo com as ligações ativas. Este método tem em conta tanto o número de ligações ativas de cada servidor como o peso previamente atribuído pelo administrador. Desta forma, consegue-se uma distribuição equilibrada da carga dentro do cluster. O balanceador de carga atribui automaticamente os novos pedidos aos servidores com a menor relação entre o número de ligações ativas e o seu peso, garantindo assim uma utilização eficiente dos recursos.
Que problemas podem surgir com o balanceamento de carga?
O comércio eletrónico enfrenta frequentemente problemas específicos relacionados com o balanceamento de carga. Um exemplo comum é a gestão do carrinho de compras. Quando os utilizadores adicionam produtos, estes são armazenados temporariamente durante a sessão, independentemente da página que visitem dentro do marketplace. No entanto, um balanceador de carga padrão distribuiria as consultas por diferentes servidores, o que poderia fazer com que o conteúdo do carrinho se perdesse ao mudar de servidor.
Para resolver este problema, podem ser utilizadas duas abordagens. Por um lado, o balanceador de carga pode basear-se no endereço IP do utilizador, garantindo que todos os pedidos provenientes do mesmo IP sejam sempre direcionados para o mesmo servidor. Por outro lado, é possível extrair um ID de sessão de cada pedido, o que permite ao balanceador de carga identificar para que servidor deve enviá-lo, garantindo assim a coerência dos dados.
Por que é importante o balanceamento de carga?
Se o seu negócio depende da Internet, uma falha no servidor pode ter consequências graves. Se utilizar apenas um servidor e este entrar em colapso devido a sobrecarga, o seu site deixará de estar disponível para potenciais clientes. Isto gera vários problemas: por um lado, durante a sobrecarga, não poderá gerar receitas, uma vez que não será possível reservar serviços nem concluir compras. Por outro lado, a confiança dos clientes diminui, especialmente se a falha ocorrer durante um processo de compra. Nestes casos, os utilizadores duvidarão se o seu pedido foi registado corretamente no sistema.
Mesmo que a sua empresa não ofereça serviços online, o seu site deve estar sempre acessível, uma vez que é um dos principais meios para obter informações sobre a sua empresa. Se os potenciais clientes procurarem informações sobre a sua empresa e não conseguirem aceder ao seu site, é provável que recorram à concorrência. Um balanceador de carga ajuda a minimizar esses riscos e garante a disponibilidade do seu site.
Implementação do balanceamento de carga nas empresas
O balanceamento de carga pode ser implementado tanto através de soluções de hardware como de software num servidor virtual. Existem pacotes profissionais que muitos fornecedores oferecem como Infraestrutura como Serviço (IaaS) ou como parte da infraestrutura de rede de uma empresa.
Dado que a aquisição de balanceadores de carga comerciais implica, geralmente, custos elevados, muitas pequenas empresas optam por soluções de código aberto, como o NGINX. Esta alternativa permite distribuir a carga de forma eficiente na rede de servidores, garantindo assim a alta disponibilidade de páginas web corporativas e outros projetos online. No setor do alojamento web, o balanceamento de carga também é frequentemente oferecido como uma funcionalidade adicional para servidores na nuvem.