2014-04-04 24 views
1

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

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

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

是否有一些工具可以在我的情况下提供帮助(除Git和Maven以外)?

回答

1

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

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

+0

appengine应用程序是独特的后端应用程序(web服务和存储)。到目前为止,我在appengine-web.xml文件中进行了更改,说我想将其上载到“环境”或另一个上,但我没有发现这个“非常干净”的文件。 –

0

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

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

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

+0

如果您只保存数据存储区数据您可以通过使用数据存储区命名空间来获取。问题是它不适用于blobstore等其他东西。 –