Deploy não precisa ser salto no escuro
Publicar uma nova versão direto por cima da aplicação em produção pode funcionar em projetos pequenos, mas aumenta risco quando há usuários, banco de dados e integrações. Se algo quebra, a equipe corre para descobrir arquivos alterados, dependências e comandos de rollback. Deploy blue-green reduz esse risco ao manter dois ambientes alternáveis.
Em uma VPS ou servidor dedicado, o conceito pode ser simples: ambiente blue atende produção, ambiente green recebe a nova versão. Depois de testar, o Nginx troca o tráfego para green. Se falhar, volta para blue.
Como organizar diretórios
Uma estrutura comum usa releases versionadas, como /var/www/app/releases/202605010900, e um link simbólico current apontando para a versão ativa. O Nginx aponta para current. Cada deploy cria uma pasta nova, instala dependências e executa testes antes de virar produção.
Banco de dados exige cuidado
Rollback de código é fácil. Rollback de banco pode ser difícil. Migrações devem ser compatíveis com a versão anterior sempre que possível. Evite renomear ou remover colunas no mesmo deploy em que o código novo passa a depender disso. Prefira mudanças em etapas.
Health checks
Antes de trocar tráfego, rode checks: página inicial, login, conexão com banco, filas, cache e endpoints críticos. Um deploy que sobe processo mas falha no checkout não está saudável.
Rollback rápido
Rollback deve ser comando simples, testado e documentado. Voltar o link current para a release anterior e recarregar o Nginx pode resolver muitos incidentes. Guarde pelo menos algumas releases antigas e limpe as demais em rotina programada.
Boas práticas
- Automatize deploy para evitar passos manuais esquecidos.
- Use variáveis de ambiente por ambiente.
- Faça backup antes de migrações importantes.
- Mantenha logs por release.
- Não faça deploy grande sem janela ou monitoramento.
- Valide filas e workers junto com a aplicação web.
Referência de conceito
O padrão blue-green é descrito em materiais técnicos amplamente usados, como o artigo de Martin Fowler sobre Blue-Green Deployment, uma referência neutra de arquitetura de software.
Conclusão
Blue-green torna deploy mais previsível e rollback mais rápido. Mesmo sem Kubernetes, uma VPS bem organizada com Nginx, releases e automação já entrega maturidade operacional para aplicações em produção.
Nenhum comentário ainda. Seja o primeiro a comentar!