环境区分

  • 开发联调环境
  • 自动化测试环境
  • 集成测试环境
  • 预发布环境
  • 演练环境
  • 灰度环境
  • 生产环境

先了解不同代码分支的作用:

  • dev:开发分支,开发人员开发和自测的代码分支
  • test:测试分支,开发人员开发完转测功能合并代码的分支
  • release:预发布分支,测试环境测试通过后,开发人员将代码合并的分支,测试通过后,运营会将此分支代码发布到线上环境
  • master:上线通知后,把这个迭代功能的代码合并的分支,新开发功能再从 master 分支上拉代码进行新的开发

开发环境

顾名思义,开发同学开发时使用的环境,每位开发同学在自己的 dev 分支上干活,提测前或者开发到一定程度,各位同学会合并代码,进行联调。

测试环境

也就是我们测试同学干活的环境啦,一般会由测试同学自己来部署,然后在此环境进行测试。BUG 修复后,需要发版更新测试环境来回归 BUG。

回归环境

回归 BUG 的环境,其实就是我们的测试环境,在测试环境上测试、回归验证 BUG。

镜像环境

Staging

预发布环境

预发布环境是测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品上线质量。预发布环境是正式发布前最后一次测试。因为在少数情况下即使预发布通过了,都不能保证正式生产环境可以 100% 不出问题;预发布环境的配置,数据库等都是跟线上一样;有些公司的预发布环境数据库是连接线上环境,有些公司预发布环境是单独的数据库;如果不设预发布环境,如果开发合并代码有问题,会直接将问题发布到线上,增加维护的成本。

预发布环境和生产环境区别:

  1. 预发环境中新功能为最新代码,其他功能代码和生产环境一致
  2. 预发环境和生产环境的访问域名不同

⚠️ 注意:预发布环境一般会连接生产环境的数据库,测试时要注意,以免产生脏数据,影响生产环境的使用。

灰度环境

生产环境

生产环境 (Production)又被称为正式环境,是系统最终运行、被用户所使用的环境。生产环境是指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为 master 分支。


参考资料: