Blue-Green deployment和 Blue-Turquoise-Green deployment
经典的蓝绿部署在《持续交付》一书中有介绍。 蓝绿部署的难点其实是在数据的持续部署。一方面是数据库自身的代码化和纳入版本管理,另外一方面,蓝绿变化过程中,如果如该书中介绍的采用两套数据库的话,会引入很多的技术难点。
https://techblog.bozho.net/blue-green-deployment/
于是,就有人提出了
Blue-Green Deployment With a Single Database - Bozho's ...
还有人提出了通过蓝-蓝绿-绿的部署方式
http://blog.dixo.net/2015/02/blue-turquoise-green-deployment/
image.png蓝绿+一个DB的升级方案:
数据库的变更一定要兼容旧版本,如果涉及删除字段等对老业务影响的DB变更,蓝区和绿区都升级成新版本再清理,或者直接放到下一个版本清理。
具体步骤
升级顺序:DB -> 绿区 -> 蓝区
step0 切路由: 外网流量由(蓝区+绿区) 切到蓝区
step1 升级DB
在蓝区做主流程冒烟
step2 升级绿区
在绿区做主流程冒烟
step3 切路由: 外网流量切到绿区
在绿区做主流程冒烟
step4 升级蓝区
在蓝区做主流程冒烟
step5 切路由: 外网流量切到绿区 + 蓝区
做主流程冒烟
单体应用从0开始做蓝绿,最麻烦的不是部署流程,麻烦的是应用各种不支持集群,session集群,定时任务,序列号。。。。
网友评论