Carregando
0x30Lição 4 de 13

Escale horizontalmente atrás de um balanceador de carga

Compare a escala vertical e a horizontal e distribua o tráfego entre servidores.

20 min Questionário com 6 perguntas
Ao final desta lição, você saberá
  • Comparar escala vertical e horizontal.
  • Explicar por que serviços sem estado são fáceis de escalar horizontalmente.
  • Escolher entre os algoritmos de balanceamento de carga mais comuns.

Escala vertical significa uma máquina maior: simples, mas esbarra num limite de hardware e deixa um ponto único de falha. Escala horizontal significa mais máquinas fazendo o mesmo trabalho, o que acrescenta capacidade e redundância - mas só se qualquer servidor puder atender qualquer requisição. Por isso camadas de aplicação bem projetadas são sem estado (stateless): sessões e dados ficam em armazenamentos compartilhados, como um banco de dados ou o Redis, e não na memória do servidor.

Como os balanceadores de carga distribuem o tráfego

  • Round robin: manda cada requisição para o próximo servidor da fila. Simples e justo quando as requisições custam mais ou menos o mesmo.
  • Round robin ponderado: servidores maiores recebem proporcionalmente mais requisições.
  • Menos conexões (least connections): manda para o servidor com menos conexões ativas - bom quando a duração das requisições varia.
  • Hashing (por IP do cliente, ID do usuário ou com hashing consistente): a mesma chave vai sempre para o mesmo servidor, útil para aproveitar o cache local.

Um balanceador de camada 4 roteia por IP e porta. Um balanceador de camada 7 entende HTTP, então pode rotear por caminho ou cabeçalho (por exemplo, /api para um pool e /images para outro) e terminar o TLS. Os dois usam health checks para parar de mandar tráfego para instâncias com falha.

O balanceador de carga não pode virar o novo ponto único de falha. Em produção, rodam-se balanceadores redundantes (um par ativo-passivo com um IP flutuante, ou vários atrás de DNS ou anycast). O autoscaling adiciona e remove servidores de aplicação conforme a carga muda, e isso só funciona bem porque esses servidores são sem estado.

Prática: escolha como balancear

Experimente

Até 15 XP

Escolha o algoritmo para o tráfego

Na entrevista, vão perguntar por que você escolheu um deles. Descubra qual aguenta cada padrão e entenda onde os outros erram.

O app-c tem quatro vezes a capacidade dos outros, e toda requisição custa o mesmo.

Algoritmo de roteamento
  • app-apico: 4 de 3, atendeu 80
  • app-bpico: 4 de 3, atendeu 80
  • app-cpico: 4 de 12, atendeu 80

A barra é o momento de maior carga. A linha marca o que o backend aguenta.

Sobrecarregados: app-a, app-b.

0 de 2 cenários resolvidos

Experimente

Até 15 XP

Dá para adicionar um servidor aqui?

A escala horizontal só funciona se qualquer servidor puder atender qualquer requisição. Decida quais destes projetos permitem isso.

0 de 5 classificadosPontuação 0/0
  • “As sessões ficam no Redis.”

  • “Os arquivos enviados são salvos no disco local do servidor.”

  • “Um token assinado carrega a identidade do usuário.”

  • “O carrinho de um usuário é mantido na memória do servidor.”

  • “Cada servidor roda o próprio job de limpeza noturno.”

Principais conclusões

  • Escale horizontalmente os serviços sem estado; guarde o estado em armazenamentos compartilhados.

  • Use round robin para requisições uniformes, menos conexões para requisições desiguais e hashing para localidade.

  • Health checks e balanceadores redundantes mantêm a camada disponível.

Quiz da aula

6 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…