No último post da nossa série sobre cloud computing falamos sobre clusters de banco de dados e a utilização de uma camada de load balancing para controlar o fluxo das requisições. Hoje iremos aprofundar mais nesta camada apresentando um pouco sobre a configuração da mesma.
Vamos iniciar esta abordagem com aquele grande momento tão esperado. Seu site sendo visualizado por milhares de pessoas. Neste mesmo momento vivemos um momento de grande felicidade, acompanhada aquela dor de cabeça. Isto porque, você nota que a estrutura atual do servidor não está suportando a demanda.
Não se preocupe! O Load Balance pode solucionar isto.
Muitos sites possuem milhares de requisições simultâneas e para ajudar nesta atividade o conceito de Load Balance ( balanceamento de carga ) nos ajudará a suportar a demanda das requisições.
O conceito de Load Balance é uma técnica para distribuir a carga de trabalho uniformemente entre duas ou mais instâncias, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga.
Uma observação para este projeto é da necessidade da unificação dos arquivos em um única instância e utilizar o NFS ou outra forma, para compartilhar os arquivos com as demais instâncias.
Há diversos softwares que realizam está atividade de Load Balance como por exemplo Nginx, Haproxy, Balance e outros….
Vou ilustrar aqui uma configuração realizada no Haproxy de uma forma bem simples, mas utilizando a ferramenta disponibilizada gratuitamente para todos os clientes DialCloud+ da DialHost
Ao clicar sobre a aba Load Balancing, será visualizada a tela acima:
IP Público: IP no qual sua instância está utilizando para receber as conexões externas.
Nome: Nome para a configuração.
Porta Pública: Porta na qual os clientes estarão utilizando para conectar a sua aplicação para visualizar o seu site. Exemplo: porta 80 HTTP
Porta Privada: Porta do serviço configurado na instância para receber as requisições.
Algorítimos
Round-robin – A cada requisição será redirecionada para uma instância.
Least connections – A instância que possuir um menor numero de conexões estará recebendo a próxima requisição.
Source – O primeiro acesso do IP do Source é enviado a uma instância. Após definido, suas requisições futuras irão para a mesma instância
Simples! Após as informações solicitadas as requisições já estarão sendo direcionadas para as instâncias configuradas.
Espero que tenha ajudado a todos nesta dica de aprimoramento da estrutura para seu site.