O Que É Blue-Green Deployment? Deploy com Zero Downtime
Técnica de liberação de software que utiliza dois ambientes idênticos para alternar o tráfego instantaneamente, eliminando o tempo de inatividade.
Atualizar um sistema em funcionamento sem desconectar usuários ou suspender operações essenciais costumava exigir manutenções durante a madrugada com avisos de indisponibilidade. O Blue-green deployment resolve essa limitação estrutural por meio de dois ambientes de produção idênticos, viabilizando transições instantâneas entre versões sem interrupção de serviço.
O que é Blue-green deployment?
Blue-green deployment é uma estratégia de implantação de software que opera com dois ambientes de infraestrutura idênticos, chamados convencionalmente de Blue (Azul) e Green (Verde). Em qualquer momento, apenas um dos ambientes recebe o tráfego ativo de produção, enquanto o outro permanece ocioso ou em fase de validação.
Quando uma nova versão do software precisa ser disponibilizada, ela é instalada e totalmente configurada no ambiente inativo. Após a realização de testes de homologação com dados reais, o direcionador de tráfego (roteador ou balanceador de carga) altera o destino das requisições para o novo ambiente em questão de segundos. Caso ocorra qualquer imprevisto grave, basta inverter o chaveamento para restaurar o estado operacional anterior.
O chaveamento de tráfego e o ciclo dos ambientes
O fluxo de execução do Blue-green deployment obedece a uma alternância cíclica de papéis entre os dois lados da infraestrutura.
- Estado inicial: o ambiente Blue está ativo e recebendo todo o tráfego de produção dos usuários, enquanto o ambiente Green está ocioso com a versão anterior.
- Implantação no ambiente inativo: a nova versão do código é colocada no ar no ambiente Green por meio de um pipeline de CI/CD, sem afetar o desempenho de quem utiliza o ambiente Blue.
- Testes de sanidade interna: engenheiros e ferramentas automatizadas validam funcionalidades essenciais diretamente no ambiente Green antes da liberação oficial.
- Alternância (Switch): o balanceador de carga é reconfigurado para direcionar 100% das novas requisições para o ambiente Green, que passa a ser a produção ativa.
- Retenção de segurança: o ambiente Blue permanece ligado por um tempo prudencial; se nenhum erro surgir, ele fica pronto para receber a próxima versão no ciclo seguinte.
Aplicação prática em setores críticos no Brasil
No Brasil, onde serviços essenciais como cartões de crédito, autorização de exames de saúde e plataformas de e-commerce precisam manter alta disponibilidade ininterrupta, o Blue-green deployment é amplamente adotado em arquiteturas orientadas a microserviços e nuvem.
Um sistema de autorização de convênios médicos, por exemplo, não pode suspender o atendimento aos pronto-socorros para atualizar tabelas de procedimentos. Ao utilizar Blue-green deployment, a equipe de tecnologia publica a nova versão das regras de autorização no ambiente ocioso, realiza testes de integração e realiza a virada do roteador. Para os hospitais e clínicas conveniadas, o processo de autorização segue funcionando normalmente, sem qualquer segundo de parada (zero downtime).
Desafios técnicos com dados e persistência
Apesar da simplicidade lógica no chaveamento de requisições de rede, a convivência de dois ambientes produtivos impõe desafios estruturais que demandam cuidados arquiteturais específicos.
- Sincronização de bancos de dados: ambos os ambientes (Blue e Green) geralmente compartilham a mesma base de dados. Qualquer alteração estrutural no esquema de dados precisa ser compatível com as duas versões do software simultaneamente.
- Gerenciamento de sessões e cache: sessões de usuários e dados em cache distribuído precisam ser compartilhados de forma transparente para evitar que clientes logados percam suas compras ou autenticação no instante da virada.
- Custo de infraestrutura: manter o dobro da capacidade computacional ativa simultaneamente eleva os custos operacionais, exigindo automação em nuvem para provisionar e desativar instâncias de forma eficiente durante as janelas de deploy.
O Blue-green deployment oferece previsibilidade e tranquilidade operacional às equipes de engenharia, transformando lançamentos de software arriscados em rotinas técnicas controladas, reversíveis e sem impacto na experiência dos usuários.
Tags
- #deploy
- #devops
- #infraestrutura
- #cloud-computing