← Gestão de Releases: preparar, implementar e recuperar
08 / 12 · 60 MIN

Canary, recuperação e aceitação

Interpreta populações de canary, preserva os limites da evidência e decide recuperação e encerramento com critérios explícitos.

O denominador muda a história

O quarto grupo usa números originais para representar duas classes de pedidos. No controlo, simples têm 10 erros em 1000 pedidos e complexos 20 em 100. No canary, simples têm 20 em 2000 e complexos três em dez. Calcula primeiro os agregados: 30/1100, cerca de 2,73%, e 23/2010, cerca de 1,14%. Depois separa as classes: simples ficam em 1%, enquanto complexos passam de 20% para 30%. A melhoria global acompanha uma mistura com muito menos pedidos complexos. O exercício mostra como um agregado pode esconder um sinal relevante. Não calcula significância estatística nem demonstra que a release causou a diferença observada.

Amostra vazia e caminho não exercitado

O quinto grupo devolve ausência de taxa para zero erros em zero pedidos. Zero erros em 200 pedidos é uma observação diferente: existe um denominador, embora não prove ausência de risco futuro. O mesmo grupo compara caminhos necessários com caminhos observados e identifica month-end como ausente. Numa equipa APS, um painel interativo verde durante a manhã não demonstra que um batch noturno ou uma exportação mensal funcionará. Planeia uma forma adequada de exercitar o comportamento relevante e regista os limites do resultado. Aumentar o tempo de espera ou o número de consultas noutro caminho pode não resolver a lacuna. Explica esta distinção antes de usar verde como autorização para expandir.

Limitar exposição não apaga efeitos

No sétimo grupo, uma flag permite inserir instruction-1 numa tabela SQLite em memória. Desligamos a flag e a segunda instrução deixa de ser inserida, mas a primeira continua presente. Faz a previsão antes de executar: que comando eliminaria a primeira linha? Nenhum foi definido. Este pequeno exemplo permite discutir a diferença entre interromper novos efeitos e tratar efeitos anteriores. Numa release real, examina dados, filas, consumidores e obrigações resultantes antes de escolher reconciliação ou recuperação. Não apagues registos apenas para obter um painel limpo. O laboratório não enviou pagamentos, não usou uma plataforma de feature flags e não demonstrou reversão distribuída; demonstrou precisamente a persistência da escrita local.

Calcular a última decisão viável

O oitavo grupo define cut-off às 03:00 UTC, recuperação de 25 minutos, validação de 15 e reserva de dez. A última hora de início é 02:10. Às 02:20 restam quarenta minutos, dez abaixo do plano que inclui reserva. Estes valores são premissas do exercício e não um padrão universal de um banco. Se a estimativa de recuperação aumentar, recalcula o ponto de decisão; não mantenhas a hora antiga para evitar uma conversa difícil. Prepara opções com consequências, autoridade e evidência necessária. Uma extensão do prazo só entra no plano quando efetivamente acordada. Comunica separadamente duração estimada, margem escolhida e incerteza, para que o sponsor compreenda o risco residual.

Aceitação por componente

O mesmo grupo exige, por regra local, deployed, observed e accepted para cada componente. A API satisfaz os três; o batch não tem accepted. Uma expressão que procure apenas algum componente completo fecharia cedo demais. O modelo enumera o elemento em falta, mas não autentica a pessoa que aceita nem avalia a qualidade da aceitação. No trabalho, confirma o resultado relevante com o responsável e mantém pendentes visíveis. O suporte também precisa de capacidade para diagnosticar e escalar. Se a data de fim de hypercare chegou e essa capacidade falta, identifica cobertura transitória e critérios de transferência. Um documento enviado e uma data atingida são eventos; não demonstram, isoladamente, autonomia operacional.

Oficina: preparar o reporte ao steering

Usa os resultados para preparar um reporte de seis linhas: estado por componente, população observada, lacuna de cobertura, efeitos persistidos, ponto de recuperação e decisão requerida. No cenário fictício, o sponsor pede encerramento porque a API responde. Explica porque o batch sem aceitação, o caminho mensal não exercitado e a instrução persistida continuam relevantes. Propõe uma alternativa aceitável com responsável e próximo ponto de atualização, sem inventar uma autorização. O facilitador pode avaliar se a comunicação distingue factos de hipóteses e se cada pendente tem destino. Este guião foi criado para prática; não representa uma sessão humana já executada. Resume ligando observação, recuperação e aceitação ao resultado que o negócio precisa de receber.

python3 content/labs/release-evidence/run.py
# Control: simple 10/1000; complex 20/100
# Canary: simple 20/2000; complex 3/10
# Overall improves; complex rate worsens from 20% to 30%
# Cutoff 03:00 - recovery 25m - validation 15m - reserve 10m = 02:10
# Original fixtures; no causal or production-readiness proof.
NA PRÁTICA

Uma API fictícia parece melhorar no agregado, mas a operação complexa degrada e o fecho mensal ainda não foi exercitado.

Armadilhas comuns

Confundir ausência de erros com cobertura, média favorável com melhoria universal, flag desligada com reversão e instalação com aceitação.

Tópicos relacionados: Gestão de alterações · CI/CD · Suporte à produção L3

Leva esta ideia contigo

Avança quando a evidência relevante suporta a decisão; mantém visíveis efeitos persistidos, lacunas de cobertura e condições de transferência.

Criar conta

Referência: Canarying releases · Release management practices 2026-09; scoped GitLab GitHub CodeDeploy and EF Core documentation