Blue-Green Deployment: Como atualizar seu sistema sem ninguém perceber
O medo de fazer o deploy de uma nova versão e derrubar o sistema é real. O Blue-Green Deployment é uma técnica de liberação (release) que reduz esse risco a quase zero, permitindo que você volte atrás instantaneamente se algo der errado.
O Jogo dos Dois Ambientes
Imagine que você tem dois ambientes de produção idênticos. Chamamos um de Blue (o que está no ar agora) e o outro de Green (o que vai receber a versão nova).
Como funciona o fluxo
- Estado Atual: Todo o tráfego dos usuários está indo para o ambiente Blue (v1.0).
- Preparação: Você faz o deploy da nova versão (v1.1) no ambiente Green. Este ambiente está isolado, sem receber tráfego público.
- Teste em Produção: Sua equipe de QA e desenvolvedores acessam o ambiente Green (via uma URL interna ou VPN) e verificam se tudo está funcionando no hardware real.
- A Virada (Switch): Quando todos estão confiantes, o Roteador/Load Balancer muda o tráfego de Blue para Green instantaneamente.
- Monitoramento: Se o ambiente Green apresentar erros inesperados, basta mudar o roteador de volta para Blue. O rollback é imediato.
O Grande Desafio: O Banco de Dados
O Blue-Green é fácil para código (stateless), mas difícil para o banco de dados. Se a v1.1 mudar o esquema do banco (deletar uma coluna, por exemplo), a v1.0 (Blue) vai quebrar se você precisar fazer o rollback.
A Solução: Mudanças no banco devem ser sempre retrocompatíveis. Siga o padrão Expand and Contract:
- Expand: Adicione a nova coluna (ambas as versões funcionam).
- Migrate: Mova os dados.
- Contract: Delete a coluna antiga (só depois que a v1.0 não existir mais).
Blue-Green vs Canary
Enquanto o Blue-Green vira 100% do tráfego de uma vez, o Canary Deployment libera a nova versão para apenas 5% ou 10% dos usuários inicialmente, aumentando gradualmente conforme a confiança aumenta.
O Futuro das Releases: De Deploy para Release Progressivo
O Blue-Green Deployment foi o precursor de uma era onde o “dia do deploy” deixou de ser um evento traumático. Olhando para o futuro, técnicas como Progressive Delivery e Feature Flags estão tornando o ambiente Blue-Green ainda mais granular, permitindo que novas versões sejam liberadas não apenas para um ambiente inteiro, mas para segmentos específicos de usuários em tempo real. A infraestrutura está se tornando tão elástica que o conceito de “ambiente estático” desaparecerá, dando lugar a fluxos de tráfego fluidos e autorrecuperáveis.