google-app-engine - 如何最好地将单个 Google App Engine 应用程序部署到多个特定于区域的子域?

标签 google-app-engine deployment google-cloud-datastore

我正在尝试找出跨多个区域部署单个 Google App Engine 应用程序的最佳方法。

使用相同的代码,但存储的数据特定于每个区域。激励人心的例子是超本地化评论网站,例如 yelp.com 或 Urbanspoon,其中要评论的餐馆和其他企业特定于某个地区(例如 boston.app.com、seattle.app.com)。

几个选项包括:

  1. 创建多个 GAE 应用程序, 并在它们之间复制代码。

  2. 创建单个 GAE 应用程序,并存储所有区域的所有数据 在同一个数据存储中,具有一个区域 每个模型的标识符字段 划定相关区域。

一些权衡:

  1. 选项 2 似乎会越来越低效(空间:为每个模型的每个记录复制区域标识符;时间:对每个查询的标识符进行过滤/索引)。

  2. 选项 1 要求每个区域都有一个应用 ID,而 GAE 只允许每个帐户 10 个应用。此外,在每个区域部署代码以及数据存储迁移似乎管理起来很痛苦。

在理想的世界中,我会有一个应用程序实例。从该实例开始,我可以在子域之间进行路由(例如 here ),并且为每个子域都有一个单独的数据存储区。但我相信 GAE 只允许每个应用程序有一个数据存储。

有人知道解决这个问题的最佳方法吗?或者我没有考虑的选项?

感谢您的宝贵时间!

最佳答案

我会推荐你​​的方法#2。与大多数数据库不同,存储空间很便宜(并且区域代码很短),并且数据存储性能不会随着大小而降低。使用单个应用程序还可以更轻松地管理和升级,并避免 TOS 的任何问题(TOS 禁止对应用程序进行分片以避免计费)。

关于google-app-engine - 如何最好地将单个 Google App Engine 应用程序部署到多个特定于区域的子域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493800/

相关文章:

node.js - 我需要在 Google Cloud Datastore 中使用什么索引才能根据 ID 和其他属性进行过滤?

带有 Google Cloud SQL 和 Google Datastore 的 Android 数据库

google-app-engine - AppEngine : sending email to admin, 计费为 "Recipients Emailed"而不是 "Admins Emailed"

google-app-engine - 比较云托管技术(Azure、EC2 或 Google)

node.js - 将 Nuxt.js 部署到 Google App Engine 返回 502 Bad Gateway

java - 如何将我的 Maven 项目部署为 jar 文件,该文件将使用 pom 文件获取其依赖项?

python - 如何在不知道类名的情况下使用 NDB 查询

google-app-engine - 在 Google 应用引擎上更改模型的后果

sql - SSDT 发布超时

git - 持续部署到 Azure 上的 Dev/TestProd