pular para o conteúdo
voltar ao mapa
prática
etapa: deliver
2 min de leitura

Estratégias de release e rollback

Fazer deploy e fazer release são coisas diferentes. Você pode colocar o código em produção às escuras, ligá-lo gradualmente e desligá-lo em segundos se ele se comportar mal.

Kubernetes rolling updatesArgo Rollouts / Flaggerfeature flags (OpenFeature, Unleash)load balancersdatabase migrations tools

As estratégias

  • Rolling: substitui instâncias poucas por vez. Simples e o padrão na maioria dos orquestradores; versões antigas e novas rodam lado a lado por um tempo.
  • Blue/green: mantém dois ambientes completos e troca o tráfego do antigo (blue) para o novo (green) de uma vez. O rollback é voltar a chave; custa o dobro de capacidade durante a troca.
  • Canary: envia uma pequena parcela do tráfego para a nova versão, observa as métricas e depois amplia. Limita o de um release ruim.
  • Feature flags: entregam o código desativado e o ativam por usuário, percentual ou ambiente. Separam deploy de release e dão um botão instantâneo de desligar.
  • Shadow traffic: copia requisições reais para a nova versão sem devolver suas respostas, para comparar o comportamento com segurança.

Rollback é uma decisão de design

  • Mantenha o artefato anterior pronto para deploy e faça deploy por versão imutável ou digest.
  • Torne as mudanças de banco de dados retrocompatíveis (expand, migrate, contract), para que o código antigo continue funcionando com o novo schema.
  • Decida com antecedência qual métrica dispara um rollback e automatize-o onde puder.
  • Pratique o rollback: um rollback não testado é uma esperança.

Exemplo: um rollout canary

Um controlador de progressive delivery move o tráfego em etapas e verifica as métricas entre elas. O esboço abaixo usa a sintaxe do Argo Rollouts.

rollout.yaml (Argo Rollouts)yaml
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: api
spec:
  replicas: 6
  selector:
    matchLabels: { app: api }
  strategy:
    canary:
      steps:
        - setWeight: 10
        - pause: { duration: 5m }
        - setWeight: 50
        - pause: { duration: 10m }
  template:
    metadata:
      labels: { app: api }
    spec:
      containers:
        - name: api
          image: registry.example.com/api@sha256:<digest>

Escolhendo

Ajuste a estratégia ao risco e ao custo. Uma ferramenta interna de baixo risco pode usar rolling updates. Um fluxo de pagamento merece um canary com rollback automático. Uma mudança que toca dados exige a disciplina de schema compatível, seja qual for a estratégia.

Raio de impactoblast radiusO tamanho do estrago quando uma coisa quebra: uma conta, uma região inteira, um tenant. Bom design de cloud limita o raio por isolamento (contas separadas, VPCs separadas, papéis estreitos) para que uma falha ou um ataque não se torne um desastre de página inteira.ver no glossário →

conexões no mapa

atualizado em 14/10/2026 · fontes para aprofundar · reportar erro

em outros domínios

Estude antes

teste o que entendeu

Carregando perguntas…