agentleFS
BappozBappoz/My-Claude-Skills/skills/operations/capacity-planning/SKILL.md

capacity-planning

Skill1 starsChanged 4 months agoMITView on GitHub

Planejamento de capacidade: previsão de carga, headroom, teste de carga, escala (vertical vs horizontal), metas de utilização, filas e custo. Use quando o usuário mencionar: "capacity planning", "planejamento de capacidade", "quanto de infra preciso", "load test", "teste de carga", "vai aguentar o pico", "escalar", "headroom", "dimensionar servidor", "Black Friday", "forecast de carga". Liga com [[system-design]] e [[observability]].

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

Capacity Planning

Você atua como engenheiro de capacidade. Objetivo: garantir que o sistema aguenta a carga esperada (e o pico) sem desperdiçar dinheiro — nem sub-provisionar (cai no pico) nem super-provisionar (queima caixa). Baseie-se em medição e margem, não em torcida.

Método

  1. Meça a linha de base — carga atual (RPS, usuários concorrentes, uso de CPU/mem/IO), do seu monitoramento (ver [[observability]]). Sem baseline, não há plano.
  2. Preveja a demanda — crescimento orgânico + eventos (lançamento, campanha, Black Friday, sazonalidade). Use pior caso realista, não média.
  3. Encontre o limite — teste de carga até quebrar; descubra o gargalo (CPU? DB? conexões? fila?).
  4. Dimensione com headroom — provisione para o pico previsto + margem (tipicamente utilização-alvo 50-70%, nunca 100%).
  5. Reavalie — capacidade não é one-shot; acompanhe e ajuste (autoscaling ajuda, mas não substitui o plano).

Estimar (back-of-envelope, liga com [[system-design]])

Pico RPS ≈ (usuários ativos no pico × ações/usuário) / janela em segundos
Aplique fator de pico: pico costuma ser 3-10× a média diária
Headroom: capacidade-alvo = pico previsto / 0.6   (para rodar a ~60% no pico)

Sempre dimensione para o p99/pico, não para a média — a média esconde o momento em que o sistema cai.

Escala: vertical vs horizontal

Vertical (scale up)Horizontal (scale out)
ComoMáquina maiorMais máquinas
Bom p/DB, estado, simplicidadeStateless, web, escala elástica
LimiteTeto de hardwareCoordenação, estado compartilhado
FalhaPonto únicoTolerante (com LB)

Prefira horizontal para camadas stateless (autoscaling por métrica) e vertical + réplicas para dados. Um serviço stateless escala fácil; o gargalo real quase sempre é o banco (ver [[database-design]]).

Teoria das filas (a intuição que salva)

Perto de 100% de utilização, o tempo de espera explode (não-linear). Por isso a meta de utilização é ~60-70%, não 90%+: a última fração de capacidade custa latência desproporcional. Um sistema a 85% de CPU já está com filas perigosas no pico.

Teste de carga (prove, não presuma)

  • Load test — carga esperada sustentada: valida que aguenta o dia normal.
  • Stress test — aumente até quebrar: descobre o teto e o modo de falha.
  • Spike test — pico súbito: valida autoscaling e degradação graciosa.
  • Soak test — carga por horas: revela vazamento de memória/conexão. Ferramentas: k6, Gatling, Locust, JMeter. Teste em ambiente parecido com prod; meça p95/p99, não média.

Degradar com graça (quando o pico supera o plano)

  • Autoscaling com margem de tempo (leva minutos para subir — não salva spike instantâneo sozinho).
  • Rate limiting / fila para absorver excesso sem derrubar (ver [[system-design]]).
  • Load shedding — descarte trabalho não-essencial no pico (features secundárias) para proteger o core.
  • Circuit breaker para não propagar falha de dependência.

Custo

Capacidade é trade-off com dinheiro. Rode "just enough + headroom", use autoscaling para pagar pelo pico só quando ocorre, e revise instâncias ociosas. Super-provisionar por medo é desperdício mensal recorrente.

Recursos externos

RecursoO que pegar
Google SRE — Load balancing / Handling overloadUtilização-alvo, load shedding, degradação.
k6 — Load testingEscrever e rodar testes de carga.
AWS — Auto Scaling / Well-Architected (Performance)Escala elástica e dimensionamento.
Brendan Gregg — USE MethodAchar o recurso saturado (Utilization/Saturation/Errors).
[[system-design]] · [[observability]]Estimativas e medição de carga.

Do / Don't

DoDon't
Dimensionar para o pico + headroomPlanejar pela média
Utilização-alvo ~60-70%Rodar a 90%+ "para economizar"
Provar com teste de cargaPresumir que aguenta
Horizontal para statelessEscalar tudo verticalmente
Degradação graciosa no excessoCair inteiro quando estoura

Checklist

  • Baseline de carga medida (RPS, concorrência, utilização)
  • Demanda prevista com fator de pico e eventos
  • Teto e gargalo descobertos por teste de carga/stress
  • Capacidade = pico + headroom (utilização-alvo ~60-70%)
  • Escala apropriada (horizontal stateless / réplicas p/ dados)
  • Degradação graciosa (autoscaling, rate limit, load shedding)
  • Custo revisado (sem ociosidade crônica)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.