gcloud preview 应用程序部署过程需要大约 8 分钟,这正常吗?

gcloud preview app deploy process takes ~8 minutes, is this normal?

尝试新的灵活应用引擎运行时。在这种情况下,Rails 运行时上的自定义 Ruby 基于 google 提供的 ruby 运行时。

当发射 gcloud preview app deploy 时,整个过程大约需要 8 分钟,其中大部分是 "updating service"。这是正常的吗?更重要的是,我怎样才能加快速度?

此致,

选区

是的,这是完全正常的。大多数部署步骤发生在您的计算机之外,并且与您的代码库大小无关,因此您可以做很多事情来加快该过程。

在 App Engine 上部署应用程序所涉及的各种步骤可归类如下:

  1. 从 app.yaml 收集信息以了解整体部署
  2. 收集代码并使用 app.yaml 中指定的 docker 图像,用您的代码构建一个 docker 图像
  3. 配置计算实例,networking/firewall规则,在实例上安装docker相关工具,将docker映像推送到实例并启动它
  4. 确保所有部署都成功,开始运行状况检查,如果需要,transfer/balance 卸载。

唯一花费大部分时间的过程是最后一部分,它执行所有必要的检查以确保部署成功并开始摄取流量。根据您的代码大小(上传代码以创建容器)和资源要求(配置自定义资源),第 2 步和第 3 步可能需要更多时间。

如果您进行分析,您会发现大约 70% 的时间花在了最后一步,我们对这一步骤的可见性最低,但却是让应用引擎能够完成所有繁重工作的基本过程。

请注意,后续部署应该比 8 分钟快得多。我在 App Engine Flex 上使用 Node.js 进行的测试通常只需 1 分钟或更短时间。

部署到同一版本使我在后续部署中的时间从 6 分钟缩短到 3 分钟。

示例:

$ gcloud app deploy app.yaml --version=test

确保你检查它正在上传的 zip 中的内容(它告诉你它在部署时的位置),并确保你的 yaml skip_files 设置为包含你的 .git 目录(如果有的话),并且 node_modules

只需从 app.yaml

的根目录启动此命令

从 shell 访问 app.yaml 的目录然后 运行 gcloud app deploy

它将在几秒钟内上传。

正如上面@ludo 所建议的那样,您可以同时使用 Google App Engine Standard 而不是 Flex。第一次部署后大约需要 30-50 秒。

您可以通过运行本教程测试 GAE Standard,不需要计费帐户:

https://codelabs.developers.google.com/codelabs/cloud-app-engine-springboot/index.html#0

并同意了。这不涉及 GAE Flex,但提供了一些选项以在开发过程中加速。