一、部署发布问题
项目迭代更新后需要上线部署,新版本修改过则意味着可能存在bug,当有严重bug时还需要回退到上一个版本,那么如何解决新老版本交替部署的同时又能保证系统用户正常使用不受影响。
二、部署发布方案
- 蓝绿发布:在发布的过程中用户无感知服务的重启,通常情况下是通过新旧版本并存的方式实现,也就是说在发布的流程中,新的版本和旧的版本是相互热备的,通过切换路由权重的方式(非0即100)实现不同的应用的上线或者下线。
- 优点:
- 发布策略简单
- 用户无感知,平滑过渡
- 回滚速度快
- 缺点:
- 短时间浪费一定资源成本,需要正常业务2倍的服务器
- 如果新版本出现问,影响范围较大
- 优点:
- 灰度发布:通过修改新老版本的路由权重,逐步从一个版本切换为另一个版本的过程。当新版本刚发布时可设置新版本权重为5,则老版本权重95,这样就只有%5的用户使用新版本,当新版本反馈没问题了,可以逐渐加大新版本权重直至完全替代老版本。
- 优点:
- 用户无感知,平滑过渡
- 回滚速度快
- 出现问题影响范围小
- 缺点:
- 发布策略相对复杂
- AB测试:在灰度发布方案基础上可以进行AB测试,让一部分用户继续用产品特性 A,一部分用户开始用产品特性 B,可以在其中选择哪个方案最合适,最后使用那个方案,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。
- 优点: