引言
开发测试环境通常我们使用染色来区分不同流量,进入不同的开发测试联调分支组成的染色场。
由于大量的项目、分支去满足不同的需求,避免不同的分支之间互相影响调试、测试,需要不同的染色予以区分;每次的染色调试都是一个不同的染色标。
在生产环境发布时,我们通常有两个版本,线上运行的版本、待发布的版本。
也就是在生产环境区分流量只需要两个颜色即可,蓝绿发布通过两个染色流量来区分线上运行版本和待发布版本。
常见生产发布存在什么诉求呢?
而问题1往往最为突出,很多发系统依赖人工填写发布计划来解决。
熟悉中间件运维的同学怎么运维才是安全的呢?先摘流--->运维变更--->再引流
这种方式应用到发布系统即为蓝绿发布。
一、常见发布方式梳理
发布方式 | 基本原理 | 常见实现 |
---|---|---|
灰度发布 | 小流量验证 | 方式一:金丝雀发布,发布的时候先拉入一台验证,正常后发布剩余节点方式二:流量染色灰度,通过对请求流量染色选择到特定的节点实现灰度方式三:独立灰度环境,上线前现在该环境验证 |
滚动发布 | 分批次发布 | 在灰度验证的基础上,通过发布系统选择发布批次方式一:按节点比例分批次发布方式二:按节点数量分批发布 |
蓝绿发布 | 流量调度实现 | 线上同时蓝绿两个应用组提供服务步骤一:新版本发布时先将流量从蓝色集群A调度到绿色集群B,绿色集群B独立承担流量步骤二:在蓝色集群A发布新版本,从小到大逐步引流到蓝色集群步骤三:蓝色验证正常均衡蓝绿两套流量,异常流量调度走即可 |
红黑发布 | 弹性扩缩容、流量调度 | 线上只运行一个红色集群步骤一:发布时先扩容黑色集群,该集群发布新版本步骤二:在黑色集群发布新版本,按比例引流验证步骤三:一切正常后,流量调度到黑色集群,红色集群下线 |
小结:下面对这些发布模式进行简要提点。
二、蓝绿发布架构与流程
在业务基本容器化后,扩缩容变得容易,而线上的资源容量假设能够容纳业务增量的2倍以上,将线上的运行的服务一分为二,分成蓝色环境和绿色环境。
三、优先组件改造点梳理
四、其他组件改造点梳理