Escalando Containers
Escala horizontal vs vertical
Quando escalar com replicas e quando aumentar recursos.
Nesta aula você vai
- Comparar escala vertical e horizontal no stack de 5 microsservicos
- Escolher estrategia por perfil de carga e estado
- Planejar escala com base em metricas, nao em tentativa e erro
Escala horizontal vs vertical
Objetivos
- Comparar aumento de recursos e aumento de réplicas
- Escolher estratégia por característica de serviço
- Evitar escala ineficiente em componentes stateful
Pré-requisitos
- Docker Compose e scripts de carga funcionando.
- Prometheus ja coletando latencia e consumo de CPU.
- Fluxo principal do e-commerce funcional.
Conceito
Escala vertical aumenta CPU/memoria de uma instancia. Escala horizontal adiciona novas instancias para dividir carga.
Servicos stateless (APIs e consumers) tendem a escalar melhor horizontalmente. Servicos stateful exigem coordenacao adicional e estrategia de consistencia.
Estrutura de arquivos
infra/docker-compose.scale.ymldocs/architecture/scaling.mdservices/order-service/README.mdservices/payment-service/README.md
Passo a passo com codigo
- Defina limite de recursos para teste vertical:
payment-service:
deploy:
resources:
limits:
cpus: "1.5"
memory: 768M
- Execute carga baseline:
python scripts/load/run_checkout_load.py --rps 30 --seconds 120
- Teste escala horizontal:
docker compose up -d --scale payment-service=3
- Compare p95 e throughput em cada estrategia.
Como testar
- Colete metricas com 1 instancia (baseline).
- Repita com escala vertical.
- Repita com escala horizontal.
- Registre ganho de throughput e impacto de latencia.
- Documente decisao no
docs/architecture/scaling.md.
Dicas
- Sempre compare com baseline antes de escalar.
- Escala horizontal exige observabilidade por replica.
- Evite escalar stateful sem estrategia de dados.
- Alinhe escala com custo e SLO.
Erros comuns
- Escalar horizontal sem balanceamento adequado
- Escalar vertical além do limite da máquina local
- Ignorar custo de coordenação entre réplicas
- Não validar impacto em latência p95
Resumo
Escala vertical e horizontal resolvem gargalos diferentes. A decisao correta vem de metricas reais de carga, latencia e uso de recursos no seu ambiente.