integram o trabalho com frequência…” “Cada integração é verificada por uma build automatizada (incluindo testes) para identificar erros de integração o mais rápido possível” Continuous Integration - https://martinfowler.com/articles/continuousIntegration.html
tipos - incluindo novos recursos, alterações de configurações, correções de bugs e experimentos - em produção ou nas mãos dos usuários, com segurança e rapidez, de maneira sustentável.” https://continuousdelivery.com/
podem ser identificados antes de completar o deploy em todas as instâncias. Rollback pode ser lento e complexo Retrocompatibilidade com versões anteriores (banco de dados, apis, etc.) Prós Contras
Permite testar múltiplas versões em produção gerenciando tráfego entre elas Mais lento comparado com outras estratégias Os testes devem ter um monitoramento eficiente da infraestrutura envolvida e da stack da aplicação Aplicação e banco de dados preparados para suportar múltiplas versões Gerenciamento da transição (tráfego) é mais complexo Prós Contras
múltiplas versões simultâneas Gerenciamento da distribuição de tráfego Rollback rápido Implementação Complexa Os testes devem ter um monitoramento eficiente da infraestrutura envolvida e da stack da aplicação Aplicação e banco de dados preparados para suportar múltiplas versões Gerenciamento da transição (tráfego) é mais complexo Prós Contras
as funcionalidades de backend usando o tráfego legítimo (produção) Cuidado com integração de terceiros que mudam os dados Aumenta a complexidade operacional Ele funciona melhor quando aplicado com outra estratégia como Canary Aumenta o custo de recursos computacionais Prós Contras
testes por segmento de usuários Desabilita facilmente a funcionalidade via Feature Flag/Toggle Necessário implementar ciclo de vida da flag Aumenta a complexidade operacional Observabilidade (Monitoramento, Introspecção, centralização de logs) devem ser implementados para rastrear problemas. Arquitetura da aplicação deve suportar múltiplas versões concorrentes Prós Contras
versões simultâneas Gerenciamento da distribuição de tráfego Rollback rápido Multinant Dependente de um orquestrador de container Arquitetura da aplicação deve suportar múltiplas versões concorrentes Aumenta a complexidade operacional Observabilidade (Monitoramento, Introspecção, centralização de logs) devem ser implementados para rastrear problemas. Prós Contras
Alvos Custo de Recursos (servidores) Duração de Rollback Impacto para Usuário Complexidade para Implementar Complexidade Operacional Recreate/In-Place Não Não Não Baixo Alto Alto Muito Baixo Alto Rolling Deployment Sim Não Não Baixo Baixo Baixo Baixo Baixo Blue/Green Sim Não Não Alto Muito Baixo Médio Médio Médio Canary Sim Sim Não Baixo Baixo Baixo Médio Médio A/B Testing Sim Sim Sim Baixo Baixo Baixo Alto Alto Shadow Sim Sim Não Alto N/A Muito Baixo Alto Alto Dark Launch Sim Sim Sim Baixo Muito Baixo Baixo Alto Alto Circle Sim Sim Sim Baixo Baixo Baixo Médio Médio