O Que é uma Camada de Load Balancer? Distribuindo Tráfego Entre Instâncias
Uma camada de load balancer é a camada que distribui as requisições de entrada por um conjunto de instâncias de serviço e desvia o tráfego das que não estão saudáveis.
Assim que você roda muitas instâncias de um serviço, algo precisa decidir qual instância atende cada requisição. Essa é a camada de load balancer. Ela distribui o tráfego, executa health checks e permite adicionar ou remover instâncias por trás de um endereço estável. É a peça que faz o horizontal scaling e os deploys sem downtime realmente funcionarem.
O que essa camada faz
O load balancer apresenta um único endereço aos clientes e encaminha cada requisição para uma de várias instâncias de backend usando um algoritmo como round-robin ou least-connections. Os clientes não sabem nem se importam com quantas instâncias existem por trás dele.
Por que é essencial
- Distribui a carga para que nenhuma instância sozinha seja sobrecarregada.
- Health checks desviam o tráfego das instâncias que estão falhando.
- Uma fachada estável permite que o conjunto de instâncias mude por baixo.
- É o ponto de entrada para escala e deploys graduais.
Health checks são o recurso-chave
O balancer sonda continuamente as instâncias e para de enviar tráfego às que falham. É isso que torna uma instância travada invisível para os usuários, e é nisso que um deploy se apoia para adicionar uma nova instância apenas quando ela está pronta para atender.
Viabilizando deploys seguros
Deploys graduais e blue-green se apoiam no load balancer: drenar uma instância, atualizá-la, fazer o health check, devolvê-la à rotação, ou virar todo o tráfego para um conjunto novo de uma só vez. Sem essa camada, um deploy significa downtime visível.
Ser stateless compensa aqui
Como qualquer instância pode receber qualquer requisição, os backends devem ser stateless. Sticky sessions, que prendem um cliente a uma instância, prejudicam a distribuição uniforme e complicam os deploys, então externalizar o estado deixa o balancer livre para rotear para qualquer lugar.
Testes cientes de health no CI
Pipelines frequentemente verificam que as instâncias reportam saudáveis e que o balancer roteia corretamente antes de concluir um deploy. Feedback rápido nessas verificações, ajudado por runners quentes como os do Latchkey, mantém a verificação de deploy ágil.
Principais conclusões
- Uma camada de load balancer distribui requisições entre instâncias por trás de um único endereço estável.
- Seus health checks desviam de falhas e liberam novas instâncias durante os deploys.
- Backends stateless permitem que o balancer roteie qualquer requisição para qualquer instância.