Ainda tem o ambiente local, que é onde geralmente deveria estar sendo feito o código. E o ambiente de homologação que é onde o código é mergeado e testado. E por fim o ambiente produtivo, onde o código é usado na vida real.
Mas o ambiente de desenvolvimento que digo, é que geralmente empresas tem o seguinte fluxo de entrega de código: Desenvolvimento local > Ambiente de desenvolvimento > Ambiente de homologação > Ambiente de produção.
Sendo desses: Ambiente local: o seu ambiente de trabalho Ambiente de desenvolvimento: lugar onde o dev pode mergear o seu código com approves de revisão de código e etc... Porém existe uma maior liberdade para esse ambiente ser quebrado. Ambiente de homologação: cópia de produção ou maior tentativa de simular o ambiente produtivo. Ambiente produtivo: produção, go live, rodando, ihaa.
Entendi, numa empresa que trabalhei esse era chamado de testing
. No qual os devs faziam merge e deixavam os QAs testarem.
Respondendo a pergunta inicial
Já trabalhei em uma empresa onde tinha o seguinte fluxo:
local
-> testing
-> homologation
-> staging
-> production
No meu trabalho atual tem o seguinte fluxo:
local
-> production
O que vale é:
- Qual a necessidade do seu projeto? a complexidade é tão alta a ponto de precisar criar um ambiente a mais / a menos?
- Qual a maturidade da sua equipe para enviar códigos direto para o próximo ambiente?
- Aqui se mede com a quantidade de vezes que um código "volta" para o passo anterior. Se voltar muito é porque: 1- seus programadores dependem desse ambiente e estão confortáveis em jogar código ruim pra frente 2- falta um processo de qualidade de código como code review
- Esse ambiente está trazendo mais benefícios ou dor de cabeça?
Desenvolvimento local > Ambiente de desenvolvimento > Ambiente de homologação > Ambiente de produção.
Cara, não sei se é alguma confusão de termos, mas para mim está estranho isso aí. Ao menos por onde eu já passei, é o seguinte:
-
Ambiente de desenvolvimento: É o onde o programador atua, é o ecossistema de IDE, editores, dependências de build e etc. Normalmente isso é na máquina do programador ou uma nuvem como o codespaces. Aqui na empresa estamos cada vez mais construindo os ambientes de desenvolvimento usando devcontainer pois é facilmente reproduzível.
-
Ambiente de homologação (ou stage): É um ambiente simular ao de produção, porém com as últimas alterações dos projetos para que os QA e clientes possam simular suas rotinas diárias e validar alterações.
-
Ambiente de produção: É o que nome diz.