蓝绿灰度发布的介绍

背景介绍

蓝绿灰度发布

介绍

  • 蓝绿部署中,一共有两套系统:一套是正在提供服务系统(也就是上面说的旧版),标记为绿色;另一套是准备发布的系统,标记为蓝色
  • 两套系统都是功能完善的,并且正在运行的系统,只是系统版本和对外服务情况不同。正在对外提供服务的老系统是绿色系统,新部署的系统是蓝色系统
  • 蓝色的系统上进行测试,测试完成后切换为蓝色系统,同时观察蓝色系统的运行状态,如果运行出现问题可以及时切回绿色系统

优点

这样做可以减少发布影响的时间。例如某网站要进行后端升级,无需完全停掉服务更新,且出现问题后可以及时切回老版本

缺点

  • 需要部署两套环境(蓝和绿)
  • 要求蓝绿两套系统完全没有耦合
    蓝绿灰度发布的介绍_第1张图片

灰度发布(金丝雀发布)

介绍

  • 先启动一个新版本应用,先将少量的流量切换到新版本上,然后再对新版本做测试观察
  • 确定没有问题后,再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量
  • 直到将100%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。

优点

  • 通过逐步将流量引导到新版本,降低了风险,因为只有一小部分用户受到影响。
  • 可以快速获得新版本的反馈,并及时检测和修复问题。

缺点

  • 需要额外的设置和配置来处理流量的路由和分发
  • 管理多个版本的代码和环境可能会带来复杂性
    蓝绿灰度发布的介绍_第2张图片

滚动发布

介绍

  • 将新版本服务逐步部署到每个小部分中,同时保留其他部分使用稳定的旧版本。
  • 不断执行这个旧版本替换新版本的过程,直到集群中的全部旧版本升级到新版本,逐渐将流量从旧版本切换到新版本

优点

这种部署方式相对于蓝绿部署,更加节约资源,不需要两套环境。我们可以部分部署,例如每次只取出集群的20%进行升级

缺点

回滚困难,流量直接到新的机器上,出现问题后,无法实现快速回滚;更新时间长,带来额外的风险,如果80%完成更新后发生重大漏洞,回滚会比较耗时和困难
蓝绿灰度发布的介绍_第3张图片

你可能感兴趣的:(分布式,spring,cloud,spring,cloud)