1、灰度发布,郭红俊 2013-11-20,目录,灰度发布概述: 什么是灰度发布 灰度发布的例子 灰度发布的好处,适用场景 阿里巴巴-钱掌柜发布流程 灰度发布步骤 常见问题 以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不够,什么是灰度发布,灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。,灰度发布的例子,Microsoft在推出Windows或F
2、ramework之前一般先出预览版; Napster放出2W音乐下载beta测试账号引来300W用户注册疯抢。 GMail正式发布前的测试账号在eBay上叫拍200美元; Gmail Labs 这是一个新特性橱窗,用户可以自己选择一些未正式发布的新特性进行体验,不喜欢可以关闭,在这个过程中,吃了螃蟹,也当了Google的小白鼠。 Qzone 用户数据的升级并不是大面积的一次性升级,而是通过一个用户升级标志服务器,如果用户数据没有升级,后台会把此用户的数据逐步迁移到新版本上,然后将升级标志位置1,升级过程中,用户仍然可以访问旧的数据,升级完成后的访问都将转发给新的版本。,灰度发布的好处,缩小可能
3、风险的波及范围, 比如新推产品或功能,容易出现用户体验不爽或者性能低下等不足;尽早吸收用户的反馈, 产品不必100%完美才推出,可以先让部分用户试用,分析用户行为或汲取用户反馈后,再采取快速步骤改进产品;提高产品的最终质量, 分流发布等于除了QA测试外再扩大测试人群的范围,我们让更多的忠实用户直接参与测试,让更多双眼睛来发现隐藏的缺陷;程序升级更加有序和自动化, 以往如果升级涉及复杂的数据变动,很有可能需要停机处理,但如果是以分流发布的方式,逐批更新升级,或由用户触发,就可以实现不停机处理;,哪些场景适合灰度发布,新产品或大项目初次发布时; 业务策略不明确拿不准时; 面向特定用户群体时; 大范
4、围升级时; 问题:哪些场景不适合灰度发布?,灰度部署典型框架,阿里巴巴-钱掌柜分流发布,对于一般的小系统并不需要单独的灰度发布引擎,可以参考A/B测试中做法,在页面javascript或服务器端实现分流的规则即可。但对于大型的互联网应用而言,单独的用于管理用户分流的发布引擎就很有必要了。,灰度发布步骤,1、定义目标,产品一般都会有明确的产品目标,灰度发布的过程通常把产品关键数据走势是否有利于既定目标的达成作为进一步进行放量的重要参考, 如果灰度产品在目标数值超过未灰度用户,且产品在性能指标方面趋于稳定,例如崩溃率控制在一个合理范围,用户访问速度也在预计范围,则考虑继续放量。,2. 制订发布策略
5、,包括用户规模、发布频率、功能覆盖度、风险评估与回滚策略、运营策略、新旧系统部署策略等。 简单说,就是我们要分几个批次进行用户覆盖,多长时间覆盖完成,每次间隔多长时间。评估每次发布有可能面临的风险,例如服务器带宽的支持能力、产品形态差异而导致的用户不适应、用户路径是否通畅,内容运营是否能及时更新等。 如果产品发生重大问题,是否能迅速回滚到上一个版本。 运营策略,包含了新品上线的内容运营策略,能有效的组织内容,有效的让用户感知;官方消息渠道建立,例如官网、官方论坛、官方微博、微信公众账号;媒体公关策略,例如广告、软文、事件炒作、媒体联系等。,3. 选定用户,包括用户特征、用户数量、用户常用功能、
6、用户范围等。 一般的灰度用户选择都是从本公司内测开始,其次是高级别高忠诚度的用户,然后是高活跃用户,最后再到普通用户。 有些产品会把新版本的优先使用包装为会员特权使用。例如QQ用户产品的发布,有些从QQ会员开始优先体验,而且是QQ会员LV5以上。相信不少人会记得当年QQ农场火爆的时候,一些新玩法的推出,从黄钻LV7开始逐步放量。 互联网行业内的从业人员经常也会被作为首批灰度发布的用户,以产品经理、开发工程师、设计师、互联网爱好者为主。由于职业的关系,这几类人群高度关注互联网的动向,且年龄较轻,对新事物有强烈的好奇心。,4. 系统部署,部署新系统、部署用户行为分析系统(web analytics
7、)、设定分流规则、运营数据分析、分流规则微调等。 这里的运营数据部署,建议进行实时数据统计与报表展示,便于及时观测产品数据变化,快速发现问题解决问题。,5. 反馈收集与发布分析,用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表。 用户的反馈,一般从用户论坛获取,从产品自带的反馈提交获取,从产品官方微博获取,无论是哪个渠道,都要考量这些反馈建议的代表性。 用户反馈建议的收集整理输出,每天至少一次,产品运营数据报告同样按天发出。,6. 产品迭代,产品永远是不完美的,灰度过程是推动产品快速优化的有效手段,产品经理必须客观的对待用户的反馈,分析产品目标数据、用户行为数据等,拿出
8、合理的优化方案,推动优化开发,再进行下一轮灰度或者完整发布。,常见问题,以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不够,常见问题:以偏概全,问题特征: 选择的样本不具有代表性; 样本具有代表性,但选择样本用户使用习惯并没有涵盖所有核心功能解决方案: 样本选择要多样化,样本的组合涵盖大部分核心功能,灰度发布要素:用户标示,用于区分用户,辅助数据统计,保证灰度发布过程中用户体验的连贯性(避免用户在新旧版本中跳变,匿名Web应用比较容易有这个问题)。 匿名Web应用可采用IP、Cookie等, 需登录的应用可直接采用应用的帐号体系。问题:用Cookie如何标示用户?,灰度发布要素:目标用户
9、选取策略,即选取哪些用户先行体验新版本,是强制升级还是让用户自主选择等。 可考虑的因素很多,包括但不限于地理位置、用户终端特性(如分辨率、性能)、用户自身特点(性别、年龄、忠诚度等)。 对于细微修改(如文案、少量控件位置调整)可直接强制升级,对于类似新浪微博改版这样的大型升级,应让用户自主选择,最好能够提供让用户自主回滚至旧版本的渠道。对于客户端应用,可以考虑类似Chrome的多channel升级策略,让用户自主选择采用stable、beta、unstable channel的版本。在用户有明确预期的情况下自行承担试用风险。,利用nginx+lua+memcache 实现灰度发布,用户登录以后
10、,后台程序根据设定的规则将特定属性的用户IP写到memcached,那么登录过后用户的请求就会分发到灰度测试的主机了。,常见问题,以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不够,常见问题:知识的诅咒,“知识的诅咒”的说法来自粘住中实验。 我们自己对于自己开发的产品极为熟悉,于是乎想当然认为用户也应当能够理解产品的设计思路、产品的功能使用。问题特征: 结果没有量化手段; 只依赖于用户问卷调查; 没有web analytics系统; 运营数据不全面,只有核心业务指标(例如交易量),没有用户体验指标 对结果分析,只选择对发布有利的信息,对其他视而不见解决方案: 产品设计考虑产品量化指标 结
11、果分析依据量化指标而不是感觉,灰度发布要素:数据反馈,用户数据反馈: 在得到用户允许的前提下,收集用户的使用新版本应用的情况。如:客户端性能、客户端稳定性、使用次数、使用频率等。 用于与旧版本进行对比,决策后续是继续扩大新版本投放范围还是回滚。服务端数据反馈: 新版本服务端性能、服务端稳定性等,作用与用户数据反馈类似。,灰度发布要素: 新版本公关运营支持,显式反馈与隐式反馈: 对于改版级别的大型升级,需要配合公关运营支持,用于及时处理用户在微博、博客等渠道给出的“显式反馈”。 对比通过隐式数据反馈得到的结论后,综合考虑应对策略。,常见问题,以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不
12、够,常见问题:发布没有回头路可走,问题特征: 新旧系统用户使用习惯差异太大,没有兼容原有功能 新旧系统由于功能差异太大,无法并行运行,只能强制升级 新系统只是实现了旧系统部分功能,用户要完整使用所有功能,要在 在新旧系统切换 新旧系统数据库数据结构差异太大,无法并行运行解决方案: 前期产品策划重点考虑这些问题,包括: 回滚方案、 新旧系统兼容方案、 用户体验的一致性、 用户使用习惯的延续性、 新旧系统数据模型兼容性,灰度发布要素:新版本回滚策略,当新版本灰度发布表现不佳时,应回滚至旧版本。 对于纯粹的Web应用而言,回滚相对简单。主要难点在于用户数据的无缝切换。 对于客户端应用,如果期待用户自
13、行卸载新版本另行安装旧版本,成本和流失率都太高。可以考虑通过快速另行发布新版本,利用升级来“回滚”,覆盖上次灰度发布的修改。对于移动客户端, 新版本发布成本较高,需要Appstore、Market审核。,常见问题,以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不够,常见问题:用户参与度不够,问题特征: 指望用户自己去挖掘所有功能。对于一个产品,大部分用户经常只使用部分功能,用户大部分也很懒惰,不会主动去挖掘产品功能 互动渠道单一 陷入“知识的诅咒”,不尊重参与用户意见解决方案: 善待吃螃蟹的样本用户,包括给予参与测试的用户小奖励(例如MS给参与Win7测试用户正版License)、给用户冠以title 通过邮件、论坛、社区、Blog、Twitter等新媒体与用户形成互动 提供产品功能向导。在hotmail最近的升级后的功能tip,gmail的tip都有类似的产品功能导向。在产品中会提示类似于:你知道吗,xx还提供xx功能,通过它你可以xx 。,总结,灰度发布概述: 什么是灰度发布 灰度发布的例子 灰度发布的好处,适用场景 阿里巴巴-钱掌柜发布流程 灰度发布步骤 常见问题 以偏概全 知识的诅咒 发布没有回头路可走 用户参与度不够,FAQ问答时间,