【发布时间】:2011-04-17 04:04:54
【问题描述】:
在正确配置了 Development 服务器和 Production 服务器后,我想在 Google App Engine 上设置一个 Staging 环境,以用于在将新开发版本部署到生产环境之前对其进行实时测试。
我知道两种不同的方法:
A.第一个选项是修改app.yaml version参数。
version: app-staging
我不喜欢这种方法的是生产数据被我的暂存测试污染了,因为(如果我错了,请纠正我):
- 暂存版本和生产版本共享同一个数据存储
暂存版本和生产版本共享相同的日志
关于第一点,不知道能不能用新的namespaces python API“修复”。
B.第二个选项是通过修改app.yaml application参数
application: foonamestaging
使用这种方法,我将创建完全独立于生产版本的第二个应用程序。
我看到的唯一缺点是我不得不配置第二个应用程序(管理员设置)。
使用像 Gaebar 这样的备份/恢复工具,这个解决方案也很有效。
您使用哪种方法为您的 Web 应用程序设置暂存环境?
另外,您是否有任何自动化脚本可以在部署之前更改 yaml?
【问题讨论】:
-
@bdolan 你有什么参考吗?
-
@bdonlan, IANAL,但我不认为@system 的使用可以解释为“旨在避免产生费用”或“模拟或充当单个应用程序”。 @systempuntoout,我的“登台”实际上是从 SDK 完成的(我不希望登台向整个世界开放),但是您的方法似乎也不错(如果您对“向世界开放”没有问题" 部分;-)。
-
日志已经按版本分开,所以没有“污染”。使用命名空间来避免破坏生产数据听起来是个好主意。当然,除非您的暂存版本中的错误与您的命名空间被严重破坏有关。
-
@systempuntoout 我希望我能不止一次地支持你的问题。没有它,我永远不会想到使用命名空间来暂存数据。谢谢!
-
为暂存/开发环境使用多个应用程序很好,这是大多数用户最终采用的解决方案,因为使用多个版本进行测试时存在隔离问题。
标签: python google-app-engine deployment staging