Deploy

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 latest para 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:

  1. criar um commit de revert
  2. fazer merge de uma correção rápida
  3. 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.

EstadoImagem
versão com problemaghcr.io/acme/api:1.4.3
rollbackghcr.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.