gcloud预览app部署流程需要约8分钟,这正常吗?

46

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

当触发gcloud preview app deploy命令时,整个过程需要约8分钟,其中大部分时间都是“更新服务”。这正常吗?更重要的是,我该如何加快速度?

此致敬礼,

Ward


3
没问题,你大部分时间都在构建和上传 Docker 镜像,这很正常。 - Igor Artamonov
我已经在那里回答了这个问题,也许你可以看一下。http://stackoverflow.com/a/37806746/2746292 - Nan Hui
1
我卡在“正在更新服务 [flex-env-get-started](这可能需要几分钟)...⠏”上了。已经花了我20分钟了..... - Lin Du
6个回答

37

是的,这是完全正常的。部署步骤中大部分都是在你的计算机之外进行且与代码库大小无关,因此你无法做太多事情来加速该过程。

将应用程序部署到App Engine涉及的各种步骤可以分为以下类别:

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

唯一需要大量时间的过程是最后一个部分,即进行所有必要的检查以确保部署成功和开始接受流量。根据您的代码大小(上传代码以创建容器)和资源要求(规划自定义资源),步骤2和3可能需要更长的时间。

如果你进行分析,你会发现大约70%的时间耗费在最后一个步骤中,这是我们最少能看到的部分,但它是赋予App Engine处理所有重活的能力的基本过程。


2
我一直在处理这个问题,我们的 aspnet core flex 实例通常需要 12-15 分钟才能启动。我不相信检查/负载平衡的论点,因为即使使用 no-promote 部署也需要同样长的时间,应用程序的启动时间少于 2 秒,健康检查很轻量级(从一开始就每秒获得 2 次)。Docker 镜像在不到 1 分钟内构建完成。你甚至可以下载 Docker 镜像并在自己的机器上部署,比他们快 10 倍。flex 实例部署生态系统中出现了严重问题。 - Darren
嗨达伦 - 可能已经发生了改变。最近宣布了gVisor (https://github.com/google/gvisor),他们可能正在尝试使用它,并且可能会有一些性能影响。 - Vikram Tiwari
1
嗨,Flex部署可能会比App Engine标准慢,但在Open Source中宣布的新产品gVisor绝不会影响部署路径... - ludo

17

将代码部署到同一版本后,再次部署所需时间从6分钟缩短至3分钟。

示例:

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

我不知道我是否看到了这个帮助。它差不多。 - poy
我写这篇回答已经有一段时间了,GCP的情况可能已经发生了变化。 - Eyal Levin

5

请确保检查正在上传的zip文件中包含的内容(在部署时会告诉您其位置),并确保您的yaml skip_files设置包括您的.git目录(如果有)和node_modules等内容。


1
您还可以使用 .gcloudignore 文件来防止上传某些文件。 - scipilot

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

1
不确定,但如果您在相同的服务和版本上部署,则应该是这种情况。如果是新版本或不同的服务,则需要类似的时间。这意味着补丁可以快速应用,但发布/回滚较慢。 - Vikram Tiwari
31
根据我的经验,后续版本的部署时间不会改善。 - Ward Bekker
2
我的Gitlab CI构建总是需要大约10分钟。 - Luís Brito
4
是的,AppEngine 已经到了无法使用的地步,因为它需要10分钟以上才能完成部署。 - Randy L
后续操作大约需要5分钟时间,使用相同版本。从未见过1分钟或更短时间。 - colinwong

1

1
最近的更新要求所有部署都必须通过gcloud进行,标准环境所需的时间也同样长。我在17分钟前启动了我的部署,但它仍在进行中。 - ndtreviv

-10

只需从app.yaml的根目录执行此命令

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

它将在几秒钟内上传。


3
我认为你正在使用标准环境,问题涉及灵活环境,而且这需要很长时间。 - Ali Khosro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接