糖豆A/B 測試實驗平臺

1. 初步

1.1 名詞解釋

  • 實驗位: 實施AB測試的客戶端位置,由客戶端頁面和模塊組合而成,比如:首頁--猜你喜歡。
  • 策略: 每個實驗內部的實驗方法,由具體業務生成控制,對應到具體一個業務功能。
  • 分桶:根據用戶設備號取模,得到0~99。根據實驗需求分配的流量比例成爲分桶。
  • 實驗owner: 發起AB測試實驗負責人。
  • 模型:業務的算法模型。

1.2 功能需求

  • 保留原始用戶,能夠支持舊版本的無縫切換,將原有B版用戶保留N%,作爲原始對照組。
  • 全局流量劃分,能夠支持包括灰度測試、指定流量規模等功能。
  • 業務流量劃分,能夠支持不同實驗內部流量指派、劃分。
  • 實驗狀態變更,能夠支持不同位置的並行實驗的開始、結束。
  • 實驗效果評估,能夠支持不同實驗效果的統計分析。

2.架構設計

AB測試實驗平臺架構

3.實現

AB測試平臺屬於基礎架構,爲了保證整體服務性能,減少系統間調用。我們遵循了統一架構,分別實現的服務思想。通過對核心代碼的多語言實現,以及數據底層統一,來保證系統的鬆耦合和可插拔性。

3.1 AB測試後臺

允許不同用戶管理、跟蹤自己的實驗運行情況以及其它可能相互影響的實驗。參見下圖糖豆的AB測試後臺。

image.png
image.png
image.png

3.2 系統調用流程

策略分配流量
全局流量控制,局部流量控制

3.3 數據表結構

  • 實驗表
id source client_module offset config addtime
001001 首頁 猜你喜歡 20 diu 2016-12-25 15:50:32
001002 首頁 拍攝 1 random 2017-04-25 15:50:32
002001 搜索頁 框搜 20 diu 2017-04-25 15:50:32
  • 策略表
id name position_id code class_name directory describe addtime
001 old 001001 old empty / 原始對照組 2016-12-25 15:50:32
002 noltr 001001 noltr NoLTRRecommender /noltr/ 無LTR算法組 2017-04-18 15:50:32
003 ltr 001001 ltr LTRRecommender /ltr/ LTR算法組 2017-04-25 15:50:32
  • 分桶表
id position_id strategy_id location_id platform flow sort addtime
001 001001 001 全國 app 90~100 1 2016-12-25 15:50:32
002 001001 002 全國 app 40~80 2 2017-04-25 15:50:32
003 001001 003 全國 app 0~40 3 2017-04-18 15:50:32

4. BI統計

  • 實驗平臺後臺數據會同步到統計平臺,作爲字典表。
  • 客戶端需要增加上報策略id,修改abtag上報內容。
  • BI平臺基於以上兩者構建實驗主題的數據集市,提供數據分析和可視化。

參考文獻:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章