方案设计
目标
Wedge平台的目标如下:
- 支持各类算法实验场景,可灵活支持后续的功能扩展。
- 实验配置、使用、效果回收等全链路对使用者透明,降低解释成本。
- 提供不同流量下应用参数的配置,降低参数解析成本。
- 支持版本控制,可快速回滚。
- 提供简洁、易用的操作界面。
设计思路
在《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》中,Google给出了一套通用的分层实验解决方案。我们以此为蓝本,结合美团点评效果广告的LBS特性,针对不同的业务场景,实现了更适合日常迭代的实验配置框架。目前,该框架已在搜索广告投放系统上全量上线。
实验分类
基于Google分层实验平台,结合实际需求进行了以下实验分类。
根据实验种类分类
- 水平实验:类似于Overlapping Layer中的实验,是属于同个“层”的实验,实验是互斥的,在同一“层”上实验可以理解为是同一种实验,例如:关键词“层”表示这一层的实验都是关键词相关的,该层上存在实验H1和H2,那么流量绝对不会同时命中H1和H2。
- 垂直实验:类似于Non-overlapping Layer中的实验,分布于不同“层”之间,实验是不互斥的,例如在关键词“层”和CTR“层”上在相同的分桶上配置了实验V1和V2,那么流量可以同时命中V1和V2。
- 条件实验:表示进入某“层”的实验需要满足某些条件,水平实验和垂直实验都可以是条件实验。
根据流量类别分类
这种分类主要了为了用户体验,使平台在操作上更加的简单、易用:
- 普通实验:最基本的实验,根据流量类别进行配置。
- 引用实验:流量分类是整个配置中心基础,但实际上存在一些实验是跨流量了,而引用实验则可以配置在不同的流量种类中。
- 全局实验:可以理解为特殊的引用实验,全局实验在所有流量上都生效。
架构图
图2为整体架构图,比较便于大家理解,我们可以看到整体架构分为四层:
- Web层:提供平台UI,负责应用参数配置、实验配置、实验效果查看以及其他。
- 服务层:提供权限控制、实验管理、拉取实验效果等功能。
- 存储层:主要是数据存储功能。
- 业务层:业务层结合SDK完成获取实验参数和获取应用参数的功能。