Um balanceador de carga permite a distribuição dinâmica do tráfego de rede entre recursos (no local ou na nuvem) para dar suporte a um aplicativo.
Um balanceador de carga é uma solução que atua como um proxy de tráfego e distribui o tráfego de rede ou de aplicativos entre pontos de extremidade em vários servidores. Balanceadores de carga são usados para distribuir capacidade durante horários de pico de tráfego e para aumentar a confiabilidade dos aplicativos. Eles melhoram o desempenho geral dos aplicativos diminuindo a carga sobre serviços ou nuvens individuais e distribuem a demanda entre diferentes superfícies de computação para ajudar a manter as sessões de aplicativos e redes.
Os aplicativos modernos precisam processar milhões de sessões simultaneamente e retornar o texto, vídeos, imagens e outros dados corretos para cada usuário de maneira rápida e confiável. Para lidar com volumes tão altos de tráfego, a maioria dos aplicativos tem muitos servidores de recursos com dados duplicados entre eles.
O balanceamento de carga distribui o tráfego de rede dinamicamente por uma rede de recursos que dão suporte a um aplicativo . Um balanceador de carga é o dispositivo ou serviço que fica entre o usuário e o grupo de servidores e atua como um facilitador invisível, garantindo que todos os servidores de recursos sejam usados igualmente. Um balanceador de carga ajuda a aumentar a confiabilidade e a disponibilidade, mesmo em momentos de alto uso e demanda, e garante mais tempo de atividade e uma melhor experiência do usuário.
Em alguns casos, é essencial que todas as solicitações de um cliente sejam enviadas ao mesmo servidor durante toda a sessão, por exemplo, quando um cliente coloca itens em um carrinho de compras e depois conclui a compra. Manter a conexão entre cliente e servidor é conhecido como persistência de sessão . Sem persistência de sessão, as informações precisam ser sincronizadas entre servidores e potencialmente buscadas diversas vezes, criando ineficiências de desempenho.
Usuários e clientes dependem da capacidade quase em tempo real de encontrar informações e realizar transações. Tempo de espera ou respostas não confiáveis e inconsistentes — mesmo durante picos de demanda e horários de uso — podem afastar um cliente para sempre. E picos altos na necessidade de computação podem causar estragos em um servidor interno ou sistema de servidor se a demanda de entrada — ou “carga” — for muito alta para ser facilmente acomodada.
As vantagens de usar um balanceador de carga incluem:
Existem dois tipos de algoritmos de balanceamento de carga em termos de como eles operam: estático e dinâmico. O balanceamento de carga estático mede a carga de entrada em um servidor usando algoritmos que têm informações de capacidade de desempenho sobre os servidores existentes na rede distribuída. O balanceamento de carga dinâmico pode identificar dinamicamente a quantidade de carga que precisa ser eliminada durante o tempo de execução e qual sistema deve suportar a carga. Ele é projetado para sistemas com alta flutuação na carga de entrada.
A seguir estão alguns dos tipos comuns de algoritmos de balanceamento de carga.
O balanceamento de carga funciona respondendo estaticamente ou dinamicamente a uma solicitação do usuário e distribuindo essa solicitação para um dos servidores de back-end capazes de atender à solicitação. Se um dos servidores cair, o balanceador de carga redireciona o tráfego para os servidores online restantes.
Um exemplo de balanceamento de carga estático: Uma empresa hospeda um site com conteúdo em grande parte estático. Esse cenário seria ideal para um balanceador de carga estático porque as necessidades de tráfego são previsíveis e consistentes. A empresa pode usar dois (ou mais) servidores web idênticos pelos quais o balanceador de carga estático pode distribuir o tráfego.
Um exemplo de balanceamento de carga dinâmico: Uma empresa vivencia picos, quedas e picos de tráfego. Algumas são previsíveis e outras não. Essas organizações se beneficiariam do balanceamento de carga dinâmico . Essas empresas podem incluir um varejista de comércio eletrônico anunciando horários e datas da Black Friday; uma empresa de saúde que acaba de anunciar que pode agendar consultas on-line para uma vacina sazonal; uma agência governamental de desemprego que exige que os beneficiários do seguro-desemprego registrem um pedido semanal em um determinado dia da semana; uma organização de assistência que pode precisar responder rapidamente on-line a um desastre natural. Alguns desses picos e surtos de tráfego e demanda podem ser planejados, mas outros não. Nesses cenários, um algoritmo de balanceamento de carga dinâmico ajudará a garantir o acesso a aplicativos e recursos quando clientes e usuários mais precisarem deles.
Diferentes tipos de balanceadores de carga com diferentes recursos residem na arquitetura chamada modelo Open System Interconnection (OSI) . Neste modelo há sete camadas. Os firewalls de rede estão nos níveis de um a três (L1-fiação física, L2-link de dados e L3-rede). Enquanto isso, o balanceamento de carga acontece nas camadas quatro a sete (L4-transporte, L5-sessão, L6-apresentação e L7-aplicação). Os balanceadores de carga são geralmente usados na Camada 4 e na Camada 7 .
Balanceadores de carga baseados em nuvem não são apenas controladores de tráfego para picos de tráfego e para otimizar o uso do servidor. Os balanceadores de carga nativos da nuvem também podem fornecer análises preditivas para ajudar você a visualizar gargalos de tráfego antes que eles aconteçam. Isso, por sua vez, fornece insights acionáveis para ajudar qualquer empresa a otimizar suas soluções de TI.
Balanceamento de carga de aplicativos: À medida que as empresas dependem cada vez mais do desempenho e da disponibilidade dos aplicativos, o balanceamento de carga dos aplicativos pode ajudá-las a dimensionar, otimizar as operações e economizar dinheiro.
Balanceamento de carga do servidor global: Com usuários e clientes ao redor do mundo, as empresas podem melhorar sua disponibilidade de carga com balanceamento de carga de servidor global , que envia os usuários para o ponto de extremidade mais próximo deles.
Balanceamento de carga de DNS: A prática de configurar um domínio no Sistema de Nomes de Domínio (DNS) para que as solicitações do usuário ao domínio sejam distribuídas entre um grupo de máquinas servidoras é chamada de balanceamento de carga de DNS .
Balanceamento de carga de rede: Controladores de entrega de aplicativos (ADCs), dispositivos físicos ou virtuais que funcionam como proxies para servidores físicos, gerenciam funções de aplicativos ou de rede e dependem de uma solução de balanceamento de carga de rede para suportá-los. Os ADCs também usam outras técnicas, incluindo cache, compactação e descarregamento de processamento SSL, para melhorar o desempenho de aplicativos da web. Na configuração usual, o ADC fica na frente de um grupo de servidores web e de aplicativos e media solicitações e respostas entre eles e seus clientes, fazendo com que o grupo pareça efetivamente um único servidor virtual para o usuário final.
Balanceamento de carga HTTP(S): A técnica para distribuir tráfego entre vários grupos de servidores web ou de aplicativos para otimizar a utilização de recursos é chamada de balanceamento de carga HTTP(S) .
Balanceamento de carga interno: Um balanceador de carga interno é atribuído a uma sub-rede privada e não tem um IP público. Ele normalmente funciona dentro de um farm de servidores.
Diâmetro: Um balanceador de carga de diâmetro distribui o tráfego de sinalização entre vários servidores em uma rede. Uma das maneiras mais econômicas de fazer isso é dimensionar o plano de controle de diâmetro em vez da camada de transporte de dados. (O balanceamento de carga de diâmetro também pode ser estático ou dinâmico.)
Existem outros tipos de soluções de balanceador de carga, que podem ser usadas sozinhas ou em uma rede com balanceadores de carga nativos da nuvem. Aqui estão alguns tipos notáveis.
Balanceador de carga de hardware: Um balanceador de carga de hardware é um dispositivo físico com um sistema operacional especializado que pode ser programado para distribuir tráfego da web entre vários servidores de aplicativos, geralmente no local.
Balanceador de carga de software: Um balanceador de carga de software opera como um balanceador de carga físico, mas é executado em programas de software . O software mantém os aplicativos disponíveis em todos os tipos de demandas de tráfego, usando balanceamento de carga estático e dinâmico para eliminar pontos únicos de falha.
Balanceador de carga virtual: Um tipo de balanceador de carga que combina balanceadores de carga de hardware e software é um balanceador de carga virtual. Ele usa um software controlador de entrega de aplicativos que ajuda a distribuir a carga de tráfego de rede entre servidores de backend de hardware.
LIVRO BRANCO
Balanceamento de carga 101: Porcas e Parafusos ›
CASOS DE USO
Balanceamento de carga de seus aplicativos ›
LIVRO BRANCO
Balanceamento de carga na AWS: Conheça suas opções ›
LIVRO BRANCO
Balanceamento de carga 101: A evolução dos ADCs ›