天天看点

敏捷开发部署方案 —— 蓝绿部署、滚动发布和灰度发布蓝绿部署滚动发布灰度发布

滚动发布和灰度发布其实都可以用矿工(用户)下井(使用的版本)来理解,旧矿井(旧版本)和新矿井(新版本)。滚动发布就是发现新矿井,直接让矿工排队下新矿井,结果瓦斯浓度过高(bug),死伤惨重(版本回退)。灰度发布就是这些人学鸡贼了,发现新矿井后,矿工还是留在旧矿井干活,下新井的就是金丝雀(按规则负载均衡过来的部分用户、测试者)。直到确认新矿井没问题,再让矿工全部从旧矿井迁移到新矿井

蓝绿部署

敏捷开发部署方案 —— 蓝绿部署、滚动发布和灰度发布蓝绿部署滚动发布灰度发布

蓝绿部署。指的是同时运行两个版本的应用,在进行蓝绿部署的时候,并不停止掉老版本,而是直接部署一套新版本,等新版本运行起来后,再将流量切换到新把本上。但是蓝绿部署要求在升级过程中同时运行两套程序,对硬件的要求就是日常所需的两倍。

滚动发布

滚 动 发 布 能 够 解 决 掉 蓝 绿 部 署 时 对 硬 件 要 求 增 倍 的 问 题 \color{#FF0000}{滚动发布能够解决掉蓝绿部署时对硬件要求增倍的问题} 滚动发布能够解决掉蓝绿部署时对硬件要求增倍的问题

敏捷开发部署方案 —— 蓝绿部署、滚动发布和灰度发布蓝绿部署滚动发布灰度发布

滚动升级。在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再停止一台老版本,然后再启动一台新版本,再停止一台老版本,直到升级完成。这样的话,升级时需要的就是日常服务器数+1

滚动升级有一个问题,在开始滚动升级后,流量会直接流向已经启动起来的新版本,但是这个时候,新版本是不一定可用的,比如需要进一步的测试才能确认。那么在滚动升级期间,整个系统就处于非常不稳定的状态,如果发现了问题,也比较难以确定是新版本还是老版本造成的问题。

灰度发布

敏捷开发部署方案 —— 蓝绿部署、滚动发布和灰度发布蓝绿部署滚动发布灰度发布

灰度发布开始后,先启动一个新版本应用,但是并不直接将流量切过来,而是测试人员对新版本进行线上测试,启动的新版本应用。

若测试没有问题,可以将少量的用户流量导入到新版本上,在此期间,还可以不断调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力。直到将100%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。

脉冲云实现灰度发布

脉冲云的部署管理可以轻松实现上述的带有流量管理功能的灰度发布。正常编辑应用信息后点击保存,然后脉冲云会提示直接升级或灰度发布:

  1. 直接升级就是使用一般的滚动升级
  2. 灰度发布可以人工干预升级过程,进行流量控制
  3. 选择灰度发布后,呈现灰度发布控制面板。在控制面板上可以脱拉滑块,快速调整新旧版本的运行副本数量。同时也可以按百分比,将流量导入到新版本上。
  4. 此外,通过匹配 HTTP Header,指定个别用户的流量到最新版本上。
  5. 除了匹配用户流量的 HTTP 请求头,还可以直接指定请求头中 Cookie 信息,匹配规则支持精确匹配、包含、正则、前缀和后缀等,甚至还允许反向匹配。
  6. 确认新版本运行无误后,就可以点击 完成升级 按钮,就会将流量全部切换到新版本上,并且销毁掉所有老版本应用。如果新版本出了问题,可以点击 取消升级 按钮,立即将流量切回老版本,并销毁掉新版本应用

继续阅读