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.