使用AppEngine管理不同的开发阶段

时间:2014-04-04 16:13:26

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

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

是否可以轻松完成?我该怎么办?例如,我的appengine控制台中是否需要两个独立的应用程序?

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

如果您希望获得2个不同环境的相同数据。你可以使用user2615861这样的版本  以上建议 - 但我建议反对它。如果您部署的版本的实体与其他版本不兼容,则可能会破坏应用中的内容。

我强烈建议您使用2个应用。