一句话理解:上线前的最后一个测试环节,除了当前发布的服务跟线上有差异,其他线上环境完全一致,包括数据库,硬件,网络.....
以下转自【授客】博客
1、预发布环境,就是线上环境、正式生产环境,为避免因为测试环境和线上环境的差异性等带来的缺陷漏测而设立的一套环境,其配置等基本和线上一致,只是预发布环境web服务器不在线上集成服务器范围之内,为单独的一台机器;
2、预发布环境不能被线上用户访问
通常这里的技术实现是这样的:把预发布环境的访问域名设置成和线上环境的不一样,通过配置host来访问预发布环境;
3、预发布环境和线上环境公用数据库,即预发布环境使用的是线上的数据库
问题:如果新版本程序需要更改表结构等,比如加个表字段,那么,部署到预发布环境时也需要更改表字段,这个可能会影响线上环境程序代码的运行,咋解决?
答案:
3.1 先把预发布环境使用的数据库切换为测试环境使用的数据库
3.2 根据实际部署过程,如果有必要,接着,可有针对性的测试下数据库的变更是否会影响线上当前代码程序的运行(注:个人想法)
3.3 把新代码部署到预发布环境,测试程序是否正常运行
3.4预发布测试完毕,如果没问题,先上线数据库,即在正式环境执行对应的数据库变更操作
3.5 紧接着,把预发布环境连接的数据库切换为线上环境使用的数据库,再次进行预发布环境的测试
3.6 最后,如果预发布环境测试通过,则把预发布环境的代码部署到线上生产环境。