Blog Agility

Balanceamento de pools via HTTP_Class

Balanceamento de pools via HTTP_Class

 

Você já precisou publicar varias aplicações em servidores, portas e serviços distintos em um unico endereço e porta disponibilizado? Isso costuma ocorrer quando se tem pouca disponibilidade de IPs no ambiente ou até mesmo por questões de segurança. É possível fazer isso através de Http_class e também com iRules, que pode ser visto neste artigo : Balanceamento de pools via iRule.

Http_Class foi criado com intuito de facilitar esses redirecionamento sem a necessidade de programar, possibilitando a usuários sem conhecimento em desenvolvimento de código que consigam fazer esse tipo de configuração.

 

Em ambientes com escassez de endereços IP e portas, característica comum em redes publicas IPv4, é necessário pensar em soluções para que seja possível aproveitar os endereços IP validos disponíveis. Imagine um ambiente que necessita de cinco aplicações web divulgadas em um endereço especifico na porta 80 e algumas dessas aplicações estão publicadas em apenas um dos servidores internos. Com tantos parâmetros, como fazer um balanceamento adequado? Existem diversas formas de resolver desafios como este, porém se você possui um balanceador de carga com suporte a iRules, como o F5 BIG-IP, é possível resolver isso facilmente.

Veja o esquema abaixo:

TechTip redirecionamento via http_class_01
Imagem 1: Diagrama do balanceamento feito neste techtip.

 

O BIG-IP tem uma arquitetura full proxy. Isto significa que ele pode abrir comunicação, com o cliente e servidor em “linguagens diferentes”. Por exemplo, comunica-se em protocolo criptografado https com os clientes e http com os servidores. Neste exemplo percebe-se que para o usuário final não será necessário incluir a porta 8080 no endereço do VIP para acessar a porta certa nos servidores.

O primeiro passo é criar os pools: Local Traffic->pools->create

TechTip redirecionamento via http_class_02
Imagem 2: Criando pool_tomcat_8080.

Neste exemplo, configuramos os seguintes pools:

TechTip redirecionamento via http_class_03
Imagem 3: Listando pools criados.

Com os pools devidamente criados, deve-se acessar: Local Traffic -> iRules -> Create
Local Traffic -> Profile -> Protocol -> HTTP Class -> Create;

1. Name: Nome do seu HTTP_Class;

2. Selecione custom em URI Paths e selecione Match only…;

3. Defina as URIs Path desejas para que entre na condição desejada;

4. Selecione em Actions Send to pool e defina o pool deseja para redirecionamento;

TechTip redirecionamento via http_class_04
Imagem 4: Configurando HTTP Class

5. Clique em finished.

Anexar os HTTP_Class no VIP desejado em: Local Traffic-> Virtual Servers -> Resources -> HTTP Class Profiles (Manage).

TechTip redirecionamento via http_class_05
Imagem 5: Anexando Http Class Profile ao VIP.

 

Após anexar iRule o VIP será capaz de responder todas as requisições dos usuários e encaminhando para o pool correto conforme definido na iRule. Supondo que o endereço vip é 2.2.2.2 o acesso para o usuário a todas as aplicações será:

2.2.2.2/admin
2.2.2.2/manager/html
2.2.2.2/lojaVirtualWeb
2.2.2.2/ termoquitacao
2.2.2.2/mge

 

Profile de Http Class é uma solução simples de classificar o trafego HTTP e definir para qual pool de servidores será encaminhado o tráfego. Pode ser configurado por usuários que não possuem conhecimento em TCL para desenvolvimento de uma iRule. Tem performance superior comparado com a iRule para este caso específico e ao longo prazo acaba sendo mais fácil gerenciar os redirecionamentos individualmente. Isso porque quando se tem apenas uma iRule com todos os redirecionamentos, quando é feita uma modificação, existe risco de parar algum ambiente caso alguém altere uma linha sem intenção.