首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google App Engin中生产和测试环境的最佳实践

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

Stack Overflow用户
提问于 2014-10-13 08:12:21
回答 3查看 10.2K关注 0票数 23

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

我们还使用Google Cloud Storage和Cloud SQL。我想防止某些人在测试中工作时错误地在生产中工作的事故。

我们将在GCS中存储大量的内容。据我所知,GCS环境在项目之间是分开的。这对我们来说是可取的。但是,如果我们想要复制产品进行测试,是否可以将GCS从一个应用程序复制到另一个应用程序?

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

EN

回答 3

Stack Overflow用户

发布于 2014-10-14 09:51:02

Bruyere的回答在技术上是正确的,你可以对你的应用进行版本控制,也可以使用单独的项目。

在实践中,我已经做到了这两点,你总是需要分离项目,因为有很多很好的理由:

  • 您可能不希望同一人拥有更新转移环境(例如,所有开发人员都具有此功能)和生产环境(通常仅限于技术主管或QA团队)的权限,或者您可能不希望将两个应用程序引擎版本的持续集成并非易事,尤其是当您处理cron作业、电子邮件或XMPP接收
  • 时,您可能不希望同一人能够读/写转移数据和生产数据
  • ,您希望确保App Engine prod应用程序不会写入到转移云存储存储桶。如果它们是同一项目的一部分,则缺省情况下这是possible

我的建议是将与环境相关的数据(云存储存储桶、云SQL url等)存储在应用程序加载的配置文件中。如果您使用Java,我个人会使用一个由Maven根据两个配置文件(dev和prod,dev是默认配置文件)填充的属性文件。

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

票数 12
EN

Stack Overflow用户

发布于 2018-04-24 06:01:52

我还想知道UAT/Prod env有没有比project更好的选择,我发现Google文档中的这篇文章说你应该使用不同的项目。

代码语言:javascript
复制
Best Practices for Enterprise Organizations

https://cloud.google.com/docs/enterprise/best-practices-for-enterprise-organizations

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

公司标记-组标记-系统名称-环境(dev、test、uat、stage、prod)

例如,人力资源部薪酬系统的开发环境可以命名为acmeco-hr-comp-dev.

票数 5
EN

Stack Overflow用户

发布于 2014-10-13 21:52:44

我认为有两种方法可以做到这一点,这都取决于您的需求:

1)使用您app上的版本,云SQL中的不同实例,以及GCS的不同存储桶名称,您可以使用相同的项目。你只需要非常小心地设置每个调用的目标,并在调用上线时重新定向它们。

2)使用单独的项目可能是更安全的选择,但无论哪种方式,您都需要使用唯一的存储桶名称。存储桶名称在所有GCS实例中必须唯一。

一旦设置了权限,就很容易从一个存储桶复制到另一个存储桶。使用gsutil,您可以在存储桶之间复制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26331324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档