Separar associação de comparação útil
Na amostra, todos os pedidos east usam a versão nova e todos os west usam a antiga. A diferença de erro é real no conjunto, mas região e versão variam em conjunto. Falta comparar versões sob condições semelhantes ou obter outra evidência que separe dependência regional e alteração de código. Não é necessário aguardar causa definitiva para conter impacto. Uma comparação controlada deve manter operação, período, dependências e carga tão comparáveis quanto possível, com exposição limitada e autorização. Regista diferenças inevitáveis e evita selecionar apenas períodos favoráveis. Se rollback e aumento de consumidores ocorrerem ao mesmo tempo, a melhoria posterior não demonstra que uma intervenção isolada foi suficiente. A cronologia deve conservar ambas para a investigação posterior.
Avançar exige critérios de âmbito
A função de decisão desta oficina é deliberadamente simples: pelo menos 50 observações, nenhum erro observado, idade até 60 segundos e três sondas relevantes positivas. Estes números são fictícios, não uma norma SRE nem um SLA. Três sucessos bloqueiam expansão por amostra insuficiente; um erro em 50 bloqueia pela condição de paragem; uma observação com 75 segundos bloqueia por idade. Mesmo com 80 sucessos recentes, falta cobertura se o arquivo east ainda não foi validado. O resultado allowNextStage descreve apenas a etapa do guião. Não fornece certeza estatística de ausência de falhas futuras. Para baixo volume, a equipa deve acordar janelas e testes representativos da cadência e da criticidade do serviço.
Rollback inclui compatibilidade do estado
A disponibilidade de uma imagem antiga não garante que a aplicação anterior consiga ler dados já escritos pela versão nova. Antes de escolher rollback, examina a compatibilidade de esquema, formatos, contratos e consumidores. Num cenário fictício, um campo obrigatório muda de formato e a versão antiga falha a leitura. Voltar apenas ao binário pode ampliar a indisponibilidade. Restaurar o backup também não é uma consequência automática: pode eliminar trabalho posterior e exigir reconciliação. Discute com desenvolvimento e responsáveis de dados uma opção compatível, como correção, contenção ou desativação seletiva, respeitando a autoridade de mudança. Define o resultado funcional esperado e quando interromper. Esta aula analisa a decisão; o laboratório não executa deployment, migração ou restauro de aplicações.
Entregar condições temporárias e critérios de fecho
O serviço pode funcionar sob uma exceção que expira. No caso fictício, west recebe trabalho até às 18:00 e a equipa noturna entra às 17:30. A passagem deve ter responsável aceite para a decisão antes da expiração, validação do arquivo e observação da carga desviada. Arquivo produzido não equivale a arquivo consumido; identifica a equipa que confirma o resultado posterior. No postmortem, transforma a falha de diagnóstico em critérios demonstráveis: taxas corretas com grupos desiguais, cardinalidade preservada após junções, distinção entre sem dados e zero erros, bloqueio por amostra e sondas em falta. O guião pode apoiar uma oficina em inglês com papéis APS, ADM e negócio. Não existe ainda execução humana observada nem revisão independente de especialista.
python3 - <<'PY'
import json
from pathlib import Path
e=json.loads(Path('content/labs/incident-analysis/evidence.json').read_text())
for name in ['missingBusinessOperation','smallSample','canaryStop','staleObservation','scopedNextStage']:
print(name, e['checks'][name])
PYUma regra fictícia permite a etapa seguinte após observações recentes e sondas relevantes, mas não aceita a recuperação empresarial.
Armadilhas comuns
Usar região como controlo de versão, expandir com amostra insuficiente, assumir rollback reversível e esquecer exceções temporárias.
Tópicos relacionados: Monitorização e observabilidade · Mitigação e passagem para RUN
A mitigação precisa de um resultado observado, limites explícitos e trabalho pendente entregue a responsáveis que o aceitem.
Referência: Canarying Releases · Incident management practices 2026-09; scoped Google SRE, PagerDuty and Atlassian examples