一、灰度發(fā)布1. 簡介灰度發(fā)布,是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。 通過不同策略對用戶進行分流,不同的用戶組使用不同的應用版本。 2. 優(yōu)點互聯(lián)網服務變動頻繁,發(fā)布周期短。速度與質量總是難以雙全?;叶劝l(fā)布有以下優(yōu)點: 3. 缺點開發(fā)、測試和部署的成本較高 數據存儲層需要兼容
二、AB Test1. 簡介AB test 是一種灰度方式,通常差異度較小,側重于從多種方案中選擇最優(yōu)方案。 簡單來說,就是為同一個目標制定兩個方案(比如兩個頁面),讓一部分用戶使用 A 方案,另一部分用戶使用 B 方案,記錄下用戶的使用情況,看哪個方案更符。 一般來說,每個設計方案應該大體上是相同的,只是某一個地方有所不同,比如某處排版、文案、圖片、顏色等。然后對不同的用戶展示不同的方案。 
2. 優(yōu)缺點3. 核心思想4. 實現(xiàn)步驟定義策略:確定分流的目的、放量的規(guī)模、遞增的頻率、回滾的策略等; 篩選用戶:確定分流訪問的用戶特征,定義規(guī)則(根據 ip, user_id, cookie, 業(yè)務需求(商戶)等因素,制定分流策略)或導入名單; 訪問分流:技術支撐,根據分流策略向用戶展示不同內容; 發(fā)布運行;根據不同的實現(xiàn)方案進行部署; 采集分析:收集數據,比較不同方案的效果,確定最終方案
三、實現(xiàn)方案關鍵點:控制邏輯的顆粒度 1. nginx控制2. 后臺代碼控制業(yè)務邏輯中控制分流 優(yōu)缺點 據說:微軟和amazon是使用這套架構 實現(xiàn)
3. 前端代碼控制js if-else 控制分流 優(yōu)缺點和第二種類似,比較適合差異度小的測試 兩個版本只有一個較小的區(qū)域不一樣,我們可以同時將兩個區(qū)域的 HTML 都加載到當前頁面中,先用 CSS 把它們隱藏起來(也可以默認顯示一個版本),等 JS 判斷出該顯示哪個版本后,再控制對應版本的 CSS 顯示。 測試區(qū)域比較大,代碼比較多,或者需要后臺較多的計算資源,如果一開始就把兩個版本的 HTML 全加載到當前頁面中,就會需要比較大的開銷(比如帶寬、后臺計算量)。這種情況下,我們可以先把測試區(qū)留空,之后再用 Ajax 的方式延遲加載。
四、第三方框架五、參考資料技術揭秘:大眾點評大規(guī)模并行AB測試框架Gemini http://www./blog/cases-dianping-actesting-gemini/ 天貓App A/B測試實踐 http://www./cn/articles/tmall-app-ab-test Twitter A/B測試技術概覽 http://www./cn/news/2015/11/twitter-ab-test 互聯(liá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測試:實現(xiàn)方法 http://www./2010/09/27/ab-testing-realization-method.html 互聯(lián)網產品發(fā)布之灰度發(fā)布 http://www./thread-3542-1-1.html Nginx 實現(xiàn)灰度發(fā)布的三種方式 http://www./2017/05/1863083.html 新浪的動態(tài)策略灰度發(fā)布系統(tǒng):ABTestingGateway http://www./lib/view/open1439889185239.html nginx:利用負載均衡原理實現(xiàn)代碼的熱部署和灰度發(fā)布 http://blog.csdn.net/hys19920320/article/details/50899932 使用Nginx+Lua實現(xiàn)Web項目的灰度發(fā)布 http://www./Linux/2012-10/71618.htm
|