开发环境、测试环境、生产环境

979 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情juejin.cn/post/714765…

项目部署一般分为三种:生产环境、测试环境和开发环境

开发环境

开发环境就是专门用于开发的服务器,配置比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境。也称为最低环境,由代码人员直接使用和维护

测试环境

测试环境一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常那么肯定不会把它发布到生产服务器上,它是开发环境到生产环境的过度环境

生产环境

生产环境,(数据前后端已经跑通)是指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为master分支,由特定人员来维护,一般人没有权限去修改。

概括

上述环境可以说是系统开发的三个阶段:开发=>测试=>上线,其中生产环境也就是通常说的真实的环境,最后交给用户的环境。开发环境就是开发人员在开发联调时,比如前后端交互的本地环境,一般在本地开发完成后将代码部署到测试环境,也就是提交测试。

预发布环境

通过了内部测试的项目,在健全体系的公司可能会有一个叫做预发布服务器的环境,这个环节主要是用来将程序释放到外界,让部分公网用户(非团队内部用户)进行体验和测试。
如果通过打包的形式发布,那么可以不用预发布环境,如果因为测试和线上用的都是同一个代码包。 如果用的直接发布git仓库的代码,那么就必须要增加预发布环境了。

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

预发布环境是正式发布前的最后一次测试,所有的功能和配置、数据库都已经与线上环境高度相似。仅准入本次需要上线的功能代码,测试人员确认代码在测试环境经过测试用例测试没有问题后,提交预发布环境进行测试。在少数情况下即便预发布通过了都不能保证正式环境可以100%不出问题。
预发布环境的配置、数据库等都是和线上一样,有些公司的预发布环境数据是连接线上环境,有些公司是单独数据库。
预发布环境和测试环境的区别:
预发布环境和生产系统的同步性更高,几乎一样,有些测试,比如需要大数据量的,用预发布环境看程序性能比用测试环境(一般情况下数据会较少)会更准确

灰度发布

发生在预发布环境之后,生产环境之前,生产环境一般会部署在多台机器上,以防某台机器发生故障,这样,其他机器可以继续运行,不影响用户使用。灰度发布会发布在其中的几台机器上,验证新的功能是否正常,如果失败,只需回滚这几台机器即可。
灰度发布是选择性发布,可以配置用户范围,被划为范围内的用户看见的是最新的灰度版本,普通用户看见的还是当前未更新版本。