【问题标题】:gcloud preview app deploy process takes ~8 minutes, is this normal?gcloud preview app deploy 过程大约需要 8 分钟,这正常吗?
【发布时间】:2016-10-07 13:52:00
【问题描述】:

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

gcloud preview app deploy 触发时,整个过程大约需要 8 分钟,其中大部分是“更新服务”。这是正常的吗?更重要的是,我怎样才能加快速度?

问候,

病房

【问题讨论】:

  • 这很正常,你大部分时间都是在构建和上传 docker 镜像
  • 我已经回答了这个问题,也许你可以看到它。 stackoverflow.com/a/37806746/2746292
  • 我被卡住了Updating service [flex-env-get-started] (this may take several minutes)...⠏。我需要 20 分钟.....

标签: google-app-engine google-cloud-platform gcloud app-engine-flexible


【解决方案1】:

是的,这很正常。大多数部署步骤都在您的计算机之外进行,并且与您的代码库大小无关,因此您无法加快进程。

在 App Engine 上部署应用所涉及的各种步骤可分为以下几类:

  1. 从 app.yaml 收集信息以了解整体部署
  2. 收集代码并使用 app.yaml 中指定的 docker 镜像,使用您的代码构建 docker 镜像
  3. 提供计算实例、网络/防火墙规则、在实例上安装 docker 相关工具、将 docker 映像推送到实例并启动它
  4. 确保所有部署都成功,开始运行状况检查,如果需要,转移/平衡负载。

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

如果您进行分析,您会发现大约 70% 的时间被消耗在最后一步,我们对此了解最少,但却是让应用引擎能够完成所有繁重工作的基本流程。

【讨论】:

  • 我一直在处理这个问题,我们通常会在 12 到 15 分钟内打卡来获取一个 aspnet core flex 实例。我不买检查/负载平衡的论点,因为没有升级的部署仍然需要很长时间,应用程序的启动时间不到 2 秒,健康检查很轻(我们从一开始就每秒得到 2 次)。 Docker 映像在
  • 嘿达伦 - 它可能肯定已经改变了。最近宣布了 gVisor (github.com/google/gvisor),他们可能正在尝试使用它,它可能会对性能产生一些影响。
  • 您好,Flex 部署可能很慢(与 App Engine 标准相反),但开源中宣布的新 gVisor 产品绝不会在部署路径中...
【解决方案2】:

部署到相同版本让我在后续部署中从 6 分钟缩短到 3 分钟。

例子:

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

【讨论】:

  • 我不知道我看到了这个帮助。差不多。
  • 我已经有一段时间没有写这个答案了,GCP 中的情况可能已经发生了变化。
【解决方案3】:

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

【讨论】:

  • 您还可以使用 .gcloudignore 文件来防止上传内容。
【解决方案4】:

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

【讨论】:

  • 不确定,但如果您在相同的服务和版本上进行部署,则应该是这种情况。如果它是较新的版本或不同的服务,则需要相似的持续时间。这意味着补丁可以快速应用,但推出/回滚很慢。
  • 根据我的经验,后续版本的部署时间没有改善。
  • 我的在 Gitlab CI 中总是 ~10 分钟
  • 是的,由于这些 10 多分钟的部署,AppEngine 已经到了无法使用的地步
  • 后续使用相同版本大约需要 5 分钟。从未见过 1 分钟或更短的时间。
【解决方案5】:

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

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

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

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

【讨论】:

  • 由于最近的更新要求所有部署都通过 gcloud,因此标准环境所需的时间也一样长。我在 17 分钟前启动了我的,它还在继续。
【解决方案6】:

只需从 app.yaml 的根目录触发此命令

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

它将在几秒钟内上传。

【讨论】:

  • 我认为您使用的是标准环境,问题是关于灵活环境,它需要很长时间
猜你喜欢
  • 2015-08-28
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 2018-11-25
  • 2019-02-27
  • 2020-01-30
相关资源
最近更新 更多