将测试和开发应用版本部署到Google Compute Platform的最佳策略

时间:2017-02-22 16:44:40

标签: postgresql google-app-engine angular

Google Compute Platform

我有一个Angular(2)应用和一个Node.js中间件(Loopback)作为项目中App Engine的服务运行。 对于数据库,我们在同一个项目中运行PostgreSQL的计算引擎。

我们想要什么

测试进展顺利,我们现在想要一个测试版(用于持续升级测试/演示/等)和一个更稳定的发布部署对于我们最初的内部客户。

我们将在psql中使用不同的数据库作为发行版本,但可以使用相同的服务器进行测试和部署的应用程序。

我们应该......?

  1. 在我的本地方框上创建另一个GCP项目和另一个gcloud设置,以部署到我们的发布部署的新项目,
  2. 或者将多个版本的服务部署到具有不同前缀的单个项目更好 - 我该怎么做?
  3. 成本是我们这个小公益组织的一大担忧。 :)

1 个答案:

答案 0 :(得分:2)

我的建议如下:

创建两个项目,每个项目对应一个数据库实例。你可以在测试项目中乱搞所有你想要的东西,而不必担心搞乱你的prod部署。您需要在某处安全地存储数据库凭据。一种可能的解决方案是使用Google Cloud Project Metadata,因此您的代码可以在项目之间保持不变。

当您准备部署到生产环境时,我建议您在生产项目中部署新版App Engine应用程序,但不要将其升级为默认版本。

gcloud app deploy --no-promote

这意味着客户仍会使用旧版本,但会部署新版本,以确保一切正常。之后,您可以缓慢(或快速)将流量转移到新版本。

在此视频的大约8:45,演示了流量分割: https://vimeo.com/180426390

此外,我建议积极关闭未使用的App Engine Flexible部署以节省成本。您可以阅读更多here