【问题标题】:How to quickly update the code on App Engine after its first deployment?首次部署后如何快速更新 App Engine 上的代码?
【发布时间】:2018-03-13 18:03:25
【问题描述】:

需要long 通过此命令将应用部署到 App Engine

gcloud app deploy

在我更新我的源代码后,即使只是一行更改,我也必须再次发出此命令才能将更改上传到 App Engine。同样,仅更改一行代码就需要很长时间来部署。有没有办法快速更新 App Engine 上的代码,而不是再次进行这种耗时的部署?

我正在寻找可以在代码首次部署到 App Engine 后加快代码更新的选项。由于我使用的是 flex,使用标准是否可以更快地更新代码?是否真的在 App Engine 上无法绕过它,而唯一的方法是使用其他服务,例如 Compute Engine?

【问题讨论】:

  • 标准还是弹性环境?
  • 这是一个弹性环境
  • 我对这个问题添加了更多想法。我同意它与其他帖子相似,但它不是重复的。我可能需要再花一个小时才能找到该帖子,该帖子的答案解释了为什么它很慢,但没有关于如何加快速度的答案。
  • 鉴于 Flex 的应用程序代码应该在本地运行或多或少相同(假设为单个实例),您为什么要部署小更改并希望在更多类似生产的环境中进行测试(即使用于分期)?您使用的是什么语言运行时?

标签: google-app-engine deployment


【解决方案1】:

(2021 年 9 月):首先,您为App Engine (flexible) 描述的问题不适用于App Engine (standard),这几乎是一个完全不同的产品。 (对于那些新手,here is a comparison b/w 两种产品。)这个问题已经有几年的历史了,现在您可以选择更多选项:

  1. App Engine 标准:如果您的应用可以在 Python 3.7+、Java 11、Go 1.12+、PHP 7、Node.js 10+ 或 Ruby 2.5+ 中运行,那么这是显而易见的去处。部署时间应少于 1 分钟。
  2. Cloud Functions:如果您没有完整的应用程序,或者您的应用程序由一个函数/路由组成,或者很短且简单,请考虑将其转换为云功能的微服务。它的部署时间也不到一分钟。
  3. Cloud Run:如果您使用 App Engine 灵活,因为您的应用是容器化的,请考虑 Cloud Run,它以无服务器方式运行容器。一个很大的好处是Dockerfile可选(由于Cloud Buildpacks)。它采用了许多 GAE 灵活用例。部署也不到一分钟。如果有兴趣,我制作了一对关于如何从 App Engine 标准迁移到 Cloud Run 的视频,using Dockerno Docker。在某个时候,我会从 GAE 灵活过渡。
  4. App Engine 灵活:如果上述选项都不起作用,要求您保持 GAE 灵活,那么是的,您将不得不处理其较长的部署时间(由于系统的复杂性以及代表您启动和管理所需的所有资源)。如果您有容器并且不能选择 Cloud Run,还可以考虑 GKE AutopilotGCE MIGs(托管 [VM] 实例组)。

【讨论】:

    【解决方案2】:

    是的,在这种情况下标准 env 应用程序部署要快得多,因为它只涉及上传修改后的文件并重新启动实例。

    但由于其他原因,通常不能选择使用标准环境。我引用的潜在重复帖子本身包含对潜在速度改进的解释和建议的引用。我认为复制它们没有意义。

    选择 flex env 的最常见原因:

    • 语言支持
    • 标准环境沙盒的限制

    另请参阅:Google App Engine Standard or Flexible environment?

    【讨论】:

    • 如果您能详细说明一下使用标准 env 通常不是出于其他原因的选择,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2020-02-17
    • 2016-01-18
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多