Clique e receba as novidades quentinhas no Telegram

A maioria dos usuários da web está felizmente inconsciente da escala do processo responsável por trazer conteúdo pela Internet. Dessa forma, existem literalmente quilômetros de Internet entre você e o servidor que está acessando. Além disso, existem outros fatores que influenciam o tráfego de rede, como o “Load Balance”.

Internet caindo toda hora? Veja o que fazer!

Para tornar as coisas piores, locais que se tornam bem populares sofrem com aumentos consistentes no tráfego mensal, que podem retardar a experiência para todos os envolvidos. Alguns sites podem atrair mais visitas em um mês do que sites comparáveis em um ano. Assim, os sites que trazem tráfego de alto volume podem ser confrontados com atualizações frequentes do servidor, de forma que a velocidade da página e, por sua vez, a usabilidade não sejam afetadas por seus clientes fiéis. No entanto, frequentemente as atualizações de hardware simples não são suficientes para lidar com o vasto tráfego que alguns sites atraem.

Portanto, a questão que os proprietários de negócios, seus designers de UX e seus desenvolvedores deveriam se perguntar não é apenas como manter a velocidade do dia a dia em um nível que não afete a usabilidade, mas também como se preparar para o tipo de tráfego que seu site pode experimentar no futuro.

Prepare-se para o pior e comece a usar o “Load Balance”

Load Balance: veja o que é e como funciona! - Foto: CB
Load Balance: veja o que é e como funciona – Foto: CB

Então, como você garante que seu site não “explodirá” em chamas figurativas à medida que as visitas às páginas dispararem? Portanto, considere o emprego de uma técnica chamada “Load Balance” (balanceamento de carga).

Assim, de forma resumida, podemos dizer que o Load Balance se refere à distribuição eficiente do tráfego de rede de entrada em um grupo de servidores “back-end”, também conhecido como “farm de servidores” ou “pool de servidores”.

Como ele funciona?

Load Balance: veja o que é e como funciona! - Foto: Medium
Load Balance: veja o que é e como funciona! – Foto: Medium

O “Load Balance” distribui as cargas do servidor em vários recursos – na maioria das vezes em vários servidores. Dessa forma, a técnica visa reduzir o tempo de resposta, aumentar o rendimento e, em geral, acelerar as coisas para cada usuário final.

Os sites modernos de alto tráfego devem atender a centenas de milhares, senão milhões, de solicitações simultâneas de usuários ou clientes e retornar o texto, imagens, vídeo ou dados de app corretos, tudo de maneira rápida e confiável. Portanto, para dimensionar de forma econômica para atender a esses altos volumes, as melhores práticas de computação moderna requerem a adição de mais servidores.

Um “Load Balance” de carga atua como o “guarda de tráfego” sentado na frente de seus servidores e encaminhando solicitações de clientes em todos os servidores capazes de atender a essas solicitações de maneira a maximizar a velocidade e a utilização da capacidade e garantir que nenhum servidor fique sobrecarregado, o que pode prejudicar o desempenho. Assim, se um único servidor ficar inativo, o “Load Balance” redirecionará o tráfego para os servidores online restantes. Além disso, quando um novo servidor entra no grupo de servidores, o “Load Balance” começa automaticamente a enviar solicitações a ele.

As cargas se dividem com base em um conjunto de métricas predefinidas, como por localização geográfica ou pelo número de visitantes simultâneos do site.

Membros de um determinado grupo – como “pessoas que vivem na Europa”, por exemplo, podem ser direcionados para um servidor dentro da Europa, enquanto membros de outro grupo levam, por exemplo, “norte-americanos” e podem ser direcionados para outro servidor, mais próximo de eles.

Quais as funções do “Load Balance”?

Load Balance: veja o que é e como funciona! - Foto: WSO2
Load Balance: veja o que é e como funciona – Foto: WSO2

Portanto, um “Load Balance” executa as seguintes funções:

  • Distribui solicitações de cliente ou carga de rede de forma eficiente em vários servidores;
  • Garante alta disponibilidade e confiabilidade enviando solicitações apenas para servidores que estão online;
  • Oferece flexibilidade para adicionar ou subtrair servidores conforme a demanda dita.

Algoritmos de “Load Balance”

Load Balance: veja o que é e como funciona! - Foto: Azion
Load Balance: veja o que é e como funciona – Foto: Azion

Diferentes algoritmos de “Load Balance” fornecem benefícios diferentes. Dessa forma, a escolha do método do “Load Balance” depende de suas necessidades:

  • Round Robin: as solicitações são distribuídas pelo grupo de servidores de forma sequencial.
  • Menos conexões: uma nova solicitação vai ao servidor com o menor número de conexões atuais com os clientes. Além disso, a capacidade de computação relativa de cada servidor é fatorada para determinar qual deles tem menos conexões.
  • Hash de IP: O endereço de IP do cliente é útil para determinar qual servidor recebe a solicitação.

Os “Load Balance” geralmente são agrupados em duas categorias: Camada 4 e Camada 7. Dessa forma, os “Load Balance” da camada 4 agem sobre os dados encontrados nos protocolos da camada de transporte e rede (IP, TCP, FTP, UDP). Por outro lado, os “Load Balance” da camada 7 distribuem solicitações com base nos dados encontrados nos protocolos da camada de app, como HTTP.

Além disso, os “Load Balance” da camada 7 podem distribuir ainda mais as solicitações com base em dados específicos do app, como cabeçalhos HTTP, cookies ou dados dentro da própria mensagem do app, como o valor de um parâmetro específico.

Persistência da sessão ou sessões fixas

Load Balance: veja o que é e como funciona! - Foto: DA
Load Balance: veja o que é e como funciona! – Foto: DA

As informações sobre a sessão de um usuário geralmente são armazenadas localmente no navegador. Por exemplo, em um app de carrinho de compras, os itens no carrinho de um usuário podem ser armazenados no nível do navegador até que o usuário esteja pronto para comprá-los. Dessa forma, alterar qual servidor recebe solicitações desse cliente no meio da sessão de compra pode causar problemas de desempenho ou até falha total da transação. Nesses casos, é essencial que todas as solicitações de um cliente sejam enviadas ao mesmo servidor durante a sessão. Isso se chama “persistência de sessão”.  Assim, esse é um método usado com “Load Balance” de app, para atingir afinidade com o servidor.

Os melhores “Load Balance” podem lidar com a persistência da sessão conforme necessário. Assim, outro caso de uso para persistência de sessão é quando um servidor upstream armazena informações solicitadas por um usuário em seu cache para aumentar o desempenho. Dessa forma, a troca de servidores faria com que essas informações fossem buscadas pela segunda vez, criando ineficiências de desempenho.

Vantagens

  • Razoavelmente simples de implementar para administradores de rede experientes;
  • Reduz a necessidade de implementar failover de sessão, já que os usuários só são enviados para outros servidores se um ficar offline;
  • O “Load Balance” / roteador geralmente é responsável por detectar servidores offline. Dessa forma, ele fornece failover de solicitação mais rápido do que o “Load Balance” baseado em DNS round-robin.

Desvantagens

  • Difícil de configurar para administradores de rede que são novos em sessões persistentes;
  • Os problemas podem ser difíceis de diagnosticar. Portanto, consulte as seções abaixo para os principais problemas;
  • O próprio “Load Balance” / roteador deve ter seu próprio balanceamento de carga, ou se tornará um ponto de falha que derrubará um cluster inteiro;
  • Não é possível fornecer balanceamento de carga global (enquanto o DNS round-robin pode);
  • O failover de sessão geralmente não é implementado, pois a necessidade é reduzida. Dessa forma, se um servidor ficar offline, todos os usuários perderão sua sessão.

Configuração Dinâmica de Grupos de Servidores

Load Balance: veja o que é e como funciona! – Foto: VR

Muitos apps que mudam de forma rápida exigem que novos servidores sejam adicionados ou desativados constantemente. Portanto, isso é comum em ambientes como o Amazon Web Services (AWS) e Elastic Compute Cloud (EC2), que permite que os usuários paguem apenas pela capacidade de computação que realmente usam, ao mesmo tempo que garante que a capacidade aumenta em picos de tráfego de resposta. Além disso, em tais ambientes, ajuda muito se o “Load Balance” pode adicionar ou remover servidores de forma dinâmica do grupo sem interromper as conexões existentes.

Balanceamento de carga de hardware x software

Load Balance: veja o que é e como funciona! – Foto: LC

Os “Load Balance” normalmente vêm em dois sabores: baseados em hardware e baseados em software. Dessa forma, os fornecedores de soluções baseadas em hardware carregam software proprietário na máquina e usa processadores especializados. Portanto, para lidar com o aumento do tráfego em seu site, você precisa comprar mais ou maiores máquinas do fornecedor. Assim, as soluções de software geralmente são executadas em hardware comum, tornando-as menos caras e mais flexíveis. Além disso, você pode instalar o software no hardware de sua escolha ou em ambientes de nuvem como o AWS EC2.

Por fim, vale lembrar que os “Load Balance” garantem confiabilidade e disponibilidade monitorando a “saúde” dos apps e enviando apenas solicitações a servidores e apps que podem responder em tempo hábil, ajudando a maximizar a satisfação do cliente e o retorno sobre seus investimentos em TI.

Gostou? O que achou? Deixe seu comentário. Além disso, não se esqueça de entrar no nosso grupo do Telegram. É só clicar em “Canal do Telegram” que está localizado no canto superior direito da página!