Seguindo a série de artigos sobre balanceadores de carga, vamos falar sobre Pools!

O pai ta on!!

No último artigo falamos sobre como criar os Nodes, que são os servidores reais, e os Monitors, que são basicamente a forma com que o bigIP vai validar se um serviço está ou não no ar.

Hoje falaremos de como vincular ambos em um grupo que é chamado de pool.


Pools

Pools são agrupamentos dos nodes que criamos, adicionando a porta do serviço. Em Nodes fazemos a representação lógica do servidor, e nos pools a representação lógica do serviço interno.

Imagine o cenário onde possuímos um frontend web que é suportado por 2 nodes (servidores), ambos funcionando no apache na porta 80. Em Nodes, cadastraríamos esses dois servidores, e em pools cadastraríamos os nodes configurados + a porta TCP do serviço.

Essa junção de NODE+PORTA é chamada de Pool-Member:

Em comparação com a AWS, o Pools seria o target group.

Para configurar, dentro do ‘Local Traffic’, clique em ‘Pools:

Em pool-list clique em “Create…”:

Detalhamento do pool e pool-member

Existem diversas opções para configurar / alterar no pool, contudo vamos passar apenas pelas principais.

De um nome para o pool (inicie com pool_(protocolo)_(serviço)). Exemplo:

pool_http_sagara

Health Monitors

O health monitor é o campo onde vinculamos o monitor criado com o pool, ou seja, o bigIP vai utilizar o que estiver nesta lista para validar se o pool-member está no ar ou não.

Caso você coloque mais de um monitor nesta lista, o balanceador assume a lógica AND, ou seja, APENAS se os TODOS os monitors estivem fora ele considera como down.

Action on service down

Esta opção por padrão vem como ‘none’, ou seja, o bigIP não toma nenhuma ação caso um serviço fique down. Contudo não é o que recomendo, uma vez que isso significa que caso um pool-member fique indisponível, o cliente vai precisar abrir outra sessão TCP com o balanceador, o que significa algumas vezes um disconnected para o cliente.

A opção que recomendo neste caso é utilizar o ‘Reselect’.

Resources

Ainda na mesma página temos a parte de resources, que é basicamente onde colocamos o método de balanceamento e os servidores com as portas.

Aqui eu abro parênteses para uma das principais diferenças entre ter um serviço de balanceamento (como o ELB) e um balanceador: os métodos de balanceamento.

Na AWS até 2019 existia apenas o round robin, e no reinvent:2019 lançaram o least outstanding request. Em um balanceador como o BigIP, por exemplo, temos desde métodos estáticos (como é o caso do round robin), dinâmicos (least connections), e até híbridos com scripts. Por padrão o método de balanceamento é o round robin, que vai ser eficiente dependendo da aplicação. Recomendo fortemente a utilização do “Least Connections (member)”, que basicamente faz balanceamento para o pool-member que tem menos conexões.

Após escolher o método de balanceamento, iremos adicionar o node que criamos no passo 01. Para isso basta clicar em ‘Node list’, selecionar o servidor e colocar a porta do serviço.

É importante ressaltar que a porta do serviço aqui é a que está aberta no servidor, e não necessariamente a que será aberta para o virtual-server. Isso é importante em casos que é utilizado JVMs, onde cada JVM utiliza uma porta específica, mas o serviço responde para a porta 80 para o mundo externo.

Clicando em “Finished”, teremos criado o pool:

É possível ver que ele está com status com uma bolinha verde, o que significa que ao menos 1(um) pool-member está no ar. Caso queria ver detalhadamente todos os pool-members, clique no nome do pool, e depois em ‘members’:

Com isso terminamos de configurar o pool, e caso queria adicionar mais servidor a ele basta clicar em ‘Add…’.


No próximo artigo falaremos sobre Profiles e Persistências!!

 

That’s all folks! Be Happy!!!

foto-thiago-marques
Thiago Marques Technical Account Manager
thiago.marques@darede.com.br

Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.

OUTRAS PUBLICAÇÕES

O que é Infrastructure as Code (IaC)?

A Infrastructure as Code é um modo de automatizar o provisionamento da infraestrutura de TI e aliada com a cultura DevOps pode ser de grande ajuda para as empresas. Confira o artigo do blog sobre esse conceito.

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações