【发布时间】:2011-11-19 18:10:17
【问题描述】:
我正在尝试为我的应用引擎网络应用设置开发/测试站点。我希望能够将功能推送到开发站点,然后在测试它们后更新我的实时/面向用户的站点。
- 有哪些工具可用于管理此类更新?
- 是否有任何与 Eclipse 的 Google 部署插件集成?
- 有什么好的地方可以了解这些类型的系统吗?
- 我应该在谷歌上搜索哪些关键字才能了解更多信息?
【问题讨论】:
标签: java google-app-engine deployment
我正在尝试为我的应用引擎网络应用设置开发/测试站点。我希望能够将功能推送到开发站点,然后在测试它们后更新我的实时/面向用户的站点。
【问题讨论】:
标签: java google-app-engine deployment
您需要创建至少两个应用程序,让我们为它命名(不要使用版本,因为您可能会破坏生产): yourname.appspot.com(生产) yournametest.appspot.com(测试)
使用数据存储区管理员将数据从生产复制到测试(需要添加带有产品名称的 appengine_config.py - 请参阅 appengine_config.py 中的文档以允许迁移数据)。
在测试前更改 app.yaml 中的版本名称以允许回滚到以前的版本。
部署测试 - 当前应用版本到当前 - 做测试查看日志和结果: appcfg update -A yournametest yoursourcedir
测试成功后。如果存在任何数据损坏风险,请备份生产。部署生产 - 检查新版本是否正常工作 - 将默认版本更改为当前版本。 appcfg update -A yourname yoursourcedir
最好的学习场所是 Google App Engine 页面和 Google。
有一些插件,但速度较慢,最好使用脚本或命令行。
【讨论】:
您可以使用多个版本的应用;这些可以并行提供,因此您可以在新版本上线之前对其进行测试。所有版本都将使用相同的数据存储。
如果您想使用不同的应用进行开发和生产,您也可以这样做。这实际上不需要任何特殊的集成,而且我不知道有任何工具可以促进它,因为它是一项如此简单的任务。如果您使用的是命令行工具,您可以通过--application 覆盖app.yaml 中的应用ID;据我所知,这在 Eclipse 中不可用。
【讨论】:
@Nick 和@Chameleon 的两个答案都是很好的可行解决方案。我会根据场景使用这两种方法。
对于较小的升级,@Nick 解决方案是有意义的。您可以通过在应用程序前附加版本号来实时测试新版本(例如:3.app-id.appspot.com)。您还需要确保新页面不使用默认(以前的)URL。
对于可能影响用户和/或数据的主要版本,请使用@Chameleon 解决方案(GAE 有一个工具可以将您的数据复制到Datastore Admin 下的您的测试应用程序)。有时该应用程序在本地开发中表现良好,但在实时部署时会中断。
【讨论】: