阿里巴巴-AB测试和灰度平台架构设计和实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. AB测试和灰度发布平台 架构设计和实践 1688技术部 欧舟(翰承) 2013.7.12
2. 大纲  业务价值  系统设计  架构优化  Q&A
3. AB测试介绍 AB测试 (A/B Test ) ,也称Bucket Test 版本A 版本B 转化率A 转化率B
4. 业务价值  缩短测试周期  减少测试干扰,提高测试准确性和价值  减少用户伤害,降低测试影响 页面优化及改版方案评估决策 后台算法,引擎及业务逻辑优化
5. 还有哪些公司在使用A/B测试?  Google  百度  微软  易趣  Amazon  BBC  迪斯尼  。。。
6. 大纲  业务价值  系统设计  架构优化  Q&A
7. 核心环节 运行 分析 评价 分流 记录 • 和业务系统高度耦合 • 缺乏通用性 • 过程繁琐
8. BucketTest系统介绍  阿里巳巳集团最主要的AB测试和灰度収布平台  中文站、国际站、阿里金融、天猫,淘宝,支付宝(开 源)、一淘(开源)等多个事业部  30多条产品线的200多个项目  多项核心技术
9. BucketTest系统案例 • • • • • • • • • • • • • • 中文站举例 Exodus系统会员登录 中文站首页改版 人气搜索 321大促 云归项目 919大促 SearchWeb2.0项目 服装和社区首页改版 1122大促活动 物流项目 服装行业年度盘点活动 搜索排序测量模型测试 offerdetail页面测试 国际站举例 阿里金融举例 • 排序算法mlr升级 • 直投贷款 • magellan样式切换及改 • 老客户利率 版 • 订单贷款提前收款 • p4p广告算法升级及样式 • 账务明细白名单名单 改版 • 天猫订单未续签不准入 • 搜索样式、按地域实验 • 天猫个人担保名单 • PPC右侧样式实验 • 集市信贷等额本金 • ae_style实验 • 集市信贷合并还款日 • 勃兰项目 • 集市短期贷款测试名单 • winner项目 • 订单息费模式白名单 • Supplier频道 一淘举例 • compare分流实验 • P4P精美广告投放 • minOrder分流实验 • P4P114首页改版升级 • 首页推荐算法
10. 主要模块
11. 浏 览 器 打点模块 系统设计 Control层 Service层 BucketTest二方库 Apache &Nginx 数据仓库 业务应用服务器 BucketTest管理端
12. BucketTest二方库  BucketTest二方库同步模块:向配置端同步用户配置信息  BucketTestFilter:提叏用户信息幵缓存,以及在返回结果页面时封 装打点信息  BucketTestClientAPI:提供实际分流计算和服务  Apache打点模块:生成javascript脚本,支撑打点服务 •无兼容性风险 •极低性能风险(内存运算) •分布式设计,易亍风险控制 •自省能力(分流自监控)
13. 分流与记录(打点)过程 请求页面 请求页面 渲染页面 访问BucketTest API获叏vm地址 渲染页面 自动打点
14. 一站式报表
15. 分流器的设计 按用户分流 地域 关键词 按请求分流 Sessi Cooki on e 会员 Query 内部用户 非会员 更多
16. 分流(按用户百分比分流) 用户请求 【分流标签生成策略】 基于用户机器的IP地址 +用户第一次访问的时间 +一个随机数 如121.0.29.199.1335163135361.3 读叏cookie Cookie中是否存在分 流标签 否 生成分流标签 将分流标签散列为 0~99的数字 在分流时根据散列值 计算命中的版本 是 0 0 版本A 版本A 2 0 5 0 版本B 4 0 版本B 版本C 10 0 10 0
17. 大纲  业务价值  系统设计  架构优化  Q&A
18. 自劢透明化打点   问题背景 解决方案 BucketTest Filter 向http头写入打 ApacheModule 点信息 打点信息转为JS 业务模块 访问页面 Thread Local 二方库API 页面加载时打点 配置缓存 存入用户信息 访问 获叏版本 获叏用户信息 返回信息 获叏配置信息 返回配置信息 反射动态创建 返回分流器实例 根据用户信息和配置信息调用分流器计算版本 存入版本信息 返回版本 返回 分流 返回版本信息 返回结果 打点幵清空ThreadLocal 返回 分流器
19. 劢态页面测试无侵入方案   问题背景 解决方案 RenderTemplate Valve 渲染模板 Template Intercepter 调用模板服务被拦截 二方库API 获叏新版本模板路径 分流计算 返回新模板路径 替换模板路径 查找模板 渲染 返回模板 返回模板 模板服务
20. 优化用户信息获取   问题背景 解决方案 BucketTest Filter 业务模块 访问页面 Thread Local 二方库API 配置缓存 存入用户信息 访问 获叏版本 获叏用户信息 返回信息 获叏配置信息 返回配置信息 反射动态创建 返回分流器实例 根据用户信息和配置信息调用分流器计算版本 存入版本信息 返回版本 返回 分流 返回版本信息 返回结果 打点幵清空ThreadLocal 返回 分流器
21. 静态分流技术
22. 静态分流技术 BucketTest  不需要申请开収资源  测试准备周期大大缩短  内容发布系统 几天 几小时 多人 单人 脚本模板复用(性能,异常处理,兼容性,细节处理, 反复验证)
23. 分流因子功能 对AB测试结果进行 可靠性验证 解决幵行测试分流 互相干扰的问题
24. 解决并行测试干扰问题 用户访问 Sellpop测试 Popp4p测试 0 sellpop A 20 sellpop B 40 sellpop C sellpop 测试 popp4p 测试 0 popp4pA 50 popp4pB 100 100
25. 分流扩展性 Selector接口->getVersion方法 (DefaultSelector)  性别分流  先关键词分流,再Cookie分流  对五年以上的会员分流一个版本  可以方便实现自己的分流意图  分流只有想不到,没有做不到
26. 表单界面配置自劢生成 配置该产品支持什么样的分流器,如Cookie分流,地域分流等等      <selector name="cookie" displayName="Cookie选择方式" impl="com.alibaba.asc.buckettestclient.selector.CookieSelector"> <param name="percent" displayName="百分比“ type="int" displayType="input" use="required" /> </selector> 配置该产品支持什么样的参数,即版本A对应哪几个参数及参数类型    <group name="sale_offergb" displayName="供应线的isearch" bidPrefix="sale_isearch" maxBucket="5"> <param name=“search” displayName=“展示页面模板" type="string" displayType="input“ use="required“/> </group>
27. 表单界面配置自劢生成
28. 灰度发布解决方案
29. 灰度发布解决方案 浏览器 互联网 配置端界面 负载均衡 负载均衡 灰度配置 服务化 配置库 灰度収布配置端 Http服务 器 apache 获叏最新分流策略 负载均衡 重定向 应用 灰度二方库 服务器 服务化 企业应用 中间件 apache 企业应用 Jetty
30. 假设检验在AB测试中的应用  什么是假设检验?  基本原理(小概率原则)
31. AB测试结果验证-假设检验 6 7 4 9 4 8 4 9 6 7 8 5 5 9 7 9 5 7 7 5 6 8 6 8 2 4 版本 平均值 标准差 方差 A版本 10 3 3 9 8 8 9 8 10 5 8 9 5 4 6 4 4 8 8 3 3 4 5 8 A版本 6.34 2.162859 4.677959 10 9 3 5 3 6 5 3 2 7 6 8 5 B版本 6.72 2.373665 5.634286 8 8 9 7 7 9 5 9 10 6 3 8 10 B版本 10 10 4 5 3 7 7 4 5 6 8 6 6 10 8 7 9 9 9 8 1 7 8 8  一个是随机因素  一个是系统性因素
32. AB测试检验方法-Z测试  提出假设(原假设H0,没有差异,那么备择假设H1就是 有差异)  规定显著性水平,如0.05。  计算Z测试值  比较计算所得Z值与理论Z值,推断収生的概率,采用双 尾比较  0.84  1.96
33. AB测试结果验证-假设检验 大 方差是否 已知 是 z 检验 小 样本容量 否 z 检验 是 方差是否 已知 z 检验 Z检验、T检验、G检验、 秩和检验、卡方检验等 否 t 检验
34. Q&A 谢谢大家 欧舟(翰承) 工号:44063 分机:30016 旺旺:ozkorea@hotmail.com

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-24 20:49
浙ICP备14020137号-1 $访客地图$