Estratégias de deployment definem como novas versões são lançadas em produção — equilibrando segurança, tempo de inatividade e risco. As estratégias comuns incluem rolling, blue-green e canary deployments, cada uma com diferentes trade-offs.
Estratégias de deployment definem como novas versões são lançadas em produção — equilibrando segurança, tempo de inatividade e risco. As estratégias comuns incluem rolling, blue-green e canary deployments, cada uma com diferentes trade-offs.
Gradually replace old instances with new ones, a few at a time:
[v1][v1][v1][v1] → [v2][v1][v1][v1] → [v2][v2][v1][v1] → ... → [v2][v2][v2][v2]
✓ no downtime (some instances always serving); no extra full environment needed
✗ both versions run during the rollout; slower; rollback = roll back instance by instance
Run TWO identical environments — BLUE (current) and GREEN (new version):
→ deploy v2 to GREEN; test it; then SWITCH all traffic from blue to green at once
→ BLUE stays as instant rollback (switch back if green has issues)
✓ instant switch; instant rollback; test green before going live; no in-between state
✗ needs DOUBLE the infrastructure (two full environments)
Release the new version to a SMALL subset of users first, then gradually increase:
→ 5% of traffic → v2 (monitor errors/metrics) → 25% → 50% → 100% if healthy
→ if problems appear, roll back having affected only a few users
✓ limits blast radius (catch issues with minimal impact); data-driven gradual rollout
✗ more complex (traffic splitting, monitoring); slower full rollout
ROLLING → simple, no extra infra, gradual (a common default)
BLUE-GREEN → instant switch + instant rollback, safe testing (if you can afford 2x infra)
CANARY → safest for risky changes (limit blast radius), needs good monitoring
→ Choose by risk tolerance, infrastructure, and monitoring maturity.
Compreender estratégias de deployment é valioso para lançar software com segurança e risco mínimo de tempo de inatividade, portanto é um conhecimento prático importante para deployments em produção.
Como uma nova versão é lançada em produção afeta significativamente a segurança e o risco, e as estratégias oferecem diferentes trade-offs. Deployment rolling (substituindo gradualmente instâncias antigas por novas) fornece lançamentos sem tempo de inatividade sem infraestrutura extra, um padrão simples comum, embora ambas as versões sejam executadas durante o rollout. Deployment blue-green (executando dois ambientes idênticos e alternando o tráfego do ambiente atual para o novo de uma vez) permite alternância instantânea e rollback instantâneo (alternância de volta para o ambiente antigo se surgirem problemas) além da capacidade de testar a nova versão antes de entrar em produção, ao custo de precisar do dobro da infraestrutura — valioso quando rollback rápido e teste antes da alternância importam. Deployment canary (lançando para um pequeno subconjunto de usuários primeiro, monitorando e depois aumentando gradualmente) é o mais seguro para mudanças arriscadas porque limita o raio de explosão — capturando problemas enquanto afeta apenas poucos usuários antes do rollout completo — embora exija divisão de tráfego e monitoramento robusto.
Compreender essas estratégias e escolher apropriadamente (rolling pela simplicidade, blue-green para rollback instantâneo e teste seguro se a infraestrutura permitir, canary para mudanças arriscadas com bom monitoramento) com base na tolerância ao risco, infraestrutura e maturidade de monitoramento reflete julgamento sólido de deployment.
Essas estratégias são como as equipes alcançam lançamentos seguros, de baixo tempo de inatividade e baixo risco — importante para operações de produção confiáveis.
Como lançar software em produção com segurança (minimizando tempo de inatividade e risco) é uma preocupação crítica e as estratégias de deployment oferecem diferentes trade-offs para alcançá-lo, e como compreender deployments rolling, blue-green e canary e quando usar cada um permite lançamentos seguros, compreender estratégias de deployment é conhecimento valioso e praticamente importante para entrega de software em produção — um tópico chave para lançar mudanças de forma confiável e segura, refletindo compreensão de como gerenciar o risco inerente ao fazer deploy em produção.