互联网公司都在用的发布方式——灰度发布!

在如今的互联网时代,大厂都是采用灰度发布的策略进行应用线上部署的。如果身在小公司的测试同学想进入大厂,那么灰度发布就是大家必须要了解的知识点了!希望通过本文能够帮助大家快速的理解什么是灰度发布,并让大家了解研发,运维,测试,运营是如何在这一策略下开展实际工作的。

灰度发布定义

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


马化腾的灰度机制是这样的:很多公司在一开始做产品定义时,要么确定它是黑的,要么确定它是白的。但是马化腾发现,互联网产品的定义是有用户投票决定的。在一开始,我们不定义它是黑,还是白,有一个灰度的周期。在这个灰度周期里,让用户的口碑决定它是生是死,是白还是黑。

灰度发布具体流程

灰度发布具体流程如下所示:


灰度发布流程细节如下:

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

2.如果测试没有问题,那么可以将少量的用户流量导入到新版本上,然后再对新版本做运行状态观察,收集各种运行时数据,如果此时对新旧版本做各种数据对比,就是所谓的A/B测试。

3.当确认新版本运行良好后,再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力。直到将100%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。如果在灰度发布过程中发现了新版本有问题,就应该立即将流量切回老版本上,这样,就会将负面影响控制在最小范围内。具体流程如下图所示:


为什么做灰度发布

1、灵活选择用户参与产品测试。

2、规避一定的发布风险,降低产品迭代升级所影响的范围。

3、快速获取用户的反馈意见,完善产品功能,提升产品质量。

4、避免停服发布给用户带来不便。

5、具有容灾能力:降低全量发布引起的服务器崩溃等风险,逐步发布产品,逐步控制服务器压力。

灰度发布重点

定义目标

1.新功能验证(看这个新功能的指标是否能达到预期,或者是否会对产品造成损失,大多数是这个目的)

2.新功能尝试(看这个功能是否符合用户需求,不符合则下线)

选定灰度策略

用户选择:地理位置、使用终端

功能覆盖度:逐步功能开放还是全部功能开放

提供用户数据反馈入口,让运营人员能够及时了解用户反馈

公关运营

筛选用户

用户范围:内部用户 >活跃用户 >所有用户。

灰度发布上线

设定分流规则

灰度发布新版本

运营数据采集分析

分流规则微调

灰度发布>产品完善>新一轮灰度发布>完整发布

灰度发布问题

1、以偏概全

选择的样本不具有代表性,样本用户使用习惯并没有涉及所有升级的核心功能。

2、无法定量分析

结果没有量化手段,只依赖用户问卷调查,没有分析灰度系统。

运营数据不全面,只有核心业务指标,没有用户体验指标等。

3、用户参与度不够

如果用户参与度不够就很难对灰度版本的优劣进行分析评价

具体实施

运维同学

方式一,利用nginx配置负载控制

方式二,使用http头信息判断+权重(灰度值)

http请求传输过程中,会自动带上User-Agent,Host,Referer,Cookie等信息。我们需要分析ip地址段,用户代理,Cookie中的信息。根据Cookie查询version值,如果该version值为v1转发到host1,为v2转发到host2,都不匹配的情况下转发到默认配置。

方式三,使用灰度发布工具

从长远来看需要使用工具作灰度发布,业界相关工具包括:阿里acm、NepxionDiscovery、Istio

研发同学

1.版本控制

通过切换不同分支来选择上线的版本并制定打版回退策略

2.代码开关

一套代码,通过代码开关控制新功能上线与否。利用代码中的功能开关来控制发布逻辑,一般不需要复杂的发布工具和智能 LB 配合,是一种相对比较低成本和简单的发布方式。研发人员可以灵活定制和自助完成的发布方式。实现过程如下:

功能开关发布需要一个配置中心,通过配置中心,运维或研发人员可以在运行期动态配置功能开关的值。

新功能和老功能在同一套代码中,新功能隐藏在开关后面,如果开关没有打开,则走老代码逻辑,如果开关打开,则走新代码逻辑。

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

运营同学

监控新功能使用情况,是否使用频繁

用户满意度的监控,带来了新用户?导致老用户卸载?

测试同学

除了正常功能以外,还要确保每一台服务器上的应用功能都是可用的(灰度时验证,全部上线时还需验证)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342