部署两个常驻集群A、B,由A承载日常流量,B作为冷备份;
发布时,流量全都切到B,先对A升级,A升级完后,流量切到A;
再升级B;
部署一个常驻集群A,承载日常流量,无冷备份;
发布时,用新版代码弹性部署一个集群B,将流量切到B;
弹性回收集群A;
比较:
1.充分利用云计算的容器化、虚拟化带来的伸缩能力,更快速。
2.流程更简单,网关切换次数更少;
3.不需要象蓝绿那样,将全量计算资源一分为二,集群始终都使用着全量计算资源,不需要蓝绿那样要避开业务高峰期升级。
实践中,可以两者结合;
在fygs项目交付早期,采用的就是蓝绿发布,A集群做冷备,且发布窗口开得密集,主要用于特性验证,通过后再同步到B集群。
但同时利用CI/CD,Kubernets,Dev/Ops的方式。
部署一个常驻集群A,承载日常流量,无冷备份;
发布时,新版本代码启动B集群;
将流量分批切换至B集群;
注意:
1.针对改动较大的版本升级,比如DML,或者RPC接口改动较大,代码层面必须做好新老兼容。
2.用户量请求的分批时,必须考虑一致性路由。
3.分批切换的时机必须配合良好的监控,否则会有风险。
总体来说适合新的、体量较小、追求快速迭代的项目。