O que é o load balancing?

O que é o load balancing?

O load balancing, ou repartição de carga, é uma tecnologia concebida para distribuir a carga de trabalho entre diferentes servidores ou aplicações. O objetivo consiste em otimizar o desempenho global da infraestrutura, o seu rendimento e a sua capacidade.

Load Balancer OVHcloud

Load balancer: definição

O tráfego online tem vindo a aumentar exponencialmente nos últimos dez anos. Os internautas estão a tornar-se cada vez mais exigentes em termos de rapidez de acesso e de segurança. Os servidores web são extremamente solicitados. Assim, uma estratégia de otimização da carga de trabalho foi implementada: o load balancing, que permite a um grupo de servidores (cluster) fazer face aos picos de tráfego e prever uma solução de emergência em caso de avaria. É neste momento que intervém o load balancer (repartidor de carga). Permite equilibrar a carga de trabalho entre os servidores, de forma a manter a sua capacidade a um nível ideal. Quando o seu website está alojado nos nossos servidores com um load balancer, estará menos sujeito a atrasos ou interrupções de serviço.

Deve ser instalado um repartidor de carga numa infraestrutura dedicada, física ou virtual. No caso de uma plataforma física, um servidor servirá de load balancer, o que exigirá um investimento considerável. Já um software de load balancing pode ser instalado numa máquina virtual (virtual machine ou VM). Este sistema assumirá a forma de um controlador de entrega de aplicações (aplicação delivery controller ou ADC). Na sua versão virtual, o load balancer será mais flexível e permitirá que o seu beneficiário faça evoluir automaticamente a carga em função das previsões de tráfego.

Em ambos os casos, identificará em tempo real qual o servidor que será mais apto para responder à procura, de forma a que o cluster mantenha um nível de desempenho estável. Em caso de avaria de uma máquina, este load balancer terá igualmente por missão transferir a carga de trabalho para outro servidor.

Quando um utilizador pede para carregar a página de um website, o load balancer intervém entre ele e o servidor. Analisará qual a máquina mais apta para responder a este pedido e, a seguir, transmitir-lhe-á. Pode também adicionar ou retirar servidores em função da carga, conforme as necessidades.

schema-LB

Como funciona um load balancer?

A repartição de carga é efetuada por um algoritmo, baseado no DNS (Domain Name System). O utilizador acede aos websites através de um URL associado a um endereço IP, que contacta o repartidor de carga e transmite o pedido ao servidor. A repartição dependerá do tipo de algoritmo utilizado. Os quatro mais conhecidos são: Round Robin, Weighted Round Robin, Least Connections e Weighted Least Connections.

 

Round Robin

Este método cria uma fila de espera para os pedidos de entrada. Estes são geridos pelo repartidor de carga, que as distribui aos servidores do cluster. Os pedidos são atribuídos de forma sequencial, em função da disponibilidade das máquinas. Round Robin não tem em conta a urgência do pedido, nem a carga que irá representar para o servidor em causa. Assim, adapta-se aos ambientes em que os servidores dispõem de recursos idênticos. Contudo, numa infraestrutura em que estes sejam diferentes, o algoritmo pode atribuir cargas inadequadas a máquinas menos potentes, o que pode levar a uma sobrecarga.

Este é o método mais clássico e serve de modelo para outros algoritmos.

 

Weighted Round Robin

Ao contrário do Round Robin clássico, este método funciona com distribuição ponderada. É atribuído a cada servidor um valor com antecedência, em função das suas capacidades e da sua potência. Por exemplo, o mais potente terá um valor de 10 e o menos potente um valor de 1. Ou seja, o load balancer atribuirá mais carga à máquina mais robusta. Este método é, portanto, mais adequado a um ambiente em que os recursos entre os servidores diferem: a carga é otimizada em função das suas capacidades.

 

Least Connections

Os dois métodos precedentes não têm em conta o número de ligações que os servidores do cluster devem gerir aquando da distribuição das tarefas pelo load balancer. Por isso, algumas ligações podem acumular-se num servidor e sobrecarregá-lo. O Least Connections resolve isso, pois tem em conta os pedidos já existentes no servidor web durante a distribuição. A máquina com o menor número de pedidos recebe a próxima solicitação do load balancer. Em contrapartida, este algoritmo não tem em conta as capacidades técnicas dos servidores. Assim, é mais adaptado aos ambientes cujos recursos de servidor são idênticos.

 

Weighted Least Connections

Este algoritmo complementa o do Least Connections. Numa infraestrutura em que os recursos dos servidores são heterogéneos, deve ter em conta o volume de pedidos para cada máquina, bem como a sua ponderação definida pelo administrador. Tal como no Weighted Round Robin, o servidor mais potente tem uma maior ponderação. Isto permite manter uma repartição ótima dos pedidos num cluster. Todos os novos pedidos são atribuídos ao servidor com a relação ativos/ponderação mais baixa.

Vantagens e importância do load balancer

A principal vantagem de um load balancer é reduzir o tempo de resposta de um website após os pedidos dos utilizadores. A otimização da carga de trabalho dos servidores limita os riscos de avarias ligadas a uma sobrecarga. Se uma máquina ficar indisponível, os utilizadores serão reencaminhados para outro servidor e terão sempre acesso às páginas. Assim, poderá garantir-lhes uma experiência ótima graças a uma qualidade de serviço constante: alojamento flexível, alta disponibilidade, escalabilidade, etc. Além disso, a OVHcloud não limita a sua largura de banda nem o seu tráfego mensal.

O load balancer continua particularmente adaptado ao e-commerce, onde grandes flutuações de tráfego podem originar sobrecargas. Além disso, permite-lhe manter funcionalidades homogéneas nos seus websites, manter a sua imagem online, assim como tranquilizar os seus clientes. Concretamente, não haverá carrinhos perdidos nem operações de pagamento interrompidas.