常见的四种发布策略介绍

65 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

常见的四种发布策略介绍:包括滚动发布、蓝绿发布、灰度发布、A/B Test

滚动发布

滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本

特点:

  • 用户无感知,平滑过渡
  • 节约资源

优点:简单、发布周期短、不占用额外资源 缺点:平均恢复时间长、故障影响面广、回滚困难

image.png

蓝绿发布

发布过程中用户无感知服务的重启,通过新旧版本并存的方式,切换路由的方式实现不同的应用上线或下线。

特点:

  • 如果出问题,影响范围较大
  • 发布策略简单
  • 用户无感知,平滑过渡
  • 升级/回滚速度快

优点:平均恢复时间短、发布周期短 缺点:发布时资源消耗大、故障影响面广

image.png

金丝雀发布

在线上运行的服务中,新加入少量的新版本服务,然后从这少量的新版本中快速获得反馈,根据反馈决定最后的交付形态,以保障整体系统稳定的情况下,尽早发现、调整问题。 主要面对的场景是功能兼容的新版本验证,用最小的代价实现功能验证,且保证主体流量不受影响。

特点:

  • 用户无感知,平滑过渡
  • 保证整体系统稳定性
  • 新功能问题快速反馈

优点:平均恢复时间短、故障影响面小、不占用额外计算资源 缺点:发布周期长

image.png

灰度发布

灰度发布是指在应用的新旧版本之间平滑过渡的一种发布方式。根据特定的规则,挑选一部分用户访问灰度版本的服务,并逐步扩大范围,最终把所有用户访问迁移到新的版本上来。 与金丝雀发布相比,灰度发布流量具有指向性;另外金丝雀发布更倾向于获取快速的反馈,而灰度发布更倾向于长时间平稳的切换。

特点:

  • 用户无感知,平滑过渡
  • 保证整体系统稳定性
  • 新功能逐步评估性能

优点:故障影响面小、不占用额外计算资源 缺点:自动化要求高

image.png

A/B Test

ABTest是用来测试应用功能表现的方法,侧重的是新老版本之间的差异,并根据结果进行决策,最终选择一个版本进行部署。与灰度发布相比,ABTest更倾向于根据实验结论去决策。

image.png