Escolar Documentos
Profissional Documentos
Cultura Documentos
Balanceamento de Carga Conceitos Basicos
Balanceamento de Carga Conceitos Basicos
A tecnologia de balanceamento de carga est viva e est bem; de fato, ela a base
sobre a qual operam os application delivery controller (ADCs). A disseminao da
tecnologia de balanceamento de carga no significa, porm, que ela seja
universalmente compreendida nem que seja discutida normalmente, a no ser de um
ponto de vista focalizado em redes. Em uma explorao mais aprofundada do
assunto, este documento tenta desvendar um pouco do mistrio e da magia das
prticas bsicas de balanceamento de carga.
Hardware de
Balanceamento
de carga
baseado
em rede
A segunda gerao do balanceamento de carga de finalidade especfica (que se
seguiu aos sistemas proprietrios baseados em aplicativos) surgiu na forma de
dispositivos baseados em rede. Esses so os verdadeiros avs dos controladores de
distribuio de aplicativos de hoje. Como esses dispositivos eram neutros em
relao a aplicativos e residiam fora do servidor de aplicativos, eles podiam fornecer
o balanceamento de carga usando tcnicas diretas de rede. Em sntese, esses
dispositivos ofereciam um endereo de servidor virtual para o mundo exterior e,
quando os usurios tentavam se conectar, ele encaminhava a conexo ao servidor
verdadeiro mais apropriado, fazendo uma traduo de endereos de rede (NAT)
bidirecional.
Terminologia
Bsica
Tudo seria mais simples se todos usassem o mesmo dicionrio; infelizmente, cada
fornecedor de dispositivos de balanceamento de carga ( e, por sua vez, ADCs)
parece usar uma terminologia diferente. Com uma pequena explicao, entretanto, a
confuso em torno desse assunto pode ser facilmente esclarecida.
N, Host, Membro e Servidor
A maioria dos balanceadores de carga usa o conceito de n, host, membro ou
servidor; alguns usam todos eles, significando coisas diferentes. H dois conceitos
bsicos que todos eles tentam expressar. O primeiro, normalmente chamado de n
ou servidor, a idia do servidor fsico que recebe trfego do balanceador de carga.
Isso equivale ao endereo IP do servidor fsico e, na falta de um balanceador, seria o
endereo IP para o qual o nome do servidor seria atribudo (por exemplo,
www.exemplo.com). No resto desse documento, vamos nos referir a este conceito
como "o host". O segundo conceito o membro (infelizmente, tambm chamado de
n por alguns fabricantes). Um membro normalmente mais bem definido do que
um servidor ou n, visto incluir a porta TCP do aplicativo que recebe o trfego. Por
_________________________________________________________________________________________
F5 Network, Inc
-1-
_________________________________________________________________________________________
F5 Network, Inc
-2-
_________________________________________________________________________________________
F5 Network, Inc
-3-
Entretanto, cada vez mais comum o uso de conexes TCP mltiplas de vida curta
(por exemplo, o HTTP) pelo cliente para executar uma tarefa nica. Em alguns
casos, como a navegao comum na web, isso no faz diferena e cada novo
pedido pode ser encaminhado a qualquer um dos hosts de servios de segundo
plano; entretanto, h muitas outras instncias (como XML, carrinhos de compra,
HTTPS e afins) em que muito importante que vrias conexes do mesmo usurio
sejam encaminhadas ao mesmo host de servios de segundo plano, em vez de
terem a carga balanceada. Esse conceito chamado de persistncia ou afinidade
com servidor. H vrias maneiras de cuidar desse problema, dependendo do
protocolo e dos resultados desejados. Por exemplo, nas transaes HTTP
modernas, o servidor pode especificar uma conexo "keep alive" para agrupar as
mltiplas conexes de vida curta em uma nica conexo de vida longa, que pode ser
gerenciada como qualquer outra conexo de vida longa. Infelizmente, isso no o
suficiente para resolver o problema. O mais grave, com o aumento do uso dos
servios web, manter todas essas conexes abertas por mais tempo do que o
necessrio, sobrecarregando os recursos de todo o sistema. Nesses casos, a
maioria dos balanceadores de carga oferece outros mecanismos para criar uma
afinidade artificial com o servidor.
Uma das formas mais bsicas de persistncia a afinidade de endereo de origem.
Isso envolve o simples registro do IP de origem dos pedidos recebidos e do Host de
servios a que foram encaminhados, fazendo que todas as transaes futuras sejam
enviadas ao mesmo Host. Essa tambm uma forma simples de lidar com
dependncias de aplicativos, visto que pode ser aplicada em todos os servidores
virtuais e servios. Na prtica, entretanto, o uso disseminado de servidores proxy na
Internet, bem como em redes corporativas internas, inutilizou esse tipo de
persistncia; embora ela funcione, os servidores proxy escondem muitos usurios
por trs de um nico endereo IP, o que faz que o trfego desses usurios no
possa ser balanceado aps o pedido do primeiro usurio, basicamente anulando a
capacidade de balanceamento de carga. Hoje, a inteligncia dos dispositivos de
balanceamento de carga permite que voc abra os pacotes de dados e crie tabelas
persistentes com virtualmente qualquer coisa dentro deles. Dessa forma, voc pode
usar informaes mais exclusivas e identificveis como o nome de usurio para
manter a persistncia; entretanto, necessrio ser cuidadoso para garantir que
essas informaes identificveis do cliente sero exibidas em todos os pedidos
feitos, visto que todos os pacotes sem essa informao no sero considerados
persistentes e passaro pelo processo de balanceamento de carga, o que
provavelmente causaria erros no aplicativo.
O balanceamento
de carga hoje Esse documento descreveu os conceitos bsicos da tecnologia de balanceamento
de carga. importante compreender que essa tecnologia, embora ainda em uso,
considerada hoje como uma funo dos ADCs. Os ADCs evoluram dos primeiros
balanceadores de carga e completaram o processo de virtualizao de servios,
permitindo no apenas uma melhoria na disponibilidade, mas tambm no
desempenho em segurana do servios de aplicativos sendo solicitados. Hoje, a
maior parte das organizaes compreende que a mera capacidade de alcanar o
aplicativo no o torna utilizvel, e que aplicativos no-utilizveis significam tempo e
dinheiro desperdiados para a companhia que os implementou. Os ADCs permitem a
consolidao dos servios baseados na rede, como SSL/TLS, caching, compresso,
rate shaping, deteco de intrusos, firewalls e at o acesso remoto a um nico ponto
que pode ser compartilhado e reutilizado por todos os servios de aplicativos e todos
os hosts, criando uma rede virtualizada de distribuio de aplicativos. Ao mesmo
tempo, sem os fundamentos bsicos do balanceamento de carga descritos neste
documento, nenhuma das funcionalidades aprimoradas dos ADCs seria possvel.
_________________________________________________________________________________________
F5 Network, Inc
-6-