【问题标题】:What is the difference between Google App Engine and Google Cloud Run?Google App Engine 和 Google Cloud Run 有什么区别?
【发布时间】:2019-09-01 07:26:06
【问题描述】:
有人知道 Google App Engine Flex 和 Google Cloud Run 的区别吗?
谢谢
【问题讨论】:
标签:
google-app-engine
google-cloud-run
【解决方案1】:
Cloud Run 文档的信息还不是很丰富,但新视频 Where Should I Run My Code? Choosing From 5+ Compute Options (Cloud Next '19) 将 Cloud Run 与 App Engine 以及 Cloud Functions、Google Kubernetes Engine 和 Google Compute Engine 进行了比较。
- 您可以选择将您的 Cloud Run 应用部署在完全托管的基础架构(“无服务器”、按使用付费、根据流量快速自动扩展和缩减至 0)或 Google Kubernetes Engine 集群上。 App Engine 始终是完全托管的,具有自动缩放功能。 App Engine Flex 会逐渐自动扩缩至 1。App Engine 第二代会自动快速扩缩至 0。
- Cloud Run 要求您的应用在容器中运行。 App Engine Flex 为任何语言运行时运行您的容器。 App Engine 第二代提供了一些语言运行时。
- Cloud Run 服务现在可以响应 HTTPS 请求(不必来自 Web 浏览器)、gRPC 请求、Pub/Sub 触发器或计划触发器。它可以配置为允许最多 15 分钟来处理请求。 App Engine 运行 HTTP 网络应用程序。它对 App Engine Classic、Standard 和 Flex 具有不同的请求超时时间,并且针对自动缩放、基本缩放和手动缩放而有所不同。
- Cloud Run 专为包括软件开发人员和运营专家在内的团队而设计。 App Engine 专为开发者设计。
- Cloud Run 正式发布(截至 2019 年 11 月 14 日)。 App Engine 经过多年的实战考验,每天处理数十亿个请求。
在开始之前调查 Cloud Run 的限制。例如。负载容器最多可以配置 2GB RAM(使用 GKE 集群更多),没有磁盘空间(只有 RAM 磁盘)。请参阅Cloud Run How-To Guides 和Cloud Run Documentation 的其余部分。
另见App Engine Documentation。
【解决方案2】:
Google 云运行利用 Docker 容器内的无状态应用程序。该服务可以自动伸缩,不使用时会自动伸缩为0。据我了解,应用引擎 flex 无法扩展到 0,通常不被视为无状态架构。
【解决方案3】:
Cloud Run(托管)允许 5 分钟默认超时,最多可配置 15 分钟。 Kubernetes 集群上的 Cloud Run 没有限制。 source
App Engine 最多允许 24 小时超时,具体取决于选项。 source
此外,Cloud Run(托管)定价政策似乎更好(可能取决于用例)。您只需为请求所花费的时间付费。实例何时自动缩放到 0 并不重要,因为您不会为空闲时间付费。 source