【发布时间】:2011-02-07 17:44:44
【问题描述】:
在 App 引擎上运行的 A/B 测试系统的最简单实现是什么?
我特别热衷于将 Datastore 用于后端(查询时间过长)和数据库设计的性能影响。
【问题讨论】:
-
我读你的问题越多,我理解的就越少。 A/B 与数据存储有什么关系? o_O 你能给我们看一个你要做的测试的例子吗?
在 App 引擎上运行的 A/B 测试系统的最简单实现是什么?
我特别热衷于将 Datastore 用于后端(查询时间过长)和数据库设计的性能影响。
【问题讨论】:
您可以部署两个版本的应用程序:
appcfg.py update -V "A" mysiteA/
appcfg.py update -V "B" mysiteB/
然后创建第三个版本,它简单地选择是将用户代理到 A.latest.mysite.appspot.com 还是 B.latest.mysite.appspot.com。
【讨论】:
现在在 SDK 1.6.3 中作为流量拆分功能普遍可用: http://code.google.com/appengine/docs/adminconsole/trafficsplitting.html
【讨论】:
假设您想测试应用程序的不同版本,我建议您使用一些简单的 WSGI 中间件。构建一些东西,将 x% 的用户引导到一个 WSGI 应用程序,将其余的用户引导到另一个应用程序,并按照用户 ID、IP 地址等进行分片。这应该很容易实现,你可以在上面堆放任何你喜欢的东西。
【讨论】:
A/B 测试要求将页面 A 显示给某些用户,而将页面 B 显示给其他一些用户。
App Engine 与此无关。 App Engine 是一种部署应用程序的方式,而不是直接引导用户浏览页面。
这是您用来根据用户 cookie/会话提供一个或另一个页面的 Web 框架的功能。
用一种简单的方式可以这样做:
然后,在特定的控制器/视图中,根据选定的 A 或 B,将用户服务/重定向到页面 A 或页面 B。将结果(无论您的结果是什么——销售、注册等)记录到数据存储中。
这可以用于任何 Web 框架。你甚至没有告诉你使用哪一个;)
【讨论】: