关于开发测试生产需要多少个环境,因公司而异,这里分享一下我建议开发过程中使用的几个环境。
Development环境,就是开发环境,程序写代码,写单元测试的环境,一般和IDE一起,经常是在调试模式下进行,为了与其他开发者隔离,通常数据库都是自建(也有共享的)自用,三方接口一般都是mock的或调用三方接口的测试环境,尽量减少其他开发人员的干扰,从而高效的调试代码,验证模块。
QA(Quality Assurance)环境,对于多模块,耦合性强的项目,需要把这些功能集成起来联合测试,这时,就需要给测试人员提供一个集中验证的平台,这就是QA环境了。
Staging环境,测试完了不能直接上线,因为数据的差异也可能带来程序的不正常,所以这时有个Stging(预生产)环境,来验证一下生产的数据配置情况下是否有问题。
Production环境,用户使用的环境,数据封闭,提高安全性;环境封闭,降低事故率。
关于四个环境的版本发布情况,程序有三个远程分支,分别是master,staging,development三个分支,staging和development都是从master拉出来的分支。
首先development是开发人员开发完一个功能,或修复完一个bug后,就会推送到远端的development,远端development会构建到QA环境上,以供测试人员去测试。
每个对应功能或bug测试后,开发人员会把它推送到staging分支上,由测试人员完成验收;
staging验收确认后,源码管理人员在git服务端review staging上代码以后,就会合并到master上,以供上线。
这只是我们使用的一种方式,主要根据我们的项目模块之间耦合性强,DevOpt资源,而设计的一种方案,仅供参考。