AB 测试和灰度发布平台架构设计和实践


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

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf