??? 在傳統(tǒng)軟件產(chǎn)品發(fā)布過程中(例如微軟的Windows 7的發(fā)布過程中),一般都會經(jīng)歷Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等幾個階段(參考 Software release life cycle )。可以看出傳統(tǒng)軟件的發(fā)布階段是從公司內(nèi)部->外部小范圍測試>外部大范圍測試->正式發(fā)布,涉及的用戶數(shù)也是逐步放量的過程。
??? 在互聯(lián)網(wǎng)產(chǎn)品的發(fā)布過程中也較多采用此種發(fā)布方式:產(chǎn)品的發(fā)布過程不是一蹴而就,而是逐步擴大使用用戶的范圍,從公司內(nèi)部用戶->忠誠度較高的種子 用戶->更大范圍的活躍用戶->所有用戶。在此過程中,產(chǎn)品團(tuán)隊根據(jù)用戶的反饋及時完善產(chǎn)品相關(guān)功能。此種發(fā)布方式,按照中國特色的叫法被冠 以”灰度發(fā)布“、”灰度放量“、”分流發(fā)布“。
??? 關(guān)于“灰度發(fā)布”叫法的來源無從考察。只不過按照中國傳統(tǒng)哲學(xué)的說法來看,很符合中國人中庸的思維模式:自然界所有的事物總是以對稱、互補、和諧的形式存 在,例如黑與白、陰與陽、正與負(fù)、福與禍。在二元對立的元素間存在相互過渡的階段,所謂”禍兮福所倚,福兮禍所伏“。具體到黑與白,在非黑即白中間還有中 間色——灰色。于是出現(xiàn)了很多關(guān)于灰色的說法:灰盒測試,灰色管理(極力推薦 任正非:管理的灰度 ),灰色收入,灰色地帶等等。因此對于灰度發(fā)布實際上就是從不發(fā)布,然后逐漸過渡到正式發(fā)布的一個過程。
1、灰度發(fā)布的作用
- 及早獲得用戶的意見反饋,完善產(chǎn)品功能,提升產(chǎn)品質(zhì)量
- 讓用戶參與產(chǎn)品測試,加強與用戶互動
- 降低產(chǎn)品升級所影響的用戶范圍
- 。。。
2、灰度發(fā)布的步驟
? 1)、定義目標(biāo)
? 2)、選定策略:包括用戶規(guī)模、發(fā)布頻率、功能覆蓋度、回滾策略、運營策略、新舊系統(tǒng)部署策略等
? 3)、篩選用戶:包括用戶特征、用戶數(shù)量、用戶常用功能、用戶范圍等
? 4)、部署系統(tǒng):部署新系統(tǒng)、部署用戶行為分析系統(tǒng)(web analytics)、設(shè)定分流規(guī)則、運營數(shù)據(jù)分析、分流規(guī)則微調(diào)
? 5)、發(fā)布總結(jié):用戶行為分析報告、用戶問卷調(diào)查、社會化媒體意見收集、形成產(chǎn)品功能改進(jìn)列表
? 6)、產(chǎn)品完善
? 7)、新一輪灰度發(fā)布或完整發(fā)布
3、常見問題
? 3.1)、以偏概全
???????? 1)、 問題特征:
????????????? a、選擇的樣本不具有代表性;
????????????? b、樣本具有代表性,但選擇樣本用戶使用習(xí)慣并沒有涵蓋所有核心功能
???????? 2)、
解決方案
:
????????????? 樣本選擇要多樣化,樣本的組合涵蓋大部分核心功能
? 3.2)、知識的詛咒
??????? ”知識的詛咒“的說法來自《粘住》中實驗,具體可以自己搜索一下。我們自己對于自己開發(fā)的產(chǎn)品極為熟悉,于是乎想當(dāng)然認(rèn)為用戶也應(yīng)當(dāng)能夠理解產(chǎn)品的設(shè)計思路、產(chǎn)品的功能使用。
???????? 1)、問題特征:
?????????????? a、結(jié)果沒有量化手段;
?????????????? b、只依賴于用戶問卷調(diào)查;
?????????????? c、沒有web analytics系統(tǒng);
?????????????? d、運營數(shù)據(jù)不全面,只有核心業(yè)務(wù)指標(biāo)(例如交易量),沒有用戶體驗指標(biāo)
?????????????? e、對結(jié)果分析,只選擇對發(fā)布有利的信息,對其他視而不見
?????????
2)、解決方案:
?????????????? a、產(chǎn)品設(shè)計考慮產(chǎn)品量化指標(biāo)
?????????????? b、結(jié)果分析依據(jù)量化指標(biāo)而不是感覺
? 3.3)、發(fā)布沒有回頭路可走
??????? 1)、問題特征:
????????????? a、新舊系統(tǒng)用戶使用習(xí)慣差異太大,沒有兼容原有功能
????????????? b、新舊系統(tǒng)由于功能差異太大,無法并行運行,只能強制升級
????????????? c、新系統(tǒng)只是實現(xiàn)了舊系統(tǒng)部分功能,用戶要完整使用所有功能,要在 在新舊系統(tǒng)切換
????????????? d、新舊系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)差異太大,無法并行運行
???????? 2)、解決方案:
????????????? 前期產(chǎn)品策劃重點考慮這些問題,包括:
????????????????? 回滾方案、 新舊系統(tǒng)兼容方案、用戶體驗的一致性、用戶使用習(xí)慣的延續(xù)性、新舊系統(tǒng)數(shù)據(jù)模型兼容性
? 3.4)、用戶參與度不夠
???????? 1)、問題特征:
???????????????? a、指望用戶自己去挖掘所有功能。對于一個產(chǎn)品,大部分用戶經(jīng)常只使用部分功能,用戶大部分也很懶惰,不會主動去挖掘產(chǎn)品功能
???????????????? b、互動渠道單一
???????????????? c、陷入“知識的詛咒”,不尊重參與用戶意見
???????
2)、解決方案:
??????????????? a、善待吃螃蟹的樣本用戶,包括給予參與測試的用戶小獎勵(例如MS給參與Win7測試用戶正版License)、給用戶冠以title
??????????????? b、通過郵件、論壇、社區(qū)、Blog、Twitter等新媒體與用戶形成互動
??????????????? c、提供產(chǎn)品功能向?qū)АT趆otmail最近的升級后的功能tip,gmail的tip都有類似的產(chǎn)品功能導(dǎo)向。在產(chǎn)品中會提示類似于:你知道嗎,xx還提供xx功能,通過它你可以xx 。
?
4、灰度發(fā)布? VS.? A/B測試
??? 灰度發(fā)布于互聯(lián)網(wǎng)公司常用A/B測試似乎比較類似,老外似乎并沒有所謂的灰度發(fā)布的概念。按照wikipedia中對 A/B測試的定義 ,A/B測試又叫:A/B/N Testing、Multivariate Testing,因此本質(zhì)上灰度測試可以算作A/B測試的一種特例。只不過為了術(shù)語上不至于等同搞混淆,談?wù)勛约豪斫獾膬烧叩牟町悺?
??? 灰度發(fā)布是對某一產(chǎn)品的發(fā)布逐步擴大使用群體范圍,也叫灰度放量
??? A/B測試重點是在幾種方案中選擇最優(yōu)方案
?? 關(guān)于A/B測試可以參考這篇文章: A/B測試終極指南
5、灰度發(fā)布引擎
?? 對于一般的小系統(tǒng)并不需要單獨的灰度發(fā)布引擎,可以參考A/B測試中做法,在頁面javascript或服務(wù)器端實現(xiàn)分流的規(guī)則即可。但對于大型的互聯(lián)網(wǎng)應(yīng)用而言,單獨的用于管理用戶分流的發(fā)布引擎就很有必要了。 “錢掌柜”分流發(fā)布模式 提到了原來阿里軟件所使用的灰度發(fā)布引擎,設(shè)計思路具有普遍性,可以供參考
6、參考文檔
?? A/B testing
?? A/B測試終極指南
復(fù)雜事件處理(Complex Event Processing)入門1
??? 一個新產(chǎn)品需要重點考慮業(yè)務(wù)風(fēng)險控制。關(guān)于風(fēng)險控制系統(tǒng)整體的技術(shù)方案可以參考 支付系統(tǒng)風(fēng)控系統(tǒng)建設(shè)思考 。此方案盡管能夠滿足業(yè)務(wù)需求,但對于海量交易數(shù)據(jù)分析、風(fēng)險事件的實時處理、大量的風(fēng)險規(guī)則處理上,在實時性、性能、架構(gòu)的可擴展性上都不是很理想,有必要重新從架構(gòu)上考慮一下實現(xiàn)方案。
?? 一般而言,風(fēng)險控制系統(tǒng)標(biāo)準(zhǔn)的軟件架構(gòu)如下:
?
1、風(fēng)控系統(tǒng)實現(xiàn)的幾種方案
?? 1)、數(shù)據(jù)庫方案:將風(fēng)險規(guī)則、交易數(shù)據(jù)等都采用關(guān)系數(shù)據(jù)庫存放。正如 支付系統(tǒng)風(fēng)控系統(tǒng)建設(shè)思考 所 提到的方案,交易庫和風(fēng)險庫一般分別部署在不同的服務(wù)器上,在事件觸發(fā)上可以采用數(shù)據(jù)庫觸發(fā)器、消息隊列事件等方案。此種方案技術(shù)實現(xiàn)相對簡單,但在進(jìn)行 海量交易數(shù)據(jù)查詢以及大量風(fēng)險規(guī)則處理時候,數(shù)據(jù)庫系統(tǒng)查詢性能及擴展性成為一個較大的瓶頸。很難滿足風(fēng)險事件實時分析的要求。
?? 2)、內(nèi)存數(shù)據(jù)庫方案:由于對海量交易數(shù)據(jù)的查詢、分析極其消耗數(shù)據(jù)庫資源,可以采用內(nèi)存數(shù)據(jù)庫方案來替代關(guān)系數(shù)據(jù)庫,保證風(fēng)險事件實時處理的性能。 但目前開源的內(nèi)存數(shù)據(jù)中VoltDB、H2、MonetDB、FastDB、Berkeley DB、SQLite等在大規(guī)模的業(yè)務(wù)場合應(yīng)用的成熟度尚待考察,而Oracle TimesTen、MCObject eXtremeDB、Altibase價格太高。
?? 3)、分布式緩存方案:采用Memcached等NOSQL的分布式緩存來緩存交易數(shù)據(jù)、風(fēng)險規(guī)則等,但由于NOSQL解決方案并不擅長數(shù)據(jù)間的關(guān)系邏輯處理,需要在程序中大量維護(hù)業(yè)務(wù)處理邏輯,遠(yuǎn)不如關(guān)系數(shù)據(jù)庫或內(nèi)存數(shù)據(jù)庫方案方便。
? 以上方案,都可以通過規(guī)則引擎(例如drools)來完成風(fēng)險規(guī)則的管理和維護(hù),避免了風(fēng)險規(guī)則維護(hù)的繁瑣及規(guī)則間復(fù)雜關(guān)系處理。
?
2、Complex Event Processing (復(fù)雜事件處理)
??? Complex Event Processing (復(fù)雜事件處理)是一種新興的基于事件流的技術(shù),它將系統(tǒng)數(shù)據(jù)看作不同類型的事件,通過分析事件間的關(guān)系,建立不同的事件關(guān)系序列庫,利用過濾、關(guān)聯(lián)、聚 合等技術(shù),最終由簡單事件產(chǎn)生高級事件或商業(yè)流程。CEP適合的場景包括實時風(fēng)險管理、實時交易分析、網(wǎng)絡(luò)詐欺、網(wǎng)絡(luò)攻擊、市場趨勢分析等等。
??? CEP的幾大特點:
- 基于數(shù)據(jù)流
- 時間序列
- 實時
- 復(fù)雜
?????????????????? 數(shù)據(jù)庫方案與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/
??? 其他產(chǎn)品或開源項目,可以參考: Complex Event Processing Vendors
? 其中Esper和Drools Fusion很值得考慮,后續(xù)作為重點研究對象。
?
4、參考資料
??? 輕松理解復(fù)合事件處理
??? Esper:CEP Engine
??? Complex Event Processing:An attempt at clarity on an often confusing topic
??? Sybase CEP:新穎的數(shù)據(jù)流分析平臺
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
