Playbook de resposta a incidentes para equipas pequenas e médias
· 8 min de leitura
Em resumo: Quando à sexta-feira às 23:30 cai o servidor de produção, não é momento de inventar o procedimento do zero. Um playbook de resposta a incidentes é um documento que define papéis, comunicação e procedimentos antes de precisar deles. Aqui está um playbook mínimo adequado para equipa de 5-20 pessoas.
Em resumo: Quando à sexta-feira às 23:30 cai o servidor de produção, não é momento de inventar o procedimento do zero. Um playbook de resposta a incidentes é um documento que define papéis, comunicação e procedimentos antes de precisar deles. Aqui está um playbook mínimo adequado para equipa de 5-20 pessoas.
Papéis durante um incidente
Papéis claros eliminam o caos. Mesmo uma equipa pequena precisa de pelo menos:
- Incident Commander (IC) - gere o incidente, toma decisões, escala. Não escreve código.
- Technical lead - a pessoa que conhece a área problemática. Escreve o fix.
- Communications lead - atualiza status page, clientes, management. Para equipa pequena pode ser o mesmo que IC.
- Scribe - escreve timeline, quem faz o quê, quando. Crucial para o post-mortem.
Em equipa até 5 pessoas tipicamente IC + Technical lead = 2 papéis divididos, outros toma IC.
Níveis de severity
Define 3-4 níveis de gravidade com antecedência:
- SEV1 (Critical) - serviço principal completamente indisponível. Reage-se imediatamente, paging mesmo à noite.
- SEV2 (Major) - degradação significativa (parte das features, alguns utilizadores). Reação em 30 min durante horas de trabalho, em 1 h fora.
- SEV3 (Minor) - pequeno impacto, workaround existe. Reação até ao próximo dia útil.
- SEV4 (Cosmetic) - sem impacto user-facing, vai para fila normal.
Procedimento SEV1: os primeiros 15 minutos
- 00:00 - Deteção. O alerta vem da monitorização ou do cliente. Alguém na rotação on-call confirma que o problema é real.
- 00:02 - Ativação IC. Abre-se canal de comunicação dedicado (Slack #incident-N ou Discord). Chama-se o Technical lead.
- 00:05 - Primeiro status update. Na status page pública: "Investigating reports of [problema]." Email às pessoas internas que deveriam saber.
- 00:10 - Initial diagnostics. Verifica deploys recentes, gráficos de monitorização, error logs. O que mudou nos últimos 30-60 min?
- 00:15 - Decisão: rollback, hotfix ou workaround? Se não for imediatamente claro, IC escala ou chama mais engenheiros.
Comunicação: a regra "5 + 30"
Atualização da status page pelo menos a cada 30 minutos durante SEV1, mesmo se não tiveres novas info. "Ainda a investigar, ETA ainda desconhecido" é update melhor que silêncio - os clientes pelo menos sabem que alguém está a trabalhar no problema.
O primeiro update tem de ser dentro de 5 minutos da deteção. Independentemente de saberes a causa.
Rollback como default
Para SEV1 que começou pouco após um deploy, o rollback é a primeira escolha, não hotfix. Hotfix sob pressão à noite é fonte de mais bugs. O rollback restaura um estado conhecido bom e dá tempo para diagnóstico calmo de manhã.
Para rollback é necessário ter:
- Versionamento de implantação (tags Docker, tags Git, artefacto de deployment)
- Database migrations backwards compatible (se nova versão dropar uma coluna, a antiga não recupera)
- Procedimento de rollback documentado (comandos, quanto demora, quem pode executá-lo)
Post-mortem em 48 horas
Após cada incidente SEV1/SEV2 escreve documento com estrutura:
- Summary - 2-3 frases o que aconteceu, quanto durou, quem afetou
- Timeline - tempos exatos de deteção, ações chave, resolução
- Root cause - porque aconteceu (razão técnica + razão processual)
- Impact - número de clientes afetados, impacto business
- What went well - o que fizemos bem (apreciar a equipa)
- What went wrong - onde perdemos tempo
- Action items - tarefas concretas com owner e deadline (não "testar melhor" - melhor "adicionar teste de integração para payment flow em 14 dias, owner: X")
Regra blameless post-mortem: Não procuras culpado, procuras fraqueza sistémica. "O John implantou versão má" é conclusão incorreta - a certa é "o processo de deploy não continha fase canary que apanharia o bug antes do rollout completo".
Rotação on-call
Para equipa com produto 24/7:
- Rotações semanais - mais curto queima, mais longo significa continuidade do contexto
- Sempre primário + secundário on-call. Secundário toma quando primário não reage em 5 min.
- Compensação (pagamento extra, time-off) para paging noturno e de fim de semana
- "On-call review" mensal - quem foi acordado frequentemente, o que pode ser automatizado
Ferramentas
- Monitoring (ePulz.io, Datadog, New Relic) - deteção + alerting
- Paging (PagerDuty, Opsgenie, Better Stack) - escalation, rotação, SMS/voz
- Status page (própria, ePulz.io, StatusPage.io) - comunicação externa
- Hosting de runbook (Notion, GitHub Wiki, internal docs) - playbooks e runbooks
- Template postmortem (Confluence, Notion template) - padronização
Conclusão
A resposta a incidentes não pode ser improvisada sob pressão. 30 minutos investidos em escrever um playbook retornam na primeira maior queda - menos caos, MTTR mais curto, melhor comunicação com clientes e equipa que sabe o que fazer.
Começa com deteção automática
O ePulz.io resolve os primeiros minutos da resposta a incidente: deteção + alerting por e-mail, Telegram e webhook para Slack / Discord / PagerDuty.
Experimente o ePulz.io grátis - 7 dias sem cartão de crédito.
Criar conta