灰度發(fā)布設(shè)計文檔

灰度發(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)步驟

圖片.png

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ù)詳情接口添加參考邊信息"
    }
}

流程圖:


圖片.png
4)完善后臺apk提交界面
圖片.png

灰度投放規(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ā)布所起到的作用产艾,隨之該功能就失去了意義。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闷堡,隨后出現(xiàn)的幾起案子隘膘,更是在濱河造成了極大的恐慌,老刑警劉巖缚窿,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棘幸,死亡現(xiàn)場離奇詭異,居然都是意外死亡倦零,警方通過查閱死者的電腦和手機误续,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扫茅,“玉大人蹋嵌,你說我怎么就攤上這事『叮” “怎么了栽烂?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恋脚。 經(jīng)常有香客問我腺办,道長,這世上最難降的妖魔是什么糟描? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任怀喉,我火速辦了婚禮,結(jié)果婚禮上船响,老公的妹妹穿的比我還像新娘躬拢。我一直安慰自己,他們只是感情好见间,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布聊闯。 她就那樣靜靜地躺著,像睡著了一般米诉。 火紅的嫁衣襯著肌膚如雪菱蔬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天史侣,我揣著相機與錄音汗销,去河邊找鬼。 笑死抵窒,一個胖子當著我的面吹牛弛针,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播李皇,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼削茁,長吁一口氣:“原來是場噩夢啊……” “哼宙枷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茧跋,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤慰丛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瘾杭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诅病,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年粥烁,在試婚紗的時候發(fā)現(xiàn)自己被綠了贤笆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡讨阻,死狀恐怖芥永,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钝吮,我是刑警寧澤埋涧,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站奇瘦,受9級特大地震影響棘催,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳标,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一醇坝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麻捻,春花似錦纲仍、人聲如沸呀袱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夜赵。三九已至明棍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寇僧,已是汗流浹背摊腋。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘁傀,地道東北人兴蒸。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像细办,于是被迫代替她去往敵國和親橙凳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,898評論 2 89
  • 灰度發(fā)布 更新日志: 一、定義 按照一定策略選取部分用戶岛啸,讓他們先行體驗新版本的應(yīng)用钓觉,通過收集這部分用戶對新版本應(yīng)...
    余明旭閱讀 7,298評論 0 4
  • 每天進步一點點點點點點點點點點點點點點點點點點點點點點點點點點點點點點~~從開始只能寫幾句話、模仿別人的觀點坚踩,到現(xiàn)...
    一個帥氣的名字呀閱讀 18,047評論 4 31
  • 灰度發(fā)布的定義: 灰度發(fā)布是指在黑與白之間瞬铸,能夠平滑過渡的一種發(fā)布方式批幌。AB test就是一種灰度發(fā)布方式,讓一部...
    烏七七v閱讀 9,417評論 0 4
  • 鳳凰臺上憶吹簫 梅雨連綿赴捞,影長人疏逼裆,遠湖如墜冰河。 有馬行車走赦政,照見微波胜宇。 凄切當無別緒,應(yīng)去也恢着,縱與風和桐愉。 蘭舟...
    槚生閱讀 281評論 1 4