rollfuse
← Voltar ao blog

Com que frequência um guardrail deve abortar um rollout?

Não existe uma taxa "certa" de abort automático para um guardrail, e o rollfuse não publica uma. O que dá para fazer é ler direito a sua própria taxa. A taxa zero é a que merece mais desconfiança, porque um guardrail que nunca dispara pode simplesmente estar frouxo demais para pegar qualquer coisa.

O que um guardrail faz no rollfuse

Um guardrail liga um limite sobre uma métrica a um rollout, com uma comparação (maior que, menor que, ou as variantes "ou igual") e uma janela de avaliação. Enquanto o rollout está ativo, o rollfuse compara periodicamente a média das observações daquela métrica dentro da janela com o limite.

Se o limite for ultrapassado, o rollout é abortado pelo mesmo caminho do abort manual: a flag volta a servir a variação padrão para todo mundo naquele ambiente. Cada avaliação fica registrada com o valor da métrica, o limite e a ação tomada, então todo abort deixa o registro do porquê. Uma janela sem observações é registrada como dados insuficientes e nunca aborta um rollout sozinha.

Por que zero abort é sinal de alerta

Um guardrail que nunca dispara não é conservador. É decorativo. Se a sua taxa de abort fica em zero por meses, ou toda entrega do time é perfeita, ou o limite está tão frouxo que a regressão já está visível para todo usuário antes de o guardrail reagir.

O segundo caso pode acontecer quando o limite é copiado de um alerta antigo, ajustado para não acordar ninguém à toa, e não para parar um rollout em 5% do tráfego. Um limite de alerta responde "isso está ruim o bastante para chamar alguém?". Um guardrail de rollout deveria responder "esta versão está pior do que a que ela substitui?", que é uma pergunta mais apertada.

Calibrar sem gritar lobo à toa

O modo de falha do outro lado é igualmente real: um guardrail tão sensível que aborta rollouts saudáveis por ruído comum, até o time parar de confiar nele.

Alguns hábitos ajudam:

  • Defina o limite a partir do comportamento recente do próprio serviço. Um serviço naturalmente ruidoso precisa de mais folga que um estável. No rollfuse o limite é um número fixo que você escolhe, então olhe a faixa normal da métrica antes de escolher.
  • Use a janela de avaliação para absorver ruído. Uma janela maior tira a média de mais observações, então uma requisição lenta isolada tem menos chance de disparar o guardrail. Uma janela menor reage mais rápido. Escolha por métrica.
  • Trate falso positivo como bug de calibração. Quando um guardrail aborta um rollout que estava bom, olhe o valor e o limite registrados naquela avaliação e ajuste. Não aceite abort falso como preço da segurança.

Como ler a sua taxa de abort: um exemplo hipotético

Exemplo hipotético: este cenário foi inventado para mostrar o método. Ele não descreve um cliente do rollfuse, uma medição interna nem um incidente real.

Imagine um time que protege os releases de checkout com um guardrail de latência p95 e outro de taxa de erro. Depois de um trimestre, o time lista cada abort automático e coloca cada um em um de três grupos:

  1. Pego cedo. Uma regressão real que teria se espalhado para mais tráfego antes de alguém perceber: um vazamento de memória lento, uma cascata de cache-miss, um timeout de dependência que só aparece sob carga real.
  2. Pego mais rápido. Um problema real que a pessoa de plantão também pegaria, só que mais tarde, depois de mais usuários terem visto.
  3. Falso positivo. O release estava bom e o guardrail reagiu a ruído.

A divisão da lista diz ao time o que fazer. Se a maioria está nos grupos 1 e 2, os guardrails estão fazendo o trabalho deles. Um grupo 3 crescendo indica que um limite ou uma janela precisa de ajuste. Uma lista vazia depois de muitos releases é o caso para olhar primeiro: confira se o limite poderia ser atingido com o volume de tráfego dos primeiros estágios.

Próximos passos

Os templates de guardrail deixam você definir um limite calibrado uma vez e reutilizá-lo, então o ajuste de um limite não precisa ser repetido em cada rollout. Guardrails de deploy cobre a ideia mais ampla de checagens automáticas durante um release, e o tutorial de rollback automático com guardrail mostra como configurar um.