Iniciante Arquitetura de Sistemas
Escalabilidade Vertical
Escalar verticalmente é deixar a máquina mais forte: mais CPU, mais memória, disco mais rápido. Em vez de adicionar servidores, você troca o servidor atual por um maior. Também chamam isso de “scale up”.
A ideia
Antes: Depois:
+----------+ +--------------+
| 2 CPU | --> | 8 CPU |
| 4 GB RAM | | 32 GB RAM |
+----------+ +--------------+
A aplicação continua a mesma, rodando em uma única máquina. Só o hardware embaixo dela cresce.
Vantagens
- Simples: nada muda no código.
- Sem complexidade de distribuir dados entre máquinas.
- Sem necessidade de load balancer.
- Ótimo para bancos de dados, onde dividir dados é difícil.
Desvantagens
- Tem teto: existe um limite físico de quão grande uma máquina pode ser.
- Fica caro: máquinas muito grandes custam desproporcionalmente mais.
- Ponto único de falha: se essa máquina cai, tudo cai.
- Geralmente exige reiniciar para aplicar o upgrade.
Os limites
Por mais potente que seja um servidor, ele para de crescer em algum ponto. E o custo dispara antes do limite técnico. Dobrar a capacidade raramente custa o dobro: costuma custar muito mais.
Custo
| *
| *
| *
| *
| *
+----------------- Potência
Quando usar
Escala vertical é a primeira escolha quando:
- O sistema ainda é pequeno ou médio.
- Você quer uma solução rápida sem reescrever nada.
- O componente é difícil de distribuir (bancos relacionais, por exemplo).
A prática comum é escalar verticalmente até bater no limite de custo ou capacidade, e então partir para escala horizontal, adicionando mais máquinas. As duas estratégias se complementam.