1. 初步
1.1 名詞解釋
- 實(shí)驗(yàn)位: 實(shí)施AB測(cè)試的客戶端位置,由客戶端頁(yè)面和模塊組合而成琴拧,比如:首頁(yè)--猜你喜歡降瞳。
- 策略: 每個(gè)實(shí)驗(yàn)內(nèi)部的實(shí)驗(yàn)方法,由具體業(yè)務(wù)生成控制蚓胸,對(duì)應(yīng)到具體一個(gè)業(yè)務(wù)功能挣饥。
- 分桶:根據(jù)用戶設(shè)備號(hào)取模,得到0~99沛膳。根據(jù)實(shí)驗(yàn)需求分配的流量比例成為分桶扔枫。
- 實(shí)驗(yàn)owner: 發(fā)起AB測(cè)試實(shí)驗(yàn)負(fù)責(zé)人。
- 模型:業(yè)務(wù)的算法模型锹安。
1.2 功能需求
- 保留原始用戶短荐,能夠支持舊版本的無(wú)縫切換,將原有B版用戶保留N%,作為原始對(duì)照組。
- 全局流量劃分叹哭,能夠支持包括灰度測(cè)試忍宋、指定流量規(guī)模等功能。
- 業(yè)務(wù)流量劃分话速,能夠支持不同實(shí)驗(yàn)內(nèi)部流量指派讶踪、劃分。
- 實(shí)驗(yàn)狀態(tài)變更泊交,能夠支持不同位置的并行實(shí)驗(yàn)的開(kāi)始乳讥、結(jié)束。
- 實(shí)驗(yàn)效果評(píng)估廓俭,能夠支持不同實(shí)驗(yàn)效果的統(tǒng)計(jì)分析云石。
2.架構(gòu)設(shè)計(jì)
3.實(shí)現(xiàn)
AB測(cè)試平臺(tái)屬于基礎(chǔ)架構(gòu),為了保證整體服務(wù)性能研乒,減少系統(tǒng)間調(diào)用汹忠。我們遵循了統(tǒng)一架構(gòu),分別實(shí)現(xiàn)的服務(wù)思想雹熬。通過(guò)對(duì)核心代碼的多語(yǔ)言實(shí)現(xiàn)宽菜,以及數(shù)據(jù)底層統(tǒng)一,來(lái)保證系統(tǒng)的松耦合和可插拔性竿报。
3.1 AB測(cè)試后臺(tái)
允許不同用戶管理铅乡、跟蹤自己的實(shí)驗(yàn)運(yùn)行情況以及其它可能相互影響的實(shí)驗(yàn)。參見(jiàn)下圖糖豆的AB測(cè)試后臺(tái)烈菌。
3.2 系統(tǒng)調(diào)用流程
策略分配流量
全局流量控制阵幸,局部流量控制
3.3 數(shù)據(jù)表結(jié)構(gòu)
-
實(shí)驗(yàn)表
id | source | client_module | offset | config | addtime |
---|---|---|---|---|---|
001001 | 首頁(yè) | 猜你喜歡 | 20 | diu | 2016-12-25 15:50:32 |
001002 | 首頁(yè) | 拍攝 | 1 | random | 2017-04-25 15:50:32 |
002001 | 搜索頁(yè) | 框搜 | 20 | diu | 2017-04-25 15:50:32 |
-
策略表
id | name | position_id | code | class_name | directory | describe | addtime |
---|---|---|---|---|---|---|---|
001 | old | 001001 | old | empty | / | 原始對(duì)照組 | 2016-12-25 15:50:32 |
002 | noltr | 001001 | noltr | NoLTRRecommender | /noltr/ | 無(wú)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 | 全國(guó) | app | 90~100 | 1 | 2016-12-25 15:50:32 |
002 | 001001 | 002 | 全國(guó) | app | 40~80 | 2 | 2017-04-25 15:50:32 |
003 | 001001 | 003 | 全國(guó) | app | 0~40 | 3 | 2017-04-18 15:50:32 |
4. BI統(tǒng)計(jì)
- 實(shí)驗(yàn)平臺(tái)后臺(tái)數(shù)據(jù)會(huì)同步到統(tǒng)計(jì)平臺(tái)花履,作為字典表。
- 客戶端需要增加上報(bào)策略id挚赊,修改abtag上報(bào)內(nèi)容诡壁。
- BI平臺(tái)基于以上兩者構(gòu)建實(shí)驗(yàn)主題的數(shù)據(jù)集市,提供數(shù)據(jù)分析和可視化荠割。
參考文獻(xiàn):
- Overlapping Experiment Infrastructure: More, Better, Faster Experimentation
https://research.google.com/pubs/pub36500.html - It’s All A/Bout Testing: The Netflix Experimentation Platform
https://medium.com/netflix-techblog/its-all-a-bout-testing-the-netflix-experimentation-platform-4e1ca458c15