App Engine 上的 A/B 测试?
在 App Engine 上运行的 A/B 测试系统最简单的实现是什么?
我特别热衷于使用数据存储进行后端(查询时间很长)和数据库设计的性能影响。
What would be the simplest implementation of an A/B testing system running on App engine?
I'm especially keen towards performance implications of using Datastore for back-end (with looong query times), and database design.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
看看 Gae/Bingo,它是一个针对 App Engine 的 A/B 对比测试框架,其灵感来自于
A/Bingo。
更多信息请点击此处。
Have a look to Gae/Bingo, it's an A/B split-testing framework for App Engine inspired by
A/Bingo.
More information here.
您可以部署应用程序的两个版本:
然后创建第三个版本,仅选择是将用户代理到 A.latest.mysite.appspot.com 还是 B.latest.mysite.appspot.com。
You could deploy two versions of your application:
And then create a third version that simply chooses whether to proxy a user to A.latest.mysite.appspot.com or B.latest.mysite.appspot.com.
现在,它已在 SDK 1.6.3 中作为流量分割功能全面提供:
http://code.google.com/appengine/docs/adminconsole/trafficsplitting.html
It is now generally available in SDK 1.6.3 as Traffic Splitting feature:
http://code.google.com/appengine/docs/adminconsole/trafficsplitting.html
假设您想测试应用程序的不同版本,我建议使用一些简单的 WSGI 中间件。构建一些东西,将 x% 的用户引导至一个 WSGI 应用程序,将剩余的用户引导至另一个应用程序,并按任何适合的方式(用户 ID、IP 地址等)进行分片。这应该非常容易实现,你可以在上面堆放任何你喜欢的东西。
Assuming you want to test different versions of your app, I would suggest using a simple bit of WSGI middleware. Build something that directs x% of users to one WSGI app, and the remainder to another, sharded by whatever suits - user ID, IP address, etcetera. This should be pretty straightforward to implement, and you can pile whatever you like on top of it.
A/B 测试要求向某些用户显示页面 A,而向其他用户显示页面 B。
App Engine 与此无关。 App Engine 是一种部署应用程序的方式,而不是引导用户浏览页面。
它是您用来根据用户 cookie/会话提供一个或另一个页面的 Web 框架的功能。
可以用一种简单的方式来完成,如下所示:
然后,在特定控制器/视图中,根据选择的 A 或 B,将用户服务/重定向到页面 A 或页面B. 将结果(无论您的结果是什么——销售、注册……)记录到数据存储中。
对于任何 Web 框架都可以这样做。你甚至没有告诉你使用哪一个;)
A/B test requires to show page A to some users, while page B to some other users.
App Engine has nothing to do with it. App Engine is a way to deploy applications, not direct user along the pages.
It's the function of the web framework you use to serve one page or another based on user cookie/session.
In a simple way it could be done like this:
Then, in specific controllers/views, based on selected A or B, serve/redirect user to page A or page B. Record the outcome (whatever your outcome is -- sale, registration, ...) into datastore.
That can be done for any web framework. You didn't even told which one you use ;)