Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

08 · Estratégias de deploy e release

Separe implantar (técnico, frequente, reversível) de liberar (decisão de negócio, via feature flag). Isso reduz risco sem reduzir frequência.

EstratégiaQuando usarComo no Azure DevOps
Rolling updateServiços sem estado com várias instânciasstrategy: rolling em environments de VM
CanaryMudança de risco médio/alto com tráfego suficiente para medirstrategy: canary (nativo em Kubernetes) ou pesos no proxy
Blue-greenTroca instantânea e rollback em segundosrunOnce + hook routeTraffic trocando o upstream (nginx/Traefik)
Feature flag / dark launchLiberar por público, testar em produção sem exporUnleash, Azure App Configuration ou OpenFeature (fora do Azure DevOps)
Shadow trafficValidar um serviço novo com tráfego real sem usar a respostaMirror no proxy (nginx mirror, Envoy)

Recuperação

  • Rollback: reexecutar o stage de deploy de um run anterior; funciona porque o artefato é imutável e o deploy é idempotente. Automatizado no hook on: failure.
  • Roll forward: preferido quando há migração de dados; usa o mesmo pipeline, com caminho rápido de hotfix.
  • Migrações de banco compatíveis com a versão anterior (expand/contract), para que o rollback seja sempre possível.

Controle de mudança

  • Change management: mudanças padrão (pipeline verde, template aprovado) são pré-aprovadas; aprovação humana só para mudança normal ou emergencial. Integração com ITSM via check (ex.: ServiceNow) quando exigido.
  • Deployment freeze: check de business hours ou check customizado consultando um calendário central de freeze; exceções registradas.
  • Release management: histórico de deploys por Environment, release notes geradas a partir dos work items, e Delivery Plans para coordenar releases entre times.

Indicadores: D7 · Deploy e release