微服务部署:蓝绿部署、滚动部署、灰度发布等部署方案对比与总结
在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文笔者简单讨论一下目前比较流行的几种部署方案,或者说策略。如有不足之处请指出,如有谬误,请指正_。 Blue/Green Deployment(蓝绿部署) 蓝绿部署无需停机,并且风险较小。 (1) 部署版本1的应用(一开始的状态) 所有外部请求的流量都打到这个版本上。 (2) 部署版本2的应用 版本2的代码与版本1不同(新功能、Bug修复等)。 (3) 将流量从版本1切换到版本2。 (4) 如版本2测试正常,就删除版本1正在使用的资源(例如实例),从此正式用版本2。 从过程不难发现,在部署的过程中,我们的应用始终在线。并且,新版本上线的过程中,并没有修改老版本的任何内容,在部署期间,老版本的状态不受影响。这样风险很小,并且,只要老版本的资源不被删除,理论上,我们可以在任何时间回滚到老版本。 rolling update(滚动发布) 滚动发布,一般是取出一个或者多个服务器停止服务,执行更新,并重...