Windows Brasil
Windows Brasil

Este assunto em especial tem me chamado a atenção por conta de algumas necessidades, o balanceamento de carga de servidores Web. Para quem não está familiarizado com o termo, “balanceamento de carga” consiste em dividir o processamento entre dois ou mais servidores afim de atender um número maior de requisições com tempo de resposta menor. Realizando uma pesquisa rápida pela Internet você pode encontrar “N” tipos de solução, de serviços na nuvem à programas especializados e até mesmo metodologias que se utilizam de um servidor de “proxy reverso”.

Limitações, o maior problema com essas soluções não são apenas os custos e a complexidade, existe também a possibilidade de gerar um ponto único de falha na sua infraestrutura, levando abaixo a sua alta disponibilidade, o que ironicamente deveria ser resolvido pelo balanceamento de carga.

O diagrama abaixo demonstra justamente isso:

Windows Brasil | LoadBalance
Windows Brasil | LoadBalance

Alguns provedores fornecem bandas distintas para cada servidor hospedado na nuvem e numa solução como essa você ficaria limitado à banda do seu balanceador.

O pulo do gato!

Para sanar esta necessidade o recomendado é o uso de DNS Round-Robin que consiste basicamente em configurar dois ou mais endereços para um mesmo domínio (ou sub-domínio). Desta forma cada nova requisição ao servidor de DNS, ele envia a lista de endereços numa ordem diferente e os clientes portanto passam a fazer as solicitações alternadamente.

A solução pode ser melhor observada no diagrama abaixo:

Windows Brasil | LoadBalance_RoundRobin
Windows Brasil | LoadBalance_RoundRobin

Além de dividir as requisições, há ainda a vantagem de uma maior disponibilidade do serviço, isso porque, quando os clientes de internet modernos (Navegadores) percebem que um servidor não está respondendo, passam automaticamente a fazer as requisições para os demais servidores da lista.

E se tudo isso não fosse suficiente, há ainda a economia com hardware e aquisição de software pois você não precisa de um servidor dedicado apenas ao balanceamento. Por último, se o seu provedor disponibiliza links diferentes para cada servidor, você ainda terá mais banda disponível, o que na prática, se converte em maior velocidade de entrega das páginas.

O melhor de tudo é que você não precisa de um servidor de DNS específico, eu tenho aplicado essa solução com sucesso nos mais diferentes serviços de DNS e é muito provável que o seu serviço de DNS suporte a configuração de mais de um endereço para o mesmo domínio.

Alguns céticos desta solução Round-Robin justificam que a distribuição não é uniforme, mas na minha humilde experiência, a prática mostra que não ultrapassa os 3%. Para aplicações que fazem o uso de sessões, um dos problemas com o Round-Robin é que a sessão não estaria disponível em todos os servidores, poderiam ocorrer falhas como por exemplo o usuário voltar para a tela de entrada (login) entre uma requisição e outra. Isso no entanto não seria resolvido pelas soluções tradicionais de balanceamento de carga e portanto não pode ser visto como uma desvantagem.

Experiência em Administração de redes e Infraestrutura, Implantação/administração em Servidores Windows, Dfs, Exchange Server, Lync Server, IIS Server, Banco de dados SQL Server, WDS, Fortinet, Hyper-V. Atualmente trabalhando com VMware ESXI 6, IIS Server, Linux Ubuntu e Office 365. Sólidos conhecimentos em ambientes Microsoft. Criador, Administrador e participante ativo do site www.windowsbrasil.com.br, um site voltado para auxiliar membros da nossa comunidade de TI.