Google App Engine(GAE)应用的多域部署

时间:2009-10-20 04:20:14

标签: google-app-engine deployment dns

我们希望开发和销售定制商业GAE应用程序。我想了解有关在任意Google Apps域(即不是appspot)上部署GAE应用程序的信息。

假设我们公司是abc.com,我们正在向def.com和xyz.com销售应用程序。在我们客户的域上部署我们的应用程序有哪些步骤?

在许多域上部署应用时:

  • 代码是重复还是共享?
  • 数据存储区定义是重复还是共享(或更准确地说是种类)?
  • 是否有任何域名属性添加到实体?

2 个答案:

答案 0 :(得分:14)

目前,您有三种选择,例如您所描述的“多租户”应用:

  1. 您可以拥有一个客户添加到其域中的应用。您的应用程序将具有单个数据存储,但您可以使用Host标头来确定哪个客户正在访问该应用程序,并根据该数据库分隔数据存储条目。
    • 易于部署和升级
    • 方便客户安装
    • 用户必须拥有Google帐户,而非Google Apps帐户才能登录。
  2. 您可以为每个客户部署一个全新的应用实例。
    • 更难部署和升级
    • 需要更多客户参与安装
    • 提供牢固的数据分离
    • 用户可以使用其应用凭据登录
  3. 您可以与Google合作创建新的Apps Marketplace应用
    • 上述第1点和第2点的所有好处
    • 需要Google参与
    • 尚未确定发布日期

答案 1 :(得分:4)

这是可能的,但据我所知,def.com& xyz.com必须注册Google Apps

一旦您的潜在客户向Google Apps注册了域名,他们就不仅可以添加Gmail和Google等Google Apps。文档到子域(mail.def.com& docs.def.com)以及任何GAE应用(fooapp.def.com)。

  • 代码是重复还是共享?
    共享
  • 数据存储区定义是重复还是共享(或更准确地说是种类)?
    虽然共享模式(定义),但未共享的是实际数据存储。即,您应用的每个实例都有单独的数据。
  • 是否有任何域名属性添加到实体?
    您可以使用其中一个CGI / HTTP环境变量找出您的应用程序所在的域。我不记得确切的变量,但是一旦我查看了我的一些旧代码,我就会更新答案。找到当前域名后,您可以选择如何处理该信息,包括将其保存到实体或拒绝访问。

另一个很酷的功能是让我们说公司def.com正在使用托管的GMail并为其员工提供Google身份验证。现在,如果您的应用程序使用GAE提供的身份验证挂钩,那么您可以自动对其员工进行身份验证,而无需更改任何代码!至少,这是理论,因为我自己没有尝试过; - )