当前位置:首页 > 民俗文化

黑与白2修改器 灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

在项目迭代的过程中,不可避免需要进行项目上线。上线对应着部署或者重新部署,部署对应着修改,修改则意味着风险。

目前有很多用于部署的技术,有的简单,有的复杂,有的得停机,有的不需要停机即可完成部署。本文将对目前常用的部署方案做一个简单的总结。

蓝绿发布(Blue/Green Deployment)

1. 定义

蓝绿部署是不停老版本,部署新版本然后进行测试。确认OK后将流量切到新版本,然后老版本同时也升级到新版本。

2. 特点

蓝绿部署无需停机,并且风险较小。

3. 部署过程

部署版本 1 的应用(初始的状态)

所有外部请求的流量都打到这个版本上。

灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

部署版本 2 的应用

版本 2 的代码与版本 1 不同(新功能、Bug修复等)。

将流量从版本 1 切换到版本 2。

灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

如版本 2 测试正常,就删除版本 1 正在使用的资源(例如实例),从此正式用版本 2。

4. 小结

从过程不难发现,在部署的过程中,我们的应用始终在线。并且新版本上线的过程中,并没有修改老版本的任何内容,在部署期间,老版本的状态不受影响,这样风险很小。并且只要老版本的资源不被删除,理论上,我们可以在任何时间回滚到老版本。

5. 蓝绿发布的注意事项

当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题。

可能会出现需要同时处理微服务架构应用和传统架构应用的情况,如果在蓝绿部署中协调不好这两者,还是有可能会导致服务停止。

需要提前考虑数据库与应用部署同步迁移/回滚的问题。

蓝绿部署需要有基础设施支持。

在非隔离基础架构( VM 、 Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。

6. 优势和不足

优势

升级切换和回退速度非常快。

不足

切换是全量的,如果 V2 版本有问题,则对用户体验有直接影响。

需要两倍机器资源。

7. 适用场合

对用户体验有一定容忍度的场景。

机器资源有富余或者可以按需分配(AWS 云,或自建容器云)。

灰度发布

1. 定义

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB Test 就是一种灰度发布方式,让一部分用户继续用 A,一部分用户开始用 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

灰度发布结构图

灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

2. A/B Testing

A/B 测试是用来测试应用功能表现的方法,例如可用性、受欢迎程度、可见性等等。 A/B 测试通常用在应用的前端上,不过当然需要后端来支持。

灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

A/B 测试与蓝绿部署的区别在于, A/B 测试目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论,并确信该结论在推广到全部流量可信;蓝绿部署的目的是安全稳定地发布新版本应用,并在必要时回滚。

3. 金丝雀发布

我们平常所说的金丝雀部署也是灰度发布的一种方式,在原有版本可用的情况下,同时部署一个新版本应用作为「金丝雀」服务器来测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早发现、调整问题。

灰度发布/金丝雀发布由以下几个步骤组成:

准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。

从负载均衡列表中移除掉「金丝雀」服务器。

升级「金丝雀」应用(排掉原有流量并进行部署)。

对应用进行自动化测试。

将「金丝雀」服务器重新添加到负载均衡列表中(连通性和健康检查)。

如果「金丝雀」在线使用测试成功,升级剩余的其他服务器(否则就回滚)。

除此之外灰度发布还可以设置路由权重,动态调整不同的权重来进行新老版本的验证。

4. 优势和不足

优势

用户体验影响小,灰度发布过程出现问题只影响少量用户。

不足

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

滚动发布(Rolling Update Deployment)

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

1. 定义

滚动发布:一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。

2. 特点

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

3. 部署过程

滚动式发布一般先发 1 台,或者一个小比例,如 2% 服务器,主要做流量验证用,类似金丝雀 (Canary) 测试。

滚动式发布需要比较复杂的发布工具和智能 LB,支持平滑的版本替换和流量拉入拉出。

每次发布时,先将老版本 V1 流量从 LB 上摘除,然后清除老版本,发新版本 V2,再将 LB 流量接入新版本。这样可以尽量保证用户体验不受影响。

一次滚动式发布一般由若干个发布批次组成,每批的数量一般是可以配置的(可以通过发布模板定义)。例如第一批 1 台(金丝雀),第二批 10%,第三批 50%,第四批 100%。每个批次之间留观察间隔,通过手工验证或监控反馈确保没有问题再发下一批次,所以总体上滚动式发布过程是比较缓慢的 (其中金丝雀的时间一般会比后续批次更长,比如金丝雀 10 分钟,后续间隔 2 分钟)。

回退是发布的逆过程,将新版本流量从 LB 上摘除,清除新版本,发老版本,再将 LB 流量接入老版本。和发布过程一样,回退过程一般也比较慢的。

4. 优势和不足

优势

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

不足

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

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

其它发布方式

上述都是偏传统的发布方式,能覆盖大部分应用发布场景。针对一些关键新功能的上线发布,或者一些特定的场景,还有一些特殊的发布方式。

功能开关发布

利用代码中的功能开关(Feature Flag/Toggle/Switch)来控制发布逻辑,一般不需要复杂的发布工具和智能 LB 配合,是一种相对比较低成本和简单的发布方式。这种方式也是支持现代 DevOps 理念,研发人员可以灵活定制和自助完成的发布方式。功能开关的原理如下图所示:

灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?

1. 部署过程

功能开关发布需要一个配置中心或者开关中心这样的服务支持,例如携程的 Apollo 配置中心或者开源的 FF4J,这些都支持开关发布。业界还有专门的功能开关 SaaS 服务,例如 LaunchDarkly。通过配置中心,运维或研发人员可以在运行期动态配置功能开关的值。当然,功能开关发布只是配置中心的一种使用场景,配置中心还能支持其它很多动态配置场景。

功能开关服务一般提供客户端 SDK,方便开发人员集成。在运行期,客户端 SDK 会同步最新的开关值,技术实现有推方式 (push),也有拉方式 (pull),或者推拉结合方式。

新功能(V2 new feature)和老功能(V1 old feature)住在同一套代码中,新功能隐藏在开关后面,如果开关没有打开,则走老代码逻辑,如果开关打开,则走新代码逻辑。技术实现上可以理解为一个简单的 if/else 逻辑。

应用上线后,开关先不打开,然后运维或研发人员通过开关中心打开新功能,经过流量验证新功能没有问题,则发布完成;如果有问题,则随时可以通过开关中心切回老功能逻辑。

2. 优势和不足

优势

升级切换和回退速度非常快。

相对于复杂的发布工具,实施比较简单,成本相对低廉。

研发能够灵活定制发布逻辑,支持 DevOps 自助发布。

不足

切换是全量的,如果 V2 版本有问题,则对用户体验有直接影响。

对代码有侵入,代码逻辑会变复杂,需要定期清理老版本逻辑,维护成本变高。

1.《黑与白2修改器 灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《黑与白2修改器 灰度、蓝绿、ABtest发布等部署方案对比,说说你们的发布方式?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/583782.html

上一篇

灰鹅 灰鹅饲养方法和管理技术养鹅和经验

下一篇

姑墨王子 2020新疆姑墨古国遗址旅游攻略 姑墨古国遗址门票交通天气

微信升级新版本 微信新版本新增哪些功能 微信新版本功能介绍【图文】

1月31日,微信iOS版6.6.2正式推出,这一版本最大的变化就是在本地可以添加两个常登录账号,添加后可一键切换登录。  继iOS版本更新之后,安卓版本在2月1日也正式亮相,功能和iOS版完全一致...

wiboxls最新版本是多少 wiboxls是什么软件 wiboxls如何下载视频

WiBoxls是一个视频播放软件,老司机和宅男必备的视频播放器,WiBoxls拥有海量的视频资源,你想看的都会有,轻松一搜即可在线观看,给你不一样的观影体验。在电脑上大家都知道通过搜索种子来下载想...

橘生淮南 暗恋橘生淮南有几个版本

橘生淮南 暗恋橘生淮南有几个版本

《暗恋橘生淮南》有两个版本,一个是赵顺然、朱颜曼滋主演的网剧版,另一个是胡一天、胡冰卿主演的电视剧版。《暗恋橘生淮南》是“振华三部曲”的最后一部,讲述的是洛枳和盛淮南之间的故事,洛枳从高中时就暗恋...

多啦a梦大结局国语版 哆啦a梦的大结局是什么揭晓 多个版本都不是真相

  • 多啦a梦大结局国语版 哆啦a梦的大结局是什么揭晓 多个版本都不是真相
  • 多啦a梦大结局国语版 哆啦a梦的大结局是什么揭晓 多个版本都不是真相
  • 多啦a梦大结局国语版 哆啦a梦的大结局是什么揭晓 多个版本都不是真相

如何查看手机型号 怎么查看手机型号、配置、版本【图文教程】

  • 如何查看手机型号 怎么查看手机型号、配置、版本【图文教程】
  • 如何查看手机型号 怎么查看手机型号、配置、版本【图文教程】
  • 如何查看手机型号 怎么查看手机型号、配置、版本【图文教程】
安卓最新系统 安卓系统最新版本是多少

安卓最新系统 安卓系统最新版本是多少

安卓系统最新版本是多少  安卓系统最新版本是多少?最近,谷歌正式推出了安卓6.0系统,目前,已经有多款手机已经推出了安卓6.0系统的更新,现在一起来了解安卓6.0的详细情况。  安卓系统最新版本是...

80后语文课本全册 求语文课本目录或版本我是1984年出生的,现在25岁了,忽然很怀念很怀念我从小学到初中以及高中所学的那些语文课本中的文章

题目:求语文课本目录或版本我是1984年出生的,现在25岁了,忽然很怀念很怀念我从小学到初中以及高中所学的那些语文课本中的文章,很想在空闲的时候再读读那些文章,不管是小学的,还是初中的,还是高中的...

《建筑给水排水及采暖工程施工质量验收规范》 《建筑给水排水及采暖工程施工质量验收规范》最新版本

《建筑给水排水及采暖工程施工质量验收规范》 《建筑给水排水及采暖工程施工质量验收规范》最新版本

3.2.1建筑给水、排水及采暖工程所使用的主要材料、成品半成品、配件、器具和设备必须具有中文质量合格证明文件,规格、型号及性能检测报告应符合国家技术标准或设计要求。进场时应做检查验收,并经监理工程...