Crescendo para suprir a Demanda

Se o seu app web viralizou, seu VPS de 2GB de RAM certamente começou a retornar erros. O que fazer? Você tem dois caminhos de escalabilidade na computação em nuvem.

Escalabilidade Vertical (Scale Up)

O conceito mais simples. Seu VPS tem 2 núcleos e 4GB de RAM. Você clica num botão e adiciona mais processadores e RAM para ele virar um monstro de 16 núcleos e 64GB de RAM.

  • Vantagem: Nenhuma alteração no código do aplicativo é necessária.
  • Desvantagem: Existe um limite físico máximo (teto) e há "downtime" (tempo fora do ar) ao reiniciar para reconhecer as novas peças.

Escalabilidade Horizontal (Scale Out)

Em vez de criar 1 supercomputador, você clona seu app em 10 computadores de tamanho médio lado a lado e usa um "Load Balancer" (balanceador de carga) na frente para distribuir os clientes entre eles.

  • Vantagem: Custo-benefício gigantesco, redundância impecável (se uma máquina queima, as outras 9 assumem o tráfego) e escalabilidade técnica virtualmente "infinita".
  • Desvantagem: Requer arquitetura de software sem estado (stateless) preparada para dividir cache e banco de dados isolado da aplicação web.