Google app engine Google App Engin中生产和测试环境的最佳实践

Google app engine Google App Engin中生产和测试环境的最佳实践,google-app-engine,Google App Engine,在Google App Engine中,生产和测试(暂存)环境的最佳实践是什么?设置单独的项目是个好主意吗 我们还使用谷歌云存储和云SQL。我想防止事故发生,当某人打算在测试中工作时,他们错误地在生产中工作 我们将在地面军事系统中储存很多东西。据我所知,GCS环境在项目之间是分开的。这对我们来说是可取的。但是,如果我们想复制产品进行测试,是否可以将GCS从一个应用复制到另一个应用 期待听到其他人是如何做到这一点的。我可以看到两种方法来做到这一点,这一切都取决于您的需要: 1) 使用应用程序上的版

在Google App Engine中,生产和测试(暂存)环境的最佳实践是什么?设置单独的项目是个好主意吗

我们还使用谷歌云存储和云SQL。我想防止事故发生,当某人打算在测试中工作时,他们错误地在生产中工作

我们将在地面军事系统中储存很多东西。据我所知,GCS环境在项目之间是分开的。这对我们来说是可取的。但是,如果我们想复制产品进行测试,是否可以将GCS从一个应用复制到另一个应用


期待听到其他人是如何做到这一点的。

我可以看到两种方法来做到这一点,这一切都取决于您的需要:

1) 使用应用程序上的版本、云SQL中的不同实例和GCS的不同bucket名称,您可以使用同一个项目。你只需要非常小心地设定你的每一个电话的目标,并在电话接通时重新引导他们

2) 使用单独的项目可能是更安全的选择,但无论如何,您都需要使用唯一的bucket名称。Bucket名称在所有GCS实例中必须是唯一的


一旦设置了权限,就可以很容易地从一个bucket复制到另一个bucket。使用你可以从一个bucket复制到另一个bucket。

Bruyere的答案在技术上是正确的,你可以对你的应用程序进行版本设置,也可以使用单独的项目

Best Practices for Enterprise Organizations
在实践中,我已经完成了这两项工作,您总是需要将项目分开,原因有很多:

  • 您可能不希望同一个人有权更新登台环境(例如,所有开发人员都有此能力)和生产环境(通常仅限于技术负责人、QA团队或您的持续集成服务器)
  • 隔离两个应用程序引擎版本并不是那么容易,特别是当您处理cron作业、电子邮件或XMPP接收时
  • 您可能不希望同一个人能够读/写暂存数据和prod数据
  • 您希望确保App Engine prod App不会写入暂存云存储桶。如果它们是同一项目的一部分,默认情况下这是可能的
我的建议是将与环境相关的数据(云存储桶、云SQL url等)存储在应用程序加载的配置文件中。如果您使用Java,我个人会使用一个属性文件,该文件由Maven基于两个配置文件(dev和prod,dev是默认配置文件)填充


另一个要点是从一开始就将环境分开。一旦您开始假设两个环境将生活在同一个应用程序中,您的许多代码将基于该假设进行开发,并且很难回到两个不同的项目中。

我还想知道,对于UAT/Prod env,是否还有其他选项,而不是project,我从谷歌文档中找到这篇文章,上面说你应该使用不同的项目

Best Practices for Enterprise Organizations

我们建议您花一些时间规划您的项目ID 可管理性。典型的项目ID命名约定可能使用 以下模式:

[company tag]-[group tag]-[system name]-[environment (dev, test, uat, stage, prod)]
例如,人力资源的开发环境 该部门的薪酬体系可能被命名为acmeco-hr-comp-dev

可能重复的