atualmente na empresa onde trabalho, temos o ambiente de homologação e de produção,
no cvs temos 3 linhas de desenvolvimento, HEAD, o branch de Homologação e de Produção.
criamos assim pois temos arquivos de configuração diferentes para o ambiente de homologação e de produção.
e toda vez que vamos gerar uma versão temos que ficar comparando branchs… isso é ruim pois para dar um replace em um arquivo errado é fácil… alem do trabalho de gerar versão de homologação e depois gerar de produção.
nosso build é feito pelo maven…
gostaria de saber se tem alguma arquitetura diferente para isso ou algum modo de configurar apenas um branch, do modo que é só copiar para produção a mesma versão homologada…
Eu trabalhei por algum tempo em uma empresa que possui bem distintos os ambientes de homologação, testes e produção, devido à alta complexidade do negócio e do total de receita manipulado pelos diversos sistemas´.
Dentro de QA (testes) e homologação, haviam ambientes de 1º, 2º, 3º e estavam criando um 4º nível para testes (desde o código fonte até a aplicação rodando em ambiente semelhante ao de produção).
Além disso, havia ambientes distintos, servidores e VMs apenas para rodar os ambientes de QA e homolog.
Além disso, havia a divisão em serviços, web, banco de dados, webservices e CRM, divididos, mais uma vez, em projetos, manutenção de rotina e expansão.
Para cuidar disso tudo, 15 pessoas, sem contar os testers.
A estrutura era gigante, mas nenhum projeto ou sistema subia com erros.
O processo era o mesmo, pega na branch de desenvolvimento, joga em homolog, compila, faz build e deploy, joga no servidor ou ambiente e deixa para teste.
Testou, gera os pacotes, manda pra produção e produção apenas aplica e monitora.
Então, digo que dependendo da complexidade do negócio, sim, é preciso isso.
A não ser que seja apenas 2 programadores, aí não precisa de tudo isso.