【问题标题】:Manage different stages of development with AppEngine使用 AppEngine 管理不同的开发阶段
【发布时间】:2014-05-17 01:35:55
【问题描述】:

我想知道:我必须在 GAE 上管理一个应用程序,并且必须在其生命周期的不同阶段管理这个应用程序。该应用程序使用数据存储、谷歌云存储和一些谷歌地图 API。我希望至少有两个环境,开发和生产,如果不是更多的话。

有可能这么容易吗?我该怎么做?例如,我的 appengine 控制台中是否需要有两个单独的应用程序?

另外,我需要管理一个包含许多用户(大约 9000 并且还在增加)的大数据存储,但我希望能够将此数据存储从一个环境复制到另一个环境(以避免污染生产数据存储)开发值)。可能吗?如果是的话,在开发数据存储中自动备份生产数据存储的速度有多慢,知道其中大约有 1 000 000 个实体?

是否有一些工具可以为我提供帮助(除了 Git 和 Maven;)?

【问题讨论】:

    标签: java google-app-engine dev-to-production


    【解决方案1】:

    取决于您是在测试 UI(前端)还是数据(后端)。 Appengine 支持multiple versions 访问相同的 dDatastore,本质上不同的前端与相同的后端通信。如果您正在进行不会污染数据的开发,并且可以在不污染数据的情况下进行测试,那么您可以在开发版本上进行。以后很容易进行流量拆分或将其设置为默认版本。

    如果您要更改数据 - 例如,重构存储用户和实体的方式 - 那么您需要有一个单独的 appengine 应用程序来开发和测试它。您可以从管理控制台备份和下载数据存储,也可以从左侧的数据 -> 数据存储管理将数据复制到另一个应用程序。 It is documented here。我不认为有一个 API 可以做到这一点,虽然它不会写太多的代码。我有一个脚本来备份/恢复文本搜索数据(管理控制台不支持),它只有几百行。

    【讨论】:

    • appengine 应用程序是唯一的后端应用程序(Web 服务和存储)。到目前为止,我在 appengine-web.xml 文件中进行了更改,以说明我是否想将其上传到“环境”或另一个,但我觉得这不是很“干净”
    【解决方案2】:

    我们在 GAE 上有 2 个不同的应用程序。 我们每个都有不同的数据集,您可以在应用程序之间备份和恢复数据(https://developers.google.com/appengine/docs/adminconsole/datastoreadmin)。我不建议将此作为周期性的事情,因为它可能会花费您很多钱。它将计入您的配额。

    如果您希望为 2 个不同的环境提供相同的数据。你可以使用像 user2615861 这样的版本 上面建议-但我建议不要这样做。如果您使用与另一个版本不兼容的实体部署版本,则可能会破坏您的应用程序。

    我强烈建议您拥有 2 个应用程序。

    【讨论】:

    • 如果您只保存数据存储数据,您可以使用数据存储命名空间获得。问题是它不适用于 blobstore 等其他东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多