Para empresas menores (não está claro quão grande é o seu), três ambientes (desenvolvedor, estágio, produção) são comuns. As empresas maiores geralmente têm um ambiente de controle de qualidade entre o desenvolvedor e o estágio.
Eles normalmente se decompõem da seguinte maneira:
dev : cópia de código de trabalho. As alterações feitas pelos desenvolvedores são implantadas aqui para que a integração e os recursos possam ser testados. Esse ambiente é atualizado rapidamente e contém a versão mais recente do aplicativo.
qa : (Nem todas as empresas terão isso). Ambiente para garantia de qualidade; isso fornece uma versão menos alterada do aplicativo, na qual os testadores podem executar verificações. Isso permite relatar uma revisão comum para que os desenvolvedores saibam se problemas específicos encontrados pelos testadores já foram corrigidos no código de desenvolvimento.
preparo : Esse é o candidato a release e esse ambiente normalmente é um espelho do ambiente de produção. A área de preparação contém a versão "próxima" do aplicativo e é usada para testes finais de estresse e aprovações de cliente / gerente antes de entrar no ar.
produção : esta é a versão atualmente lançada do aplicativo, acessível ao cliente / usuários finais. Esta versão preferencialmente não muda, exceto durante as liberações agendadas.
Estou um pouco surpreso que um ambiente de teste também não esteja presente, como um local para o código ir antes de ser promovido para teste.
Para responder à pergunta:
Um ambiente de palco deve espelhar o ambiente de produção o mais próximo possível.
Ele é usado para verificar os procedimentos de implantação - garantindo que, quando o código estiver pronto para produção, ele possa ser implantado sem causar problemas.
Ou seja, o código vai para a preparação - isso é testado e regredido de forma abrangente para garantir que a implantação foi executada conforme o planejado (e para resolver os problemas, se não).
fonte
O ambiente de palco é um ambiente de pré-produção que reflete a produção. Frequentemente, pode haver alguns dados de produção para que um grupo de teste composto por usuários reais e testadores de controle de qualidade possa confirmar que a base de dados / dados pré-lançados será implantada e funcionará corretamente em um ambiente semelhante a um produto, geralmente através de casos de uso com script e regressão testes.
Como observa o @Oded, geralmente é comum ter um ambiente de controle de qualidade usado pelos testadores para testar o código.
fonte
Minha experiência com o governo dos EUA / departamento de defesa de TI é que:
fonte
Como desenvolvedor web, existem basicamente três ambientes a serem considerados na prática :
Produção : o ambiente configurado para hospedar a versão final de um produto destinado aos usuários finais. É otimizado para segurança e desempenho. Está hospedado em um servidor ativo. Requer suporte alertado e urgente. É crítico para os dados. Portanto, seus dados são copiados regularmente. Também envolve gerenciamento de riscos e recuperação de desastres. O ambiente de produção está configurado para mostrar erros amigáveis para os usuários finais.
Preparo : O ambiente configurado para hospedar o candidato a release do aplicativo após declarar um congelamento de código. Ele visa o gerente / proprietário do projeto, juntamente com a equipe de desenvolvimento, a concordar com o escopo do candidato a lançamento. Envolve garantia de qualidade e também a equipe de desenvolvimento para fazer as correções finais e o fornecimento final antes de liberar a produção. A melhor prática é imitar o ambiente de produção usando os dados mais recentes disponíveis de um banco de dados ativo copiado do ambiente de produção. Normalmente, o ambiente de temporariedade é acessível apenas pela equipe interna e pelas partes interessadas; portanto, ele é protegido em um servidor público ou publicado em um ambiente de intranet, se todas as partes interessadas puderem acessar uma rede local. O ambiente de temporariedade está configurado para mostrar erros técnicos médios ou completos.
Desenvolvimento : o ambiente privado configurado por um único desenvolvedor em sua máquina para verificar seu próprio trabalho durante um ciclo de desenvolvimento, normalmente chamado de sprint em um ambiente scrum. O ambiente de desenvolvimento está configurado para mostrar erros técnicos completos.
fonte