Escalabilidade
Como um sistema aguenta 10, 100 ou 1 milhão de usuários sem cair.
O tráfego cresce.
O servidor, sozinho, não.
Mais usuários = mais requisições por segundo. Uma máquina só chega ao limite: fica lenta, engasga e, no pior caso, cai.
requisições ▲ capacidade ▬ → gargalo
Escalabilidade é a capacidade de crescer com a demanda
Adicionar recursos e continuar atendendo bem, de forma previsível, conforme mais gente usa o sistema.
Deixar a mesma máquina mais potente: mais CPU, RAM, disco.
Somar mais máquinas trabalhando juntas, lado a lado.
Cada uma tem seu preço
Vertical
- Simples: nada muda no código
- Tem um teto físico de hardware
- 1 máquina = 1 ponto de falha
Horizontal
- Cresce quase sem limite
- Uma cai, as outras seguram
- Precisa distribuir o tráfego
Load Balancer
O "porteiro" na frente das máquinas. Recebe todas as requisições e reparte de forma equilibrada, para que ninguém sobrecarregue.
1 entrada → N servidores
Auto Scaling
Você define os limites e o sistema liga e desliga máquinas sozinho, seguindo a demanda em tempo real.
- mino piso que sempre fica de pé
- desiredquanto rodar agora
- maxo teto pra não gastar demais
O sistema se defende sozinho
A conta do Load Balancer tem duas partes
1 Taxa fixa por hora
Você paga por cada hora que ele fica ligado, mesmo sem nenhum acesso. É o custo de manter o "porteiro" de plantão.
≈ US$ 0,0225 / hora (~US$ 16 / mês)
2 Taxa variável por uso (LCU)
A LCU mede 4 dimensões do tráfego (novas conexões, conexões ativas, dados trafegados e regras avaliadas) e cobra pela maior delas a cada hora.
≈ US$ 0,008 / LCU-hora
Ou seja: uma base fixa por estar de pé + um extra que sobe e desce com o movimento real. Já o Auto Scaling em si é grátis: você só paga as máquinas extras que ele liga.
Onde escalar dá errado
Gargalo escondido
Somar máquinas não resolve se o banco de dados é o que trava. Você escala a parte errada e a fila continua.
Servidor físico não faz sozinho
Comprar e instalar uma máquina leva dias. Impossível acompanhar um pico em minutos, e ela fica ociosa depois. É aqui que a nuvem brilha: liga e desliga capacidade em segundos.
Otimização prematura
Escalar antes de precisar: complexidade e custo pra um problema que ainda não existe. O erro mais clássico.
Conta sem teto
Auto Scaling sem limite máximo bem definido: um pico (ou um bug em loop) liga máquinas sem parar e a fatura explode.
regra de ouro: primeiro meça o gargalo, depois escale só ele.
Escalabilidade é uma decisão de arquitetura: pensada no desenho, não improvisada no pico
Sistemas nascem prontos pra crescer quando são pensados sem estado, desacoplados e distribuídos desde o desenho.
Escale o que a demanda pedir. Nem mais, nem menos.