软件开发过程中的环境简介
软件开发生命周期包含很多活动,如计划,分析,设计,开发,不同类型的测试,部署,运维。这些活动发生在不同的环境. 我们对其环境分类为 development, testing, staging, and production environments ,如下图:
1、开发环境dev
顾名思义,开发工程师开发时使用的环境,每位开发工程师在自己的dev分支上工作,提测前或者开发到一定程度,工程师Leader合并代码,进入联合调试。
没有客户真实数据。
2、测试环境test
也就是我们测试工程师工作的环境,一般会由测试工程师自己完成环境部署,然后在此环境进行测试。Bug修复后,需要发版更新测试环境来回归Bug。没有客户真实数据。
3、预发布环境stage
测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品上线质量。有经过脱敏客户数据。
预发布环境和生产环境区别:
1)预发环境中新功能为最新代码,其他功能代码和生产环境一致。
2)预发环境和生产环境的访问域名不同。
Test环境与Stage环境区别
尽管通常在开发过程中进行测试,但在过渡环境中进行用户接受测试的需求却至关重要。 Stage环境是客户生产环境的完全相同副本,通常还包含出于安全目的而经过清理的真实生产数据。 它以与生产服务器相同的方式托管,并且涉及相同的设置和更新操作。 因此,在 Stage环境中进行测试提供了最可靠的方法来检查代码质量并确保生产服务器成功。
即使对持续的代码质量保证至关重要,测试环境也几乎无法达到客户系统仿真的真实程度。 因此,通常的最佳做法是在将应用程序代码移入生产环境之前,在过渡环境中对其进行完整的测试。
4、生产环境prod
即线上环境,用户使用的环境。由特定运维工程师来维护,一般人没有权限去修改。全部的生产数据,真正客户使用的环境。