Google App Engine中的生产和测试(暂存)环境的最佳实践是什么?设置单独的项目是个好主意吗?
我们还使用Google Cloud Storage和Cloud SQL。我想防止某些人在测试中工作时错误地在生产中工作的事故。
我们将在GCS中存储大量的内容。据我所知,GCS环境在项目之间是分开的。这对我们来说是可取的。但是,如果我们想要复制产品进行测试,是否可以将GCS从一个应用程序复制到另一个应用程序?
期待听到别人是如何做到这一点的。
发布于 2014-10-14 09:51:02
Bruyere的回答在技术上是正确的,你可以对你的应用进行版本控制,也可以使用单独的项目。
在实践中,我已经做到了这两点,你总是需要分离项目,因为有很多很好的理由:
我的建议是将与环境相关的数据(云存储存储桶、云SQL url等)存储在应用程序加载的配置文件中。如果您使用Java,我个人会使用一个由Maven根据两个配置文件(dev和prod,dev是默认配置文件)填充的属性文件。
另一个重要的点是从一开始就将环境分开。一旦您开始假设这两个环境将存在于同一应用程序中,您的许多代码将基于该假设进行开发,并且将更难移回两个不同的项目。
发布于 2018-04-24 06:01:52
我还想知道UAT/Prod env有没有比project更好的选择,我发现Google文档中的这篇文章说你应该使用不同的项目。
Best Practices for Enterprise Organizationshttps://cloud.google.com/docs/enterprise/best-practices-for-enterprise-organizations
我们建议您花一些时间规划您的项目ID以便于管理。典型的项目ID命名约定可能使用以下模式:
公司标记-组标记-系统名称-环境(dev、test、uat、stage、prod)
例如,人力资源部薪酬系统的开发环境可以命名为acmeco-hr-comp-dev.
发布于 2014-10-13 21:52:44
我认为有两种方法可以做到这一点,这都取决于您的需求:
1)使用您app上的版本,云SQL中的不同实例,以及GCS的不同存储桶名称,您可以使用相同的项目。你只需要非常小心地设置每个调用的目标,并在调用上线时重新定向它们。
2)使用单独的项目可能是更安全的选择,但无论哪种方式,您都需要使用唯一的存储桶名称。存储桶名称在所有GCS实例中必须唯一。
一旦设置了权限,就很容易从一个存储桶复制到另一个存储桶。使用gsutil,您可以在存储桶之间复制。
https://stackoverflow.com/questions/26331324
复制相似问题