基于客户子域的谷歌应用引擎中的流量分割

时间:2014-02-22 12:20:42

标签: google-app-engine

当客户注册我的服务(myservice.com)时,他们会被分配一个子域名。因此,客户A将获得customerA.myservice.com的URL,客户B将获得类似customerB.myservice.com等的URL。

我正在开发新版本的服务,并希望将一些新客户重定向到新版本以测试新版本。

我知道我可以创建不同版本的服务,并通过它们之间的ip和cookie分割流量。也可以根据路由分割流量,但似乎最终GAE仍然依赖于ip或cookie信息来分割流量:https://developers.google.com/appengine/docs/adminconsole/trafficsplitting#Routing。因此,如果我的客户在台式机,ipad和智能手机上访问我的服务,他有时可能会在他的桌面(家中)上获得一个版本的服务,而另一个版本则在他的智能手机上(在路上)。

所以我的问题是,是否有可能始终将customerA.myservice.com指向我的服务的一个版本和customerB.myservice.com到另一个版本,无论是设备,cookie还是ip?

感谢

托马斯

1 个答案:

答案 0 :(得分:0)

App Engine的流量分割功能无法实现,但您可以自己实现此逻辑。当用户访问您的域时,您可以选择要为其提供的应用版本。有三个缺点:

  1. 看起来不太漂亮 - 指向各个版本的网址可能会令人困惑。
  2. 用户可能会为版本网址添加书签,如果版本不再可用,他们一旦收到错误就会收到错误。
  3. 您必须确保应用中的所有网址都是相对的,如果它们指向您的域名。否则,您可能会链接不同的版本。
  4. 此外,由于数据模型的更改,某些版本可能不兼容,即您无法并行运行它们。

    App Engine的拆分或任何其他流量分割也会出现类似的问题。这就是为什么我建议您拥有一个由您最热心的用户组成的受信任组。向他们发送新版本作为“预览”并询问他们的反馈。他们会感谢您与他们联系,如果他们在不同的设备上使用不同版本,他们也不会感到困惑。