Sobes.tech
Junior

O que é um balanceador de carga?

sobes.tech IA

Resposta da IA

O balanceador de carga é um dispositivo ou software que distribui o tráfego de entrada por vários servidores, garantindo o uso ótimo dos recursos. Aumenta a disponibilidade, escalabilidade e resistência a falhas das aplicações.

Princípios de funcionamento:

  • Escuta em portas: Aguarda solicitações em portas de rede específicas.
  • Roteamento de tráfego: Direciona as solicitações para servidores disponíveis com base em um algoritmo selecionado.
  • Monitoramento de estado: Verifica a operabilidade dos servidores (checagens de saúde).
  • Gerenciamento de sessões: Pode manter o estado da conexão para o usuário.

Algoritmos populares de balanceamento:

  1. Round Robin: Distribui as solicitações sequencialmente entre os servidores.
  2. Menos conexões: Direciona a solicitação para o servidor com menor número de conexões ativas.
  3. Hash IP: Distribui o tráfego com base em um hash do IP do cliente, enviando sempre as solicitações de um mesmo cliente para o mesmo servidor.
  4. Round Robin ponderado / Menos conexões ponderado: Distribui o tráfego considerando os pesos atribuídos aos servidores.

Exemplos de soluções:

  • Software: Nginx, HAProxy, Apache mod_proxy.
  • Hardware: F5, Citrix ADC.
  • Nuvem: AWS ELB, Google Cloud Load Balancing, Azure Load Balancer.

Vantagens:

  • Alta disponibilidade: Se um servidor falhar, o balanceador redireciona o tráfego para outros.
  • Escalabilidade: Permite adicionar facilmente novos servidores para lidar com cargas crescentes.
  • Otimização de desempenho: Distribuindo a carga, reduz o tempo de resposta.
  • Segurança aprimorada: Pode realizar funções de terminação SSL ou atuar como proxy.

No contexto de QA, o balanceador de carga é importante para testes:

  • Desempenho: Testes de comportamento do sistema sob alta carga distribuída pelo balanceador.
  • Confiabilidade / Tolerância a falhas: Testes de reação a falhas de servidores individuais.
  • Correção dos algoritmos de balanceamento: Verificação da distribuição correta do tráfego de acordo com a estratégia escolhida.
  • Manutenção de sessão (Sticky Sessions): Testes de manutenção da sessão do usuário ao distribuir as solicitações.