灰度發(fā)布
文檔狀態(tài) | [?] 草稿?[?]?正式發(fā)布?[ √ ]正在修改 |
---|---|
文檔版本號 | v1.1 |
文檔密級 | 內(nèi)部資料 |
歸屬部門 | 武漢極目未來數(shù)據(jù)科技有限公司 |
產(chǎn)品名 | 極目農(nóng)業(yè)植保運營系統(tǒng) |
子系統(tǒng)名 | 地面站 |
更新日志:
日期 | 版本 | 變更記錄 | 作者 |
---|---|---|---|
2018/05/30 | v1.0 | 編寫初版 | 余明旭 |
2018/05/31 | v1.1 | 調(diào)整服務(wù)單實施流程 | 余明旭 |
2018/08/21 | v1.2 | 完善服務(wù)端缰趋、地面站實現(xiàn)流程 | 余明旭 |
2018/08/22 | v1.3 | 完善新增接口 | 余明旭 |
2018/08/22 | v1.4 | 1财忽、灰度發(fā)布身份識別userId變更為IMEI 2愧旦、灰度版本直接由后臺控制,無需告知用戶 3定罢、取消版本分布表創(chuàng)建 4笤虫、新增版本更新流程圖 | 余明旭 |
一、定義
按照一定策略選取部分用戶祖凫,讓他們先行體驗新版本的應(yīng)用琼蚯,通過收集這部分用戶對新版本應(yīng)用的反饋以及對新版本功能、性能惠况、穩(wěn)定性等指標進行評估遭庶,進而決定繼續(xù)放大新版本投放范圍直至全量升級或回滾至老版本。
二稠屠、目的
1)規(guī)避一定的發(fā)布風險峦睡,降低產(chǎn)品迭代升級所影響的范圍。
2)根據(jù)反饋結(jié)果权埠,做到查漏補缺
3)快速驗證產(chǎn)品功能穩(wěn)定性
4)發(fā)現(xiàn)重大問題榨了,可回滾“舊版本”
三、實現(xiàn)步驟
3.1攘蔽、定義目標
a. 產(chǎn)品一般都會有明確的產(chǎn)品目標龙屉,灰度發(fā)布的過程通常把產(chǎn)品關(guān)鍵數(shù)據(jù)走勢是否有利于既定目標的達成作為進一步進行放量的重要參考,
b. 如果灰度產(chǎn)品在目標數(shù)值超過未灰度用戶满俗,且產(chǎn)品在性能指標方面趨于穩(wěn)定转捕,例如崩潰率控制在一個合理范圍作岖,用戶訪問速度也在預(yù)計范圍,則考慮繼續(xù)放量五芝。
3.2痘儡、制訂發(fā)布策略
包括用戶規(guī)模、發(fā)布頻率枢步、功能覆蓋度谤辜、風險評估與回滾策略、運營策略价捧、新舊系統(tǒng)部署策略等。
簡單說涡戳,就是我們要分幾個批次進行用戶覆蓋结蟋,多長時間覆蓋完成,每次間隔多長時間渔彰,評估每次發(fā)布有可能面臨的風險嵌屎。
如果產(chǎn)品發(fā)生重大問題,是否能迅速回滾到上一個版本恍涂。
3.3宝惰、選定用戶
包括用戶特征、用戶數(shù)量再沧、用戶常用功能尼夺、用戶范圍等。
一般的灰度用戶選擇都是從本公司內(nèi)測開始炒瘸,其次是高級別高忠誠度的用戶淤堵,然后是高活躍用戶,最后再到普通用戶顷扩。
3.4拐邪、系統(tǒng)部署
部署新系統(tǒng)、設(shè)定分流規(guī)則隘截、運營數(shù)據(jù)分析扎阶、分流規(guī)則微調(diào)等。
這里的運營數(shù)據(jù)部署婶芭,建議進行實時數(shù)據(jù)統(tǒng)計與報表展示东臀,便于及時觀測產(chǎn)品數(shù)據(jù)變化,快速發(fā)現(xiàn)問題解決問題犀农。
3.5啡邑、反饋收集與發(fā)布分析
用戶行為分析報告、錯誤統(tǒng)計反饋情況等可形成下次灰度發(fā)布的功能改進列表井赌。
用戶的反饋谤逼,從產(chǎn)品自帶的反饋提交獲取贵扰,無論是哪個渠道,都要考量這些反饋建議的代表性流部。用戶反饋建議的收集整理輸出戚绕,每天至少一次,灰度期間的主要觀測數(shù)據(jù)報告需按天發(fā)出枝冀。
3.6舞丛、產(chǎn)品迭代
灰度過程是推動產(chǎn)品快速優(yōu)化的有效手段,產(chǎn)品經(jīng)理必須客觀的對待用戶的反饋果漾,分析產(chǎn)品目標數(shù)據(jù)球切、用戶行為數(shù)據(jù)等,拿出合理的優(yōu)化方案绒障,推動優(yōu)化開發(fā)吨凑,再進行下一輪灰度或者完整發(fā)布。
四户辱、需求涉及流程
方案一.服務(wù)端控制
許針對部分用戶推送升級通知甚至版本強制升級鸵钝。
無論哪種方法都需要做好版本管理工作,分配特別的版本號以示區(qū)別庐镐。
當然恩商,既然是做灰度,數(shù)據(jù)監(jiān)控(常規(guī)數(shù)據(jù)必逆、新特性數(shù)據(jù)怠堪、主要業(yè)務(wù)數(shù)據(jù))
還有,灰度版最好有收回的能力名眉,一般就是強制升級下一個正式版研叫。
方案二.客服端+服務(wù)端控制
客戶端在打包的時候,將A功能B功能都打進同一個版本的Apk包里璧针,然后在代碼層寫控制顯示邏輯嚷炉。后臺接口控制當前版本顯示APK上的A/B版本的分布,可以做到指定一部分用戶使用A功能探橱,一部分用戶使用B功能申屹。
服務(wù)器端應(yīng)該有相應(yīng)的報表來顯示A/B版本的數(shù)量和使用效果對比,根據(jù)實時數(shù)據(jù)體現(xiàn)隧膏,再由服務(wù)器端接口控制用戶全部切換到A版本或者B版本哗讥。
五、實施流程
5.1胞枕、服務(wù)端實現(xiàn)
1)新增數(shù)據(jù)表
內(nèi)測白名單表:在確定人員后會從后臺獲取相關(guān)人員信息杆煞,將userid、username、imei錄入到白名單表中.决乎。(人員組成包括測試人員队询、開發(fā)人員、內(nèi)定協(xié)商用戶三種角色。)
2)新增檢查版本更新新接口
調(diào)用地址: /checkVersionV2/
接口用途: 帶灰度發(fā)布版本獲取檢查接口
請求方式: GET
接口邏輯:
1)發(fā)送VersionCode、IMEI給服務(wù)端枷邪,服務(wù)端會進行記錄這兩個值
2)為白名單終端、開放了投放百分比 & 未滿足投放配額脯厨,就進行灰度版本檢查,不存在新版就進行正式版本檢查
3)非白名單終端 -> 關(guān)閉了百分比投放、百分比投放->檢查正式發(fā)布版本
請求參數(shù):
字段名 | 字段類型 | 是否必填(Y/N) | 字段描述 |
---|---|---|---|
platform | String | Y | 平臺(android,ios) |
type | String | Y | 1 地面站 2測繪 3CRM |
channel | String | Y | 發(fā)布渠道(eav) |
versionCode | Number | Y | 版本號 |
imei | String | Y | 國際移動設(shè)備識別碼 |
正常輸出結(jié)果:
{
"code": "000000",
"message": "有新版本,請更新",
"result": {
"apkSize": "18.9",
"publishTime": 1519825101000,
"downloadUrl": "http://whjm-test.oss-cn-beijing.aliyuncs.com/app-firmware/gs/5uno=",
"isForceUpdate": 1,
"versionCode": "200100000",
"updateDetail": "[修復(fù)] 任務(wù)詳情接口添加參考邊信息"
}
}
流程圖:
4)完善后臺apk提交界面
灰度投放規(guī)則如下:
1)當未開啟百分比投放叠聋,只有白名單終端才能夠更新到灰度版本
2)當開啟百分比投放,白名單終端是直接進行灰度版本檢查受裹,非白名單用戶投放百分比滿額后將不再推送灰度版本
3)白名單用戶個數(shù)包含在投放百分比里面碌补,如果百分比配額優(yōu)先達到投放配額,并不影響白名單用戶的灰度版本獲取名斟。
5.2、客戶端實現(xiàn)
1)地面站將版本檢查更新接口提前至登錄界面
2)當?shù)卿洺晒笃敲迹谝淮芜M入主頁面將不會再次請求版本檢查接口
3)在已經(jīng)登錄的情況下砰盐,后面再次打開地面站將會直接進入主頁面,這次將會進行版本檢查
六坑律、客戶端灰度發(fā)布版本號變更規(guī)則
默認情況下版本變更:
1)版本號由9位數(shù)字組成
201005101
2_01_0051_01
主版本-次版本-小版本-灰度版本
灰度發(fā)布版本變更說明:
當前功能開發(fā)的版本為 v2.1.51岩梳,開發(fā)工作結(jié)束,需要發(fā)布第一個灰度版本
灰度次數(shù) | VersionCode | VersionName | 通過 |
---|---|---|---|
1 | 201005101 | v2.1.51_beta1 | false |
2 | 201005102 | v2.1.51_beta2 | false |
3 | 201005103 | v2.1.51_beta3 | true |
如上所示晃择,灰度發(fā)布第三版本運行一段時間后冀值,符合全量更新的指標,則在第三版的代碼的中修改VersionName:v2.1.051_release宫屠,VersionCode不變列疗,生成一個安裝包,發(fā)布一個正式版本浪蹂,供非內(nèi)測用戶下載使用抵栈。
VersionCode | VersionName |
---|---|
201005103 | v2.1.51_release |
七.總結(jié)
1.灰度發(fā)布必須做好版本管理,一旦錯亂將導(dǎo)致一些版本無法回收更新坤次。
2.數(shù)據(jù)的統(tǒng)計古劲,收集,分析缰猴,沒有一個好的數(shù)據(jù)平臺就沒有辦法體現(xiàn)灰度發(fā)布所起到的作用产艾,隨之該功能就失去了意義。