Pular para o conteudo principal

Como Fazer Rollout Gradual Com Controle

Como liberar mudança em produção em etapas reais, com critério de pausa e expansao, em vez de empurrar para 100 por cento e rezar.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

Trilha

Trilha para entrevistas de startup engineer

Etapa 9 / 11

O problema

Tem time que chama isto de rollout gradual:

  1. sobe a versão
  2. coloca 10 por cento
  3. espera pouco
  4. vai para 100 por cento porque “parece ok”

Isso não e controle.

Isso e só pressa dividida em etapas.

Rollout gradual só ajuda de verdade quando reduz o alcance de erro e aumenta sua chance de perceber problema cedo.

Modelo mental

Pense assim:

rollout gradual e um loop de exposição, observação e decisão

Primeiro você escolhe quem vai receber a mudança.

Depois mede o que interessa.

Depois decide:

  • amplia
  • segura
  • volta

Se essa decisão não esta clara antes de começar, o rollout ainda esta mal desenhado.

Quebrando o problema

Escolha qual pedaco do mundo vai receber a mudança primeiro

Rollout pode ser por:

  • instancia
  • usuário
  • tenant
  • região
  • tipo de tráfego
  • time interno antes de cliente

A pergunta útil e:

qual recorte reduz dano sem esconder o comportamento que eu preciso observar?

As vezes 1 por cento aleatorio ajuda.

As vezes um tenant interno e controlado ajuda mais.

Defina o que significa sucesso e o que significa falha

Antes de liberar, você precisa saber o que vai olhar.

Exemplos:

  • taxa de erro
  • latência
  • timeout
  • fila acumulando
  • divergencia de resultado
  • conversão ou impacto de negócio

Também precisa definir gatilho de parada.

Sem isso, o time sempre encontra um jeito de dizer que “ainda esta aceitavel”.

Tenha um jeito claro de parar ou voltar

Rollout gradual sem kill switch e sem rollback rápido e metade da história.

Você precisa saber:

  • como parar nova exposição
  • como voltar o tráfego
  • o que acontece com estado já escrito
  • se ha algo irreversivel no caminho

Esse ultimo ponto importa muito.

Se o sistema escreveu dado breaking, desligar o tráfego talvez não baste.

Expanda em etapas com tempo suficiente para observar

Nem toda falha aparece em 30 segundos.

Algumas dependem de:

  • volume
  • horario
  • tipo raro de request
  • job assinado rodando depois
  • dado antigo encontrando caminho novo

Por isso, etapa boa não e só percentual.

E percentual mais tempo mais leitura correta do sinal.

Separe deploy, ativação e exposição

Esse ponto evita muita confusao.

Você pode:

  • deployar o código
  • manter a feature desligada
  • ativar para poucos
  • ampliar gradualmente

Quando o time mistura essas camadas, perde a capacidade de operar release com calma.

Exemplo simples

Imagine um checkout novo.

Plano fraco:

  • deploy na sexta
  • libera 5 por cento
  • se ninguém reclamar em 10 minutos, vai para 100 por cento

Plano melhor:

  1. deploy do código novo sem ativar
  2. ativa primeiro para time interno
  3. libera para um tenant pequeno
  4. mede erro, latência, abandono e integração com pagamento
  5. sobe para mais tenants ou mais porcentagem
  6. mantem regra clara de pausa se aparecer regressao

Repare que o ponto não e o número em si.

O ponto e que cada etapa compra aprendizado antes de comprar mais risco.

Erros comuns

  • Confundir rollout gradual com deploy gradual.
  • Escolher cohort aleatorio quando o problema depende de um tenant específico.
  • Fazer rollout sem baseline para comparar.
  • Ampliar por calendario e ansiedade, não por sinal.
  • Ignorar que schema ou contrato ainda podem quebrar com versões convivendo.

Como um senior pensa

Quem tem mais experiência não pergunta só:

“Com quantos por cento eu começo?”

Pergunta mais isto:

“Qual erro eu quero detectar cedo, qual grupo me mostra isso e como eu paro sem piorar o dano?”

Esse jeito de pensar e menos sobre ferramenta e mais sobre controle operacional.

O que o entrevistador quer ver

Em entrevista, o avaliador quer ver se você sabe transformar release em processo observável, não em chute elegante.

Você sobe de nivel quando:

  • diferencia deploy de ativação
  • escolhe cohort com critério
  • fala de metrica e stop condition
  • considera rollback e compatibilidade de estado

Uma resposta forte costuma soar assim:

“Eu faria rollout gradual definindo primeiro a unidade de exposição, depois metricas de sucesso e falha, e um jeito claro de pausar ou reverter. Só ampliaria quando o sinal estivesse estavel, não só porque passou algum tempo.”

Rollout gradual bom não e o que vai devagar. E o que aprende rápido antes de expor o resto.

Se você não sabe quando parar, você não esta controlando nada.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Parte da trilha: Trilha para entrevistas de startup engineer (9/11)

Próximo artigo Shadow Traffic, Dual Write e Comparação de Comportamento Artigo anterior Reprocessamento Seguro Sem Duplicar Efeito Colateral

Continue explorando

Artigos relacionados