分流|五分钟讲清楚 A/B 测试系统( 二 )


可行方案 2:在后端业务层增加相关组件来做 A/B 测试
该方案通过在后端接口层增加相关组件来处理 A/B 测试需求 , 该组件通过与 A/B 测试服务交互来完成 A/B 测试的功能 , 目前采用该方式的公司有 Google , 百度等 , 通过后端统一 Router 模块来处理 A/B 测试相关请求 。 相当于前端只需要把所有的数据传给后端 , 由后端的 Router 来统一划分组别 , 并根据组别去调用不同的接口服务 。
这个方案的优点是模块化 , Router 解决所有与 A/B 测试相关问题 , 对 A/B 测试业务做调整不需要前端版本升级 , 只需要升级后端服务即可 。 但是 Router 层是整个 A/B 测试的核心 , 需要具备高并发高可用的能力 , 否则出现问题会影响 A/B 测试能力的发挥 。
可行方案 3:通过在算法业务层跟 A/B 测试服务交互来实现 A/B 测试能力 , 不需要前端和接口层做任何处理
这种方案比较适合算法类 (推荐算法、搜索算法、精准投放等) 相关业务做 A/B 测试 , 这里不展开细说 。
行为记录分析模块行为记录分析模块包含 A/B 测试行为数据打点、数据收集、数据分析和数据可视化展示等子模块 。 行为记录分析模块需要能够支持分组查看数据、对比数据 , 这样才能更方便看出哪个组的数据表现更好 。
A/B 测试系统运行流程
用户首先会被分流模块划分到某个分组里 , 然后根据分组 ID 会获取到不同版本的服务 , 与此同时也会产生不同的数据 。 (变体:也就是要测试的变量+固定的不变量)
写在最后【分流|五分钟讲清楚 A/B 测试系统】A/B 测试系统对于很多企业来说都是非常好用的工具 , 虽说市面上也有很多现成的分组测试工具 , 但出于数据安全、使用成本等考虑 , 建设内部的 A/B 测试系统才是一个长期受益的方法 。