【问题标题】:Maintain development and live site on appengine在 appengine 上维护开发和实时站点
【发布时间】:2011-11-19 18:10:17
【问题描述】:

我正在尝试为我的应用引擎网络应用设置开发/测试站点。我希望能够将功能推送到开发站点,然后在测试它们后更新我的实时/面向用户的站点。

  • 有哪些工具可用于管理此类更新?
  • 是否有任何与 Eclipse 的 Google 部署插件集成?
  • 有什么好的地方可以了解这些类型的系统吗?
  • 我应该在谷歌上搜索哪些关键字才能了解更多信息?

【问题讨论】:

    标签: java google-app-engine deployment


    【解决方案1】:

    您需要创建至少两个应用程序,让我们为它命名(不要使用版本,因为您可能会破坏生产): 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。

    有一些插件,但速度较慢,最好使用脚本或命令行。

    【讨论】:

      【解决方案2】:

      您可以使用多个版本的应用;这些可以并行提供,因此您可以在新版本上线之前对其进行测试。所有版本都将使用相同的数据存储。

      如果您想使用不同的应用进行开发和生产,您也可以这样做。这实际上不需要任何特殊的集成,而且我不知道有任何工具可以促进它,因为它是一项如此简单的任务。如果您使用的是命令行工具,您可以通过--application 覆盖app.yaml 中的应用ID;据我所知,这在 Eclipse 中不可用。

      【讨论】:

        【解决方案3】:

        @Nick 和@Chameleon 的两个答案都是很好的可行解决方案。我会根据场景使用这两种方法。

        对于较小的升级,@Nick 解决方案是有意义的。您可以通过在应用程序前附加版本号来实时测试新版本(例如:3.app-id.appspot.com)。您还需要确保新页面不使用默认(以前的)URL。

        对于可能影响用户和/或数据的主要版本,请使用@Chameleon 解决方案(GAE 有一个工具可以将您的数据复制到Datastore Admin 下的您的测试应用程序)。有时该应用程序在本地开发中表现良好,但在实时部署时会中断。

        【讨论】:

          猜你喜欢
          • 2015-08-30
          • 1970-01-01
          • 1970-01-01
          • 2010-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-05
          相关资源
          最近更新 更多