Trustworthy Online Controlled Experiments Part 1 Chap 4
基础设施与工具
在第3章中,我们展示了实验有很多错误的方法。创建实验平台不仅要通过实验来加速创新,而且对于确保决策结果的可信性也至关重要。扩大公司的实验规模不仅涉及建立实验平台的基础架构,还涉及将实验深深地嵌入公司的文化,发展和决策流程中的工具和流程。实验平台的目标是使实验成为自助服务,并最大程度地降低运行可信赖实验的增量成本。
实验平台必须涵盖流程的每个步骤,从设计和部署实验到分析实验(Gupta等人2018)。如果您查看Bing(Kohavi,Longbotham等人2009),LinkedIn(Xu等人2015)或Google(Tang等人2010)的实验平台的组件,则有四个高级组件:
- 通过用户界面(UI)或应用程序编程界面(API)进行实验定义,设置和管理,并存储在实验系统配置中。
- 实验部署,包括服务器端和客户端,它包含了变量分配和参数化
- 实验工具
- 实验分析,包括指标的定义和计算以及p值之类的统计检验。
在这一章,我们将详细讨论这四个部分。
image.png该图展示了可能的实验平台架构。客户端和/或服务器可以调用变式分配服务。变量分配服务可以是单独的服务器,也可以是嵌入客户端和/或服务器的库(在这种情况下,配置将直接推送到客户端和/或服务器)。有关不同体系结构选项的讨论,请参见本章后面的讨论。
实验的定义,建立与管理
如果要运行许多实验,实验人员就需要一种可以轻松定义,设置和管理实验生命周期的方法。要定义实验,我们需要一个所有者,一个名称,一个描述,开始和结束日期以及其他几个字段(请参见第12章)。另外,出于以下原因,该平台还需要允许实验进行多次迭代:
- 根据实验结果改进功能,这可能还涉及修复在实验过程中发现的错误。
- 逐步将实验推广到更广泛的受众。这可以通过预定义的圈(例如团队中的开发人员,公司中的所有员工)或更大比例的外部人口来进行。
所有迭代都应在同一实验下进行管理。尽管不同的平台可能需要不同的迭代,但每个实验都应该有一个处于激活状态的迭代。
平台需要一些接口和/或工具来轻松管理众多的实验及其迭代。其功能可能包括:
- 编写,编辑和保存初级阶段的实验。
- 将初级阶段的实验与当前(正在运行)迭代进行比较。
- 查看实验的历史记录或时间表(即使不运行)。
- 自动分配生成的实验ID,和迭代,并将其添加到实验规范中。在实验工具中会用到这些ID(在本章的后面讨论)。
- 检验实验设计中明显的错误,例如配置冲突,无效的目标受众等。
- 检查实验状态以及开始/停止实验。为了防止人为错误,通常只有实验所有者或具有特殊权限的个人才能启动实验。但是,由于实验可能会对特定人群造成伤害, 因此结束实验的权限应该分配给多人。 当然, 当实验被结束的时候,实验拥有者必须得到通知。
此外,由于实验会影响实际用户,因此需要其他工具或工作流程才能在实验版本上线之前对其进行检查。包括必须在部署之前运行的测试代码或权限系统,实验必须获得可信赖的专家的审核。
除了这些基本检查之外,尤其是在大规模进行实验的Fly阶段,该平台还需要支持:
- 自动化发布和扩大实验的方式(参阅第15章了解更多信息)。
- 近实时监视和警报,以便尽快发现坏的实验。
- 自动关闭出问题的实验
这些举措会增加实验安全性。
网友评论