Balanceamento de carga com o Pen

Autor: Cesar Brod

Durante os anos 1990 trabalhei bastante com sistemas de altíssima disponibilidade e tolerantes a falhas e, logo que conheci o Linux, tornei-me um leitor assíduo da lista brasileira que tratava do assunto de alta disponibilidade no sistema. Alguém sabe se a lista ainda existe? Caso positivo, avisa aí nos comentários.

Recentemente fui apresentado ao Pen, um balanceador de carga simples para os protocolos http (inclusive com SSL), smtp e outros. Ele permite que vários servidores apareçam como apenas um para os clientes e é capaz de detectar, automaticamente, máquinas e serviços que caíram e redistribuir o trabalho entre as máquinas remanescentes. Um efeito colateral desse processo é que é possível usar o Pen, também, para escalar aplicações. Por exemplo, se duas máquinas não estão mais dando conta do recado, coloque uma terceira com o Pen para distribuir a carga.

A instalação do Pen é ridiculamente simples:

sudo apt-get install pen

Isso para máquinas baseadas em Debian. Mas para outras, incluindo as que rodam Windows e Mac OS, também não é difícil: basta conferir o site do projeto. A configuração não é tão trivial e vai depender dos serviços que você quer espelhar e manter sincronizados, mas alguns scripts de inicialização que o site do projeto oferece como exemplos irão ajudá-lo a construir o seu.

Uma visita à página do projeto no Freecode pode lhe dar mais incentivo a encarar os scripts de inicialização e arquivo de configuração do projeto, depois que você olhar as alterações mais recentes. É possível usar o Pen para permitir, ou não, por máquina onde está instalado, o acesso web a partir de um determinado país. Por exemplo, se você tiver seu sistema distribuído entre Brasil, Uruguai, Canadá e Estados Unidos, pode ser que, no caso da queda da máquina no Uruguai, você prefira que o tráfego de rede do país seja absorvido totalmente no Brasil. Basta configurar as máquinas dos Estados Unidos e Canadá para que não aceitem conexões do Uruguai. A diretiva para essas máquinas será "acl 0 deny country UY".

Comentários