Rollback
Rollback é o processo de voltar para uma versão anterior quando uma publicação causa erro. Na Zenifra, a estratégia depende da origem do projeto: GitHub ou imagem OCI.
Antes de precisar reverter
Prepare o projeto para rollback antes de produção:
- mantenha tags ou commits identificáveis
- exponha uma rota
/health - registre versão ou commit nos logs
- evite
latestpara imagens OCI em produção - documente variáveis necessárias para cada release
Projetos GitHub
Para projetos GitHub com auto-deploy, o caminho mais previsível é voltar a branch configurada para um estado conhecido.
Opções comuns:
- criar um commit de revert
- fazer merge de uma correção rápida
- restaurar a branch para uma release estável conforme o processo Git da equipe
Depois do push, acompanhe logs de build e valide a aplicação na URL pública.
Projetos OCI
Para projetos OCI, rollback normalmente significa alterar a imagem para uma tag anterior.
| Estado | Imagem |
|---|---|
| versão com problema | ghcr.io/acme/api:1.4.3 |
| rollback | ghcr.io/acme/api:1.4.2 |
Depois de trocar a imagem, valide logs, métricas, rota /health e comportamento principal da aplicação.
Banco e migrações
Rollback de aplicação não desfaz automaticamente mudanças no banco.
Antes de publicar mudanças com migração:
- teste migrações em ambiente separado
- prefira migrações compatíveis com duas versões da aplicação
- planeje como reverter ou corrigir dados
- evite deploy de código que dependa imediatamente de uma migração destrutiva
Validação pós-rollback
Após reverter:
- confirme status do projeto
- abra a URL pública
- verifique logs da aplicação
- confira métricas e requisições HTTP
- valide banco, login, checkout, webhooks ou fluxos críticos
- comunique internamente a versão restaurada
Próximos passos
FAQ
A Zenifra faz rollback automático?
Atualmente, rollback automático não é uma capacidade documentada. Planeje rollback operacional por Git ou por tag de imagem.
Rollback resolve erro de banco?
Nem sempre. Mudanças de schema e dados precisam de plano próprio.
Como reduzir risco?
Use branch estável, tags imutáveis, health check, logs claros e checklist de produção antes de publicar.