软件开发生命周期包含不少活动,如计划,分析,设计,开发,不一样类型的测试,部署,运维。这些活动发生在不一样的环境. 咱们对其环境分类为 development, testing, staging, and production environments ,以下图:html
顾名思义,开发工程师开发时使用的环境,每位开发工程师在本身的dev分支上工做,提测前或者开发到必定程度,工程师Leader合并代码,进入联合调试。
没有客户真实数据。数据库
也就是咱们测试工程师工做的环境,通常会由测试工程师本身完成环境部署,而后在此环境进行测试。Bug修复后,须要发版更新测试环境来回归Bug。没有客户真实数据。安全
测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就能够在预发布环境进行验证,从而保证产品上线质量。有通过脱敏客户数据。服务器
预发布环境和生产环境区别:
1)预发环境中新功能为最新代码,其余功能代码和生产环境一致。
2)预发环境和生产环境的访问域名不一样。微信
Test环境与Stage环境区别网络
尽管一般在开发过程当中进行测试,但在过渡环境中进行用户接受测试的需求却相当重要。 Stage环境是客户生产环境的彻底相同副本,一般还包含出于安全目的而通过清理的真实生产数据。 它以与生产服务器相同的方式托管,而且涉及相同的设置和更新操做。 所以,在 Stage环境中进行测试提供了最可靠的方法来检查代码质量并确保生产服务器成功。
即便对持续的代码质量保证相当重要,测试环境也几乎没法达到客户系统仿真的真实程度。 所以,一般的最佳作法是在将应用程序代码移入生产环境以前,在过渡环境中对其进行完整的测试。架构
即线上环境,用户使用的环境。由特定运维工程师来维护,通常人没有权限去修改。所有的生产数据,真正客户使用的环境。运维
更多请参考微服务
https://en.wikipedia.org/wiki/Deployment_environment性能
若有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注个人微信订阅号:
做者:Petter Liu
出处:http://www.cnblogs.com/wintersun/ 本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。 该文章也同时发布在个人独立博客中-Petter Liu Blog。