找回密码
 立即注册
搜索

蓝绿、灰度、滚动发布策略在DevOps的落地实施

sx_lityliao 2024-7-22 16:51:42

01
背景

随着流水线的快速推广项目组对流水线部署服务的要求越来越高,为了不影响线上正常提供服务,项目组需要运用相应的发布策略进行部署。

下文将分享几种发布策略,和在流水线的落地方案。


02
方案介绍


蓝绿发布

1、概念定义

蓝绿发布是一种以最小的停机时间做服务升级的策略。需要维护的两个版本的环境分别称为 “蓝环境” 和 “绿环境”。一般当前生产流量指向环境为绿环境,而在蓝环境上部署新版本,短时间内作为测试环境。

2发布流程

首先将一半的服务流量从负载均衡列表中移除,并且更新服务版本,验证新版本没有问题后,将生产流量指向蓝环境,然后对于老版本的绿环境进行版本升级,最后将所有服务流量加回负载均衡。

  image.png

  image(1).png

实际配置

企业微信截图_.png  

3特点

l升级过程无需停机,用户感知小

l升级过程一半资源提供服务

l升级/回滚速度快

l如果出了问题,影响面较广

4流水线配置

  image(2).png


灰度发布

1概念定义

灰度发布属于增量发布,新老版本同时为用户提供服务。灰度发布的主要目的是保证系统的可用性。每一次的线上变更都无法保证系统 100% 的无 bug,所以变更后要在线上小范围验证,等没问题再全面放开。而金丝雀发布是灰度发布的一种实现。

2发布流程

在现有环境中部署少量服务的新版本(金丝雀),部署完成后,对线上流量进行监测,如果没有问题就对老版本服务进行全量升级。

  image(3).png

  image(4).png

3特点

l用户体验影响小,灰度发布过程出现问题影响范围较小

l新版本功能逐步发布,可以逐步评估新版服务性能、稳定性和健康状态

l发布自动化程度不够,发布期间可能引发服务中断

4流水线配置

  image(5).png


滚动发布

1概念定义

在金丝雀发布基础上的进一步优化改进,是一种自动化程度较高的发布方式,用户体验比较平滑,是目前成熟型技术组织所采用的主流发布方式。

2发布流程

在现有环境中部署少量服务的新版本(金丝雀),部署完成后,对线上流量进行监测,如果没有问题就逐步对老版本服务进行批量升级。

  image(6).png

  image(7).png

3特点

l用户体验影响小,体验较平滑

l发布和回退时间比较缓慢

l发布工具比较复杂,需要平滑的流量摘除和拉入能力

4流水线配置

  image(8).png


您需要登录后才可以回帖 立即登录
共收到 0 条点评
返回顶部