Capstone: SLO + error budget + runbook reais
⏱ 20 min·⭐ 90 XP
Pré-requisitos (0/1)0%
- ⬜🚑 Incident Response: comando, comunicação e postmortem blameless(Observabilidade & SRE)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Entregável
| Entregável | O que prova |
|---|---|
| Indicador escolhido a partir da jornada do usuário | Você mede o que dói, não o que é fácil de coletar |
| Objetivo com número e janela explícitos | "Rápido" não é objetivo; 99,9% em 30 dias é |
| Orçamento de erro com política de consumo | Existe uma regra sobre o que fazer quando ele acaba |
| Alerta ligado ao consumo do orçamento | Não alerta em utilização de recurso — alerta no sintoma |
| Runbook com passos verificáveis | Quem está de plantão às três da manhã consegue seguir |
| Retrospectiva sem culpado | A investigação procura a causa sistêmica, não a pessoa |
EntregávelIndicador escolhido a partir da jornada do usuário
O que provaVocê mede o que dói, não o que é fácil de coletar
EntregávelObjetivo com número e janela explícitos
O que prova"Rápido" não é objetivo; 99,9% em 30 dias é
EntregávelOrçamento de erro com política de consumo
O que provaExiste uma regra sobre o que fazer quando ele acaba
EntregávelAlerta ligado ao consumo do orçamento
O que provaNão alerta em utilização de recurso — alerta no sintoma
EntregávelRunbook com passos verificáveis
O que provaQuem está de plantão às três da manhã consegue seguir
EntregávelRetrospectiva sem culpado
O que provaA investigação procura a causa sistêmica, não a pessoa
# slo.yaml — definição formal (Nobl9 / Pyrra / sloth format)
service: checkout-api
slos:
- name: availability
sli: 'ratio(http_requests{status=~"2..|3.."}, http_requests)'
target: 0.999 # 99.9%
window: 30d
alerts:
fast: { burn_rate: 14.4, for: 5m, severity: page }
slow: { burn_rate: 6, for: 1h, severity: ticket }
- name: latency
sli: 'histogram_quantile(0.99, http_duration)'
target: 0.500 # p99 < 500ms
target_ratio: 0.99Runbook template
# Runbook: checkout-api-high-latency
## Symptom
p99 latency > 500ms por > 5min (alert: checkout-latency-fast-burn)
## Diagnosis
1. Grafana → checkout dashboard → latency breakdown
2. Se DB query slow: SELECT * FROM pg_stat_activity WHERE state != 'idle';
3. Se upstream lento: verify payments-api SLO
4. Se deploy recente: rollback (kubectl rollout undo deploy/checkout)
## Mitigations
- **DB slow query**: kill query, escalate DBA
- **Upstream lento**: circuit breaker manual (feature flag)
- **Deploy ruim**: kubectl rollout undo deploy/checkout -n prod
## Escalation
- 15min sem mitigation → Incident Commander
- Cross-team → Slack #sre-incidents + PagerDuty
## Related postmortems
- 2026-03-14 (DB connection exhaust)
- 2026-02-08 (payments timeout cascade)✅
Gameday: combine team, anuncie janela. Mate uma dependency (ex: stop payments-api). Cronometre: alertas disparam? runbook ajuda? time mitiga em < 15min? Retrospective.
Quiz rápido
O que caracteriza um bom manual de operação?
Perguntas frequentes
❓ Como definir o primeiro objetivo de nível de serviço?
Escolhendo o indicador que representa a experiência — proporção de requisições rápidas e bem-sucedidas na jornada crítica — e uma meta que o histórico mostre ser alcançável. Meta escolhida por aspiração queima orçamento no primeiro mês e perde credibilidade.
❓ O que um manual de operação precisa ter?
Sintoma, verificação rápida, ação de mitigação e critério de escalonamento — em passos executáveis por quem está de plantão às 3h e não construiu o sistema. Documento que explica a arquitetura não é manual de operação; é leitura para outro momento.
❓ Como manter o manual atualizado?
Revisando-o no próprio incidente: quem usou corrige o que estava errado, na hora. Manual revisado por calendário envelhece porque ninguém lembra o que mudou. É a única prática que se sustenta, e ela custa dez minutos por incidente.
Fixando
Quiz rápido
Por que o manual deve ser exercitado antes de ser necessário?
Quiz rápido
Qual é a relação entre o objetivo de nível de serviço e o manual de operação?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…