灰度發(fā)布

設置用戶標識策略

用于區(qū)分用戶,輔助數據統(tǒng)計淹朋,保證灰度發(fā)布過程中用戶體驗的連貫性(避免用戶在新舊版本中跳變笙各,匿名Web應用比較容易有這個問題)钉答。匿名Web應用可采用IP、Cookie等杈抢,需登錄的應用可直接采用應用的帳號體系数尿。

目標用戶選取策略

即選取哪些用戶先行體驗新版本,是強制升級還是讓用戶自主選擇等惶楼∮冶模可考慮的因素很多,包括但不限于地理位置歼捐、用戶終端特性(如分辨率何陆、性能)、用戶自身特點(性別豹储、年齡贷盲、忠誠度等)。對于細微修改(如文案剥扣、少量控件位置調整)可直接強制升級巩剖,對于類似新浪微博改版這樣的大型升級,應讓用戶自主選擇钠怯,最好能夠提供讓用戶自主回滾至舊版本的渠道佳魔。對于客戶端應用,可以考慮類似Chrome的多channel升級策略晦炊,讓用戶自主選擇采用stable鞠鲜、beta、unstable channel的版本断国。在用戶有明確預期的情況下自行承擔試用風險贤姆。

提供數據反饋入口

用戶數據反饋:在得到用戶允許的前提下,收集用戶的使用新版本應用的情況并思。如客戶端性能庐氮、客戶端穩(wěn)定性、使用次數宋彼、使用頻率等弄砍。用于與舊版本進行對比,決策后續(xù)是繼續(xù)擴大新版本投放范圍還是回滾输涕。服務端數據反饋:新版本服務端性能音婶、服務端穩(wěn)定性等,作用與用戶數據反饋類似莱坎。

新版本回滾策略

當新版本灰度發(fā)布表現不佳時衣式,應回滾至舊版本。對于純粹的Web應用而言,回滾相對簡單碴卧。主要難點在于用戶數據的無縫切換弱卡。對于客戶端應用,如果期待用戶自行卸載新版本另行安裝舊版本住册,成本和流失率都太高婶博。可以考慮通過快速另行發(fā)布新版本荧飞,利用升級來“回滾”凡人,覆蓋上次灰度發(fā)布的修改。對于移動客戶端叹阔,新版本發(fā)布成本較高挠轴,需要Appstore、Market審核耳幢。盡量將客戶端打造成Web App岸晦,會更有利于升級和回滾。

后端服務一般都會在負載均衡層(nginx)做灰度方案等睛藻,業(yè)界成熟的方案大多為:

1. 簡單灰度邏輯通過 nginx 配置做規(guī)則判斷(路由委煤、參數、ip等)然后動態(tài)分配接口流量切換至a/b服務修档。

2. 復雜灰度邏輯通過 nginx+lua 結合自己業(yè)務來做流量的灰度、切換等府框。

前端靜態(tài)資源要做到灰度或 A/B 測試的效果吱窝,幾種方案為:

1. JS 代碼中做埋點判斷,通過對用戶特征(UA迫靖、cookie院峡、或后端提供字段等)的判斷顯示為不同功能等。

2. 服務端動態(tài)渲染系宜,在服務端通過特征規(guī)則判斷顯示不同分支版本或功能照激。

3. 控制入口文件,使用 nginx 判斷變量盹牧,動態(tài)分配接口流量切換至a/b服務俩垃,靜態(tài)文件將流量切換至a/b路徑或主機。

方案1汰寓,對業(yè)務的入侵性大口柳,灰度規(guī)則與代碼耦合,增加了文件的大小有滑。

方案2跃闹,因為控制了渲染入口,能做的很多,但也增加了服務端渲染的復雜度望艺,使用場景有限苛秕。

方案3,前端入口一般都是一個 html 文件找默,后再去加載各種靜態(tài)資源艇劫,通過對入口文件的控制,結合 nginx 方案可以做到很好的灰度和 A/B 測試方案啡莉。

基于nginx的灰度發(fā)布方案

一般有三種方式:nginx + lua港准,nginx 根據cookie分流,nginx 根據來源IP分流

客戶端可根據變量動態(tài)設置 cookie咧欣,然后 nginx 判斷 cookie 值來分流浅缸。如根據 cookie 鍵為 version 的值為 V1 則轉發(fā)到 hilinux_01

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市魄咕,隨后出現的幾起案子衩椒,更是在濱河造成了極大的恐慌,老刑警劉巖哮兰,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毛萌,死亡現場離奇詭異,居然都是意外死亡喝滞,警方通過查閱死者的電腦和手機阁将,發(fā)現死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來右遭,“玉大人做盅,你說我怎么就攤上這事【焦” “怎么了吹榴?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滚婉。 經常有香客問我图筹,道長,這世上最難降的妖魔是什么让腹? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任远剩,我火速辦了婚禮,結果婚禮上哨鸭,老公的妹妹穿的比我還像新娘民宿。我一直安慰自己,他們只是感情好像鸡,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布活鹰。 她就那樣靜靜地躺著哈恰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪志群。 梳的紋絲不亂的頭發(fā)上着绷,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音锌云,去河邊找鬼荠医。 笑死,一個胖子當著我的面吹牛桑涎,可吹牛的內容都是我干的彬向。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼攻冷,長吁一口氣:“原來是場噩夢啊……” “哼娃胆!你這毒婦竟也來了?” 一聲冷哼從身側響起等曼,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤里烦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后禁谦,有當地人在樹林里發(fā)現了一具尸體胁黑,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年州泊,在試婚紗的時候發(fā)現自己被綠了丧蘸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡遥皂,死狀恐怖触趴,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情渴肉,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布爽冕,位于F島的核電站仇祭,受9級特大地震影響,放射性物質發(fā)生泄漏颈畸。R本人自食惡果不足惜乌奇,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眯娱。 院中可真熱鬧礁苗,春花似錦、人聲如沸徙缴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疏叨,卻和暖如春潘靖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚤蔓。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工卦溢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秀又。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓单寂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吐辙。 傳聞我的和親對象是個殘疾皇子宣决,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • 灰度發(fā)布的定義: 灰度發(fā)布是指在黑與白之間疲扎,能夠平滑過渡的一種發(fā)布方式。AB test就是一種灰度發(fā)布方式捷雕,讓一部...
    烏七七v閱讀 9,440評論 0 4
  • 灰度發(fā)布 更新日志: 一椒丧、定義 按照一定策略選取部分用戶,讓他們先行體驗新版本的應用救巷,通過收集這部分用戶對新版本應...
    余明旭閱讀 3,028評論 0 0
  • 灰度發(fā)布 更新日志: 一壶熏、定義 按照一定策略選取部分用戶,讓他們先行體驗新版本的應用浦译,通過收集這部分用戶對新版本應...
    余明旭閱讀 7,319評論 0 4
  • 在一般情況下精盅,升級服務器端應用帽哑,需要將應用源碼或程序包上傳到服務器,然后停止掉老版本服務叹俏,再啟動新版本妻枕。但是這種簡...
    脈沖云DevOps閱讀 3,059評論 0 23
  • 十三、 意未盡 兩人正聊著粘驰,樂樂被他姥姥送到屡谐,順便還帶些吃的送來,季凡上前和老人家問好蝌数,看她精神不錯愕掏。以前舒玲把孩...
    我是眉尾旋閱讀 203評論 0 1