O Que É um Rollback?
Um rollback é o ato de reverter seu software para uma versão anterior known-good depois que um deployment dá errado.
Não importa quão bons sejam seus testes, alguns releases ruins chegam à produção. Um rollback é sua saída de emergência: em vez de correr para corrigir a nova versão ao vivo, você rapidamente restaura a última versão que funcionava, e então investiga com calma.
O que é
Um rollback retorna um sistema a um estado anterior funcional, geralmente reimplantando o build artifact anterior ou alternando o tráfego de volta para ele. A ideia-chave é recuperação por reversão: você não faz debug sob pressão, você restaura o comportamento known-good primeiro e diagnostica depois.
Como funciona
Como releases anteriores são artifacts versionados e armazenados, fazer rollback pode ser tão simples quanto reimplantar o anterior. Com blue-green deployment, a versão antiga ainda está em execução, então um rollback é apenas virar o tráfego de volta, quase instantâneo. Mudanças de banco de dados complicam as coisas, e é por isso que as migrations são projetadas para serem backward compatible.
Um exemplo
Um novo release é lançado e as taxas de erro sobem imediatamente. Em vez de tentar fazer hotfix ao vivo, o engenheiro de plantão faz rollback para o artifact anterior com um comando. Em um minuto o sistema volta a ficar saudável na versão antiga, e a equipe investiga o bug sem a pressão de uma queda ativa.
Por que rollback rápido importa
Quanto mais rápido você pode fazer rollback, menos um release ruim custa, e com mais confiança você pode fazer deploy em primeiro lugar. Um caminho de rollback confiável e rápido é o que torna o deployment frequente seguro: se qualquer release pode ser desfeito em segundos, lançar com frequência deixa de ser assustador.
O que torna o rollback confiável
- Mantenha artifacts anteriores versionados e prontos para reimplantar.
- Projete as database migrations para serem backward compatible.
- Use deployment strategies que mantenham a versão antiga disponível.
- Pratique o rollback para que funcione quando você precisar.
Principais conclusões
- Um rollback restaura uma versão anterior known-good após um deploy ruim.
- Artifacts versionados e deploys blue-green o tornam rápido.
- Rollback rápido é o que torna o deployment frequente seguro.