问题讨论#测试发布#
1.如果发现新版本出现了重大问题,大家是用的什么版本发布系统?
2.如何回滚到某一个稳定的版本?
结合小伙伴的回答与我自己的总结:
1.重大版本上线前需要准备两个方案,一个方案确定上线成功的标准;另一个方案为上线失败方案,需要回滚到上一个稳定版本,确定回滚步骤以及后续需要处理什么问题(如产生新数据的话怎么办,冗余的数据怎么处理尤其是百万千万级别的平台)。两个方案都需要在上线前进行评估。
2.平台级别太大,上线前可以做一个灰度发布(学到的新名词)、引流验证,如果你线上有10台部署机,那么只发布2台机器部署新代码,剩下的部署老代码,然后利用网段控制或其他情况,进行流量分配,给2台新代码的机器上只分配一部分流量。进行新功能验证,这样能保证大部分人是可用的,没问题就全部发布到线上。
3.上线后验证问题出现的原因,开发、测试共同定位问题,如能立马解决并没有客户反馈的话则决策修复发布补丁包,若解决时间较长并且客户使用紧急的话再回滚到上一个稳定版版本,同时邮件告知这个版本对线上影响的原因和影响范围。
4.目前我们公司还没有遇到过上线新版本出现重大问题的,我们公司主要是针对电信客户开发的平台,都是一个地区部署一个平台,平台间相互独立的,有问题也是小问题,由测试直接测试合格后更新部署包到线上,不影响新产生的数据;目前感觉公司流程好像不太规范,正在走向规范化的路上;现在公司开发的新平台的是以微服务的方式部署的,以后会docker化,后续会多注意这个问题,及时更新对这类问题的解决方案。