蓝绿发布、滚动发布、灰度发布等部署方案对比与总结
在项目迭代的过程中,不可避免需要进行项目上线。上线对应着部署或者重新部署,部署对应着修改,修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂,有的得停机,有的不需要停机即可完成部署。本文将对目前常用的部署方案做一个简单的总结。 蓝绿发布(Blue/Green Deployment) 1. 定义 蓝绿部署是不停老版本,部署新版本然后进行测试。确认OK后将流量切到新版本,然后老版本同时也升级到新版本。 2. 特点 蓝绿部署无需停机,并且风险较小。 3. 部署过程 部署版本 1 的应用(初始的状态) 所有外部请求的流量都打到这个版本上。 部署版本 2 的应用 版本 2 的代码与版本 1 不同(新功能、Bug修复等)。 将流量从版本 1 切换到版本 2。 如版本 2 测试正常,就删除版本 1 正在使用的资源(例如实例),从此正式用版本 2。 4. 小结 从过程不难发现,在部署的过程中,我们的应用始终在线。并且新版本上线的过程中,并没有修改老版本的任何内容,在部署期间,老版本的状态不受影响,这样风险很小。并且只要老版本的资源不被删除,理论上,我们可以在任何时间回滚到老版本。 5. 蓝绿发布的注意事项 当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题。…