在传统软件产品发布过程中(例如微软的Windows
7的发布过程中),一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General
availability or General Acceptance (GA)等几个阶段(参考Software release life cycle
)。可以看出传统软件的发布阶段是从公司内部->外部小范围测试>外部大范围测试->正式发布,涉及的用户数也是逐步放量的过程。
在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户->忠诚度较高的种子
用户->更大范围的活跃用户->所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,按照中国特色的叫法被冠
以”灰度发布“、”灰度放量“、”分流发布“。
关于“灰度发布”叫法的来源无从考察。只不过按照中国传统哲学的说法来看,很符合中国人中庸的思维模式:自然界所有的事物总是以对称、互补、和谐的形式存
在,例如黑与白、阴与阳、正与负、福与祸。在二元对立的元素间存在相互过渡的阶段,所谓”祸兮福所倚,福兮祸所伏“。具体到黑与白,在非黑即白中间还有中
间色——灰色。于是出现了很多关于灰色的说法:灰盒测试,灰色管理(极力推荐 任正非:管理的灰度
),灰色收入,灰色地带等等。因此对于灰度发布实际上就是从不发布,然后逐渐过渡到正式发布的一个过程。
1、灰度发布的作用
- 及早获得用户的意见反馈,完善产品功能,提升产品质量
- 让用户参与产品测试,加强与用户互动
- 降低产品升级所影响的用户范围
- 。。。
2、灰度发布的步骤
1)、定义目标
2)、选定策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等
3)、筛选用户:包括用户特征、用户数量、用户常用功能、用户范围等
4)、部署系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调
5)、发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表
6)、产品完善
7)、新一轮灰度发布或完整发布
3、常见问题
3.1)、以偏概全
1)、问题特征:
a、选择的样本不具有代表性;
b、样本具有代表性,但选择样本用户使用习惯并没有涵盖所有核心功能
2)、解决方案
:
样本选择要多样化,样本的组合涵盖大部分核心功能
3.2)、知识的诅咒
”知识的诅咒“的说法来自《粘住》中实验,具体可以自己搜索一下。我们自己对于自己开发的产品极为熟悉,于是乎想当然认为用户也应当能够理解产品的设计思路、产品的功能使用。
1)、问题特征:
a、结果没有量化手段;
b、只依赖于用户问卷调查;
c、没有web analytics系统;
d、运营数据不全面,只有核心业务指标(例如交易量),没有用户体验指标
e、对结果分析,只选择对发布有利的信息,对其他视而不见
2)、解决方案:
a、产品设计考虑产品量化指标
b、结果分析依据量化指标而不是感觉
3.3)、发布没有回头路可走
1)、问题特征:
a、新旧系统用户使用习惯差异太大,没有兼容原有功能
b、新旧系统由于功能差异太大,无法并行运行,只能强制升级
c、新系统只是实现了旧系统部分功能,用户要完整使用所有功能,要在 在新旧系统切换
d、新旧系统数据库数据结构差异太大,无法并行运行
2)、解决方案:
前期产品策划重点考虑这些问题,包括:
回滚方案、 新旧系统兼容方案、用户体验的一致性、用户使用习惯的延续性、新旧系统数据模型兼容性
3.4)、用户参与度不够
1)、问题特征:
a、指望用户自己去挖掘所有功能。对于一个产品,大部分用户经常只使用部分功能,用户大部分也很懒惰,不会主动去挖掘产品功能
b、互动渠道单一
c、陷入“知识的诅咒”,不尊重参与用户意见
2)、解决方案:
a、善待吃螃蟹的样本用户,包括给予参与测试的用户小奖励(例如MS给参与Win7测试用户正版License)、给用户冠以title
b、通过邮件、论坛、社区、Blog、Twitter等新媒体与用户形成互动
c、提供产品功能向导。在hotmail最近的升级后的功能tip,gmail的tip都有类似的产品功能导向。在产品中会提示类似于:你知道吗,xx还提供xx功能,通过它你可以xx 。
4、灰度发布 VS. A/B测试
灰度发布于互联网公司常用A/B测试似乎比较类似,老外似乎并没有所谓的灰度发布的概念。按照wikipedia中对A/B测试的定义
,A/B测试又叫:A/B/N Testing、Multivariate Testing,因此本质上灰度测试可以算作A/B测试的一种特例。只不过为了术语上不至于等同搞混淆,谈谈自己理解的两者的差异。
灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量
A/B测试重点是在几种方案中选择最优方案
关于A/B测试可以参考这篇文章:A/B测试终极指南
5、灰度发布引擎
对于一般的小系统并不需要单独的灰度发布引擎,可以参考A/B测试中做法,在页面javascript或服务器端实现分流的规则即可。但对于大型的互联网应用而言,单独的用于管理用户分流的发布引擎就很有必要了。“钱掌柜”分流发布模式
提到了原来阿里软件所使用的灰度发布引擎,设计思路具有普遍性,可以供参考
6、参考文档
“钱掌柜”分流发布模式
百度百科:灰度发布
A/B testing
A/B测试终极指南
一个新产品需要重点考虑业务风险控制。关于风险控制系统整体的技术方案可以参考 支付系统风控系统建设思考
。此方案尽管能够满足业务需求,但对于海量交易数据分析、风险事件的实时处理、大量的风险规则处理上,在实时性、性能、架构的可扩展性上都不是很理想,有必要重新从架构上考虑一下实现方案。
一般而言,风险控制系统标准的软件架构如下:
1、风控系统实现的几种方案
1)、数据库方案:将风险规则、交易数据等都采用关系数据库存放。正如 支付系统风控系统建设思考
所
提到的方案,交易库和风险库一般分别部署在不同的服务器上,在事件触发上可以采用数据库触发器、消息队列事件等方案。此种方案技术实现相对简单,但在进行
海量交易数据查询以及大量风险规则处理时候,数据库系统查询性能及扩展性成为一个较大的瓶颈。很难满足风险事件实时分析的要求。
2)、内存数据库方案:由于对海量交易数据的查询、分析极其消耗数据库资源,可以采用内存数据库方案来替代关系数据库,保证风险事件实时处理的性能。
但目前开源的内存数据中VoltDB、H2、MonetDB、FastDB、Berkeley
DB、SQLite等在大规模的业务场合应用的成熟度尚待考察,而Oracle TimesTen、MCObject
eXtremeDB、Altibase价格太高。
3)、分布式缓存方案:采用Memcached等NOSQL的分布式缓存来缓存交易数据、风险规则等,但由于NOSQL解决方案并不擅长数据间的关系逻辑处理,需要在程序中大量维护业务处理逻辑,远不如关系数据库或内存数据库方案方便。
以上方案,都可以通过规则引擎(例如drools)来完成风险规则的管理和维护,避免了风险规则维护的繁琐及规则间复杂关系处理。
2、Complex Event Processing (复杂事件处理)
Complex Event Processing
(复杂事件处理)是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系序列库,利用过滤、关联、聚
合等技术,最终由简单事件产生高级事件或商业流程。CEP适合的场景包括实时风险管理、实时交易分析、网络诈欺、网络攻击、市场趋势分析等等。
CEP的几大特点:
数据库方案与CEP方案 对比(摘自Sybase CEP方案)
3、开源项目
Esper – Complex Event Processing
http://esper.codehaus.org/
JBoss – Drools Fusion
http://www.jboss.org/drools/drools-fusion.html
Open ESB IEP SE
http://wiki.open-esb.java.net/Wiki.jsp?page=IEPSE
ActiveInsight
http://www.activeinsight.net/
其他产品或开源项目,可以参考:Complex Event Processing Vendors
其中Esper和Drools Fusion很值得考虑,后续作为重点研究对象。
4、参考资料
深入浅出复合事件处理(CEP)
轻松理解复合事件处理
Esper:CEP Engine
Complex Event Processing:An attempt at clarity on an often confusing topic
Sybase CEP:新颖的数据流分析平台
分享到:
相关推荐
### 互联网产品灰度发布流程详解 #### 一、引言 随着互联网技术的快速发展,产品的更新迭代变得越来越频繁。为了降低新版本上线可能带来的风险,确保用户体验不受影响,许多互联网公司采用了灰度发布的方式。灰度...
总的来说,昆山农商银行的互联网应用灰度发布建设实践表明,灰度发布不仅能够有效解决新版本发布时的风险和压力,还能够提升产品的迭代速度和市场竞争力,同时还能提高运维效率和用户满意度。灰度发布的成功实施需要...
2. 背景:在快速迭代的互联网环境中,灰度发布作为一种渐进式部署策略,允许产品团队逐步推出新功能,同时减少对用户的影响,降低系统风险。通过结合lua脚本与nginx服务器,我们可以实现灵活、高效的灰度发布方案。 ...
互联网灰度部署系统解决方案的知识点详细解析: 一、灰度发布概念 灰度发布(又称金丝雀发布)是一种在云计算和互联网服务领域常见的发布策略,其核心思想是在全量部署之前先向部分用户开放新版本,以减少更新过程...
灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。互联网产品的几个特点:用户规模大、...
根据给定文件的信息,本文将深入探讨灰度发布在百度贴吧的应用情况,通过解析许力强分享的内容,进一步理解灰度发布的技术要点及其在贴吧的实际应用案例。 ### 一、关于作者与百度贴吧 #### 1.1 作者介绍 许立强是...
灰度发布是指将新版本的产品或服务逐步推广到全部用户群体的过程。 AB测试的业务价值包括缩短测试周期、减少测试干扰、提高测试准确性和价值、减少用户伤害,降低测试影响。许多公司已经在使用AB测试,例如Google、...
【灰度设计】在移动互联网领域,灰度设计是一...总结来说,灰度设计是移动互联网产品开发中的重要策略,它结合了灰度发布和A/B测试,借助数据分析和PPT模板呈现,实现高效的风险管理、用户体验优化以及商业价值的提升。
易攀科在互联网金融科技领域积累了丰富的技术实践经验,尤其在应用灰度发布方面有独特的理解和应用。灰度发布,也称金丝雀发布,是一种通过逐步推出新版本软件来降低系统升级所带来风险的实践。它允许一部分用户先...
灰度发布是互联网产品发布中的一种风险管理策略,旨在降低新技术、功能上线可能带来的风险和影响。在灰度发布中,产品不是直接面向所有用户全部开放,而是先在部分用户群体中发布,通过这个过程收集数据、监控效果,...
在互联网产品开发中,灰度发布(也称为灰度测试)是一种常用的部署策略,它允许我们在向所有用户推出新功能或更新之前,先将新版本推送给一小部分用户进行测试。这种做法可以有效地降低大规模系统更新带来的风险,...
3. **反馈收集**:灰度发布可以收集早期用户的反馈,帮助产品团队更好地理解用户需求,进而做出调整优化。 #### 四、灰度策略设计 1. **指定白名单**:预先确定一批用户作为灰度用户,通常是内部员工或者特定的...
课程提到的“灰度测试”是互联网产品开发中的一项重要环节,即在产品推向市场前,先在有限的用户群体中进行测试,以收集反馈并改进产品。这个过程通常涉及逐步扩大用户群体的过程,从少量的内测用户,到更大规模的...
灰度测试,又称为A/B测试或分阶段发布,是产品经理在新产品上线前的一种重要测试手段。灰度测试可以控制产品的曝光量,以小范围的用户为测试对象,收集反馈和数据,从而优化产品。在这个过程中,产品经理要关注产品...
包括研发自测、测试检查和灰度发布,旨在找出并修复潜在问题,保证产品质量。 第七步是“上线产品”。产品验收后正式上线,同时编写操作手册,对用户进行产品培训,确保用户能够顺利使用。 第八步是“运营产品”。...
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...
【灰度解决方案】在IT行业中,灰度发布(也称为A/B测试)是一种软件发布策略,它允许在全面推出新功能或...通过灰度发布,企业可以逐步验证新功能的有效性和稳定性,确保为患者、医生和药企提供优质的互联网医疗服务。
在互联网行业中,为了确保产品的稳定性和用户体验,灰度发布已经成为一种重要的部署策略。而ABtesting则是灰度发布中的核心工具,通过它我们可以对新功能或优化进行小规模测试,以验证其效果。在这个名为"gate_...