小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

灰度發(fā)布和AB Test

 hmtomyang 2019-08-15

一、灰度發(fā)布

1. 簡介

灰度發(fā)布,是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。
通過不同策略對用戶進(jìn)行分流,不同的用戶組使用不同的應(yīng)用版本。

2. 優(yōu)點(diǎn)

互聯(lián)網(wǎng)服務(wù)變動頻繁,發(fā)布周期短。速度與質(zhì)量總是難以雙全?;叶劝l(fā)布有以下優(yōu)點(diǎn):

  • 降低發(fā)布風(fēng)險,減少影響范圍

  • 可以灰度測試賬號,降低測試依賴,減少線下自測的數(shù)據(jù)構(gòu)造成本

  • 方便回滾

3. 缺點(diǎn)

  • 開發(fā)、測試和部署的成本較高

  • 數(shù)據(jù)存儲層需要兼容

二、AB Test

1. 簡介

AB test 是一種灰度方式,通常差異度較小,側(cè)重于從多種方案中選擇最優(yōu)方案。
簡單來說,就是為同一個目標(biāo)制定兩個方案(比如兩個頁面),讓一部分用戶使用 A 方案,另一部分用戶使用 B 方案,記錄下用戶的使用情況,看哪個方案更符。
一般來說,每個設(shè)計方案應(yīng)該大體上是相同的,只是某一個地方有所不同,比如某處排版、文案、圖片、顏色等。然后對不同的用戶展示不同的方案。

在這里插入圖片描述

2. 優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):避免選擇分歧和反復(fù)試錯,優(yōu)化決策,最終方案有數(shù)據(jù)支持

  • 缺點(diǎn):開發(fā)和測試周期增加,多套方案出現(xiàn)問題的可能性更高

3. 核心思想

  • 多方案并行測試

  • 同一個用戶(一般通過cookie控制)展現(xiàn)同一版本

  • 以某種規(guī)則優(yōu)勝劣汰。

4. 實(shí)現(xiàn)步驟

  • 定義策略:確定分流的目的、放量的規(guī)模、遞增的頻率、回滾的策略等;

  • 篩選用戶:確定分流訪問的用戶特征,定義規(guī)則(根據(jù) ip, user_id, cookie, 業(yè)務(wù)需求(商戶)等因素,制定分流策略)或?qū)朊麊危?/p>

  • 訪問分流:技術(shù)支撐,根據(jù)分流策略向用戶展示不同內(nèi)容;

  • 發(fā)布運(yùn)行;根據(jù)不同的實(shí)現(xiàn)方案進(jìn)行部署;

  • 采集分析:收集數(shù)據(jù),比較不同方案的效果,確定最終方案

三、實(shí)現(xiàn)方案

關(guān)鍵點(diǎn):控制邏輯的顆粒度

1. nginx控制

  • 兩套代碼分別部署在不同的機(jī)器,通過 nginx 配置分流

  • 大多數(shù)公司采用這種方案(google,阿里,騰訊,新浪等)

  • 優(yōu)缺點(diǎn):

    • 優(yōu)點(diǎn):對業(yè)務(wù)侵入性小,灰度發(fā)布和正式上線都非常方便

    • 缺點(diǎn):開發(fā)流程是分支開發(fā)模式;代碼部署比較復(fù)雜

  • 實(shí)現(xiàn):

    • nginx根據(jù)權(quán)重分流

    • nginx + lua + redis/memcache

    • nginx + cookie

  • 阿里框架
    在這里插入圖片描述

  • 新浪框架
    在這里插入圖片描述

2. 后臺代碼控制

  • 業(yè)務(wù)邏輯中控制分流

  • 優(yōu)缺點(diǎn)

    • 優(yōu)點(diǎn):對外部系統(tǒng)依賴小,全部邏輯都在業(yè)務(wù)服務(wù)器完成,適合主干開發(fā)的模式,

    • 缺點(diǎn):對業(yè)務(wù)侵入大,灰度發(fā)布不方便,代碼維護(hù)還有整潔度下降。

  • 據(jù)說:微軟和amazon是使用這套架構(gòu)

  • 實(shí)現(xiàn)

    • 路由層控制

    • control 層控制重定向

3. 前端代碼控制

  • js if-else 控制分流

  • 優(yōu)缺點(diǎn)和第二種類似,比較適合差異度小的測試

  • 兩個版本只有一個較小的區(qū)域不一樣,我們可以同時將兩個區(qū)域的 HTML 都加載到當(dāng)前頁面中,先用 CSS 把它們隱藏起來(也可以默認(rèn)顯示一個版本),等 JS 判斷出該顯示哪個版本后,再控制對應(yīng)版本的 CSS 顯示。

  • 測試區(qū)域比較大,代碼比較多,或者需要后臺較多的計算資源,如果一開始就把兩個版本的 HTML 全加載到當(dāng)前頁面中,就會需要比較大的開銷(比如帶寬、后臺計算量)。這種情況下,我們可以先把測試區(qū)留空,之后再用 Ajax 的方式延遲加載。

四、第三方框架

五、參考資料

技術(shù)揭秘:大眾點(diǎn)評大規(guī)模并行AB測試框架Gemini http://www./blog/cases-dianping-actesting-gemini/
天貓App A/B測試實(shí)踐 http://www./cn/articles/tmall-app-ab-test
Twitter A/B測試技術(shù)概覽 http://www./cn/news/2015/11/twitter-ab-test
互聯(lián)網(wǎng)產(chǎn)品灰度發(fā)布 http://blog.csdn.net/boonya/article/details/51537674
A/B Testing的幾個解決方案 http://www.cnblogs.com/zuoqs/archive/2011/11/27/2265414.html
A/B測試:實(shí)現(xiàn)方法 http://www./2010/09/27/ab-testing-realization-method.html
互聯(lián)網(wǎng)產(chǎn)品發(fā)布之灰度發(fā)布 http://www./thread-3542-1-1.html
Nginx 實(shí)現(xiàn)灰度發(fā)布的三種方式 http://www./2017/05/1863083.html
新浪的動態(tài)策略灰度發(fā)布系統(tǒng):ABTestingGateway http://www./lib/view/open1439889185239.html
nginx:利用負(fù)載均衡原理實(shí)現(xiàn)代碼的熱部署和灰度發(fā)布 http://blog.csdn.net/hys19920320/article/details/50899932
使用Nginx+Lua實(shí)現(xiàn)Web項目的灰度發(fā)布 http://www./Linux/2012-10/71618.htm

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多