Modelo de workflow para desenvolvimento de software, onde há ambientes separados para cada fase de desenvolvimento da aplicação. Entre as vantgens da utilização de tal modelo, tem-se a evolução paralela de cada ambiente, onde cada etapa é realizada na sua velocidade (Feature sendo desenvolvida, que levará meses para ser colocada em teste. Ambiente de teste usa esse momento para seguir testando outras features), aumento de organização e produtividade. Tal modelo possui grande diversificação, não seguindo somente tais 3 etapas tradicionais. Entre alternativas, tem-se, no ambiente Staging, camadas específicas como testes, então pré-produção. Outro cenário comum é ter ambiente de Desenvolvimento, Teste, Performance, Homologação, Canary (Usado para testar a solução final) e Produção. Tem-se, também, as fases de modelo do IRUP (IBM Rational Unified Process), ilustradas pelo gráfico de baleias. O modelo a ser adotado dependerá da estratégia da empresa, tamanho da aplicação, e equipes envolvidas. Quanto maior o número de ambientes para desenvolvimento de aplicação, maior será a complexidade para gerir e manter. Conteinerização são abordagem excelente para a criação prática de tais ambientes. Ferramentas com Jenkins permite a criação automatizada de tais ambientes (CI/CD).
Elaborado por Mateus Schwede
ubsocial.github.io