gcloud preview app deploy 过程大约需要 8 分钟,这正常吗?

Posted

技术标签:

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

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

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

问候,

病房

【问题讨论】:

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

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

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

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

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

它将在几秒钟内上传。

【讨论】:

我认为您使用的是标准环境,问题是关于灵活环境,它需要很长时间

以上是关于gcloud preview app deploy 过程大约需要 8 分钟,这正常吗?的主要内容,如果未能解决你的问题,请参考以下文章

gcloud preview app deploy每次在python项目中上传所有源代码文件需要很长时间

gcloud - 错误:(gcloud.app.deploy)权限错误获取应用程序

错误:(gcloud.app.deploy)INVALID_ARGUMENT:无法解析源

gcloud app deploy :此部署文件过多

如何禁用`gcloud preview app run'的运行状况检查

错误:(gcloud.app.deploy)您必须在使用自定义运行时提供自己的 Dockerfile