Escale horizontalmente atrás de um balanceador de carga
Compare a escala vertical e a horizontal e distribua o tráfego entre servidores.
- 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 XPEscolha 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.
- 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.
0 de 2 cenários resolvidos
Experimente
Até 15 XPDá para adicionar um servidor aqui?
A escala horizontal só funciona se qualquer servidor puder atender qualquer requisição. Decida quais destes projetos permitem isso.
“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…