但这两个都是操作类型的考虑因素,对我来说都不是问题。选择App Engine Flex而不是Cloud Run有技术优势吗?
谢谢
注意:截至2019年4月发布此问题,beta版Serverless VPC Access仅适用于标准环境,不适用于Flex,因此这不是在比较App Engine Flex和Cloud Run时需要考虑的问题。
但这两个都是操作类型的考虑因素,对我来说都不是问题。选择App Engine Flex而不是Cloud Run有技术优势吗?
谢谢
注意:截至2019年4月发布此问题,beta版Serverless VPC Access仅适用于标准环境,不适用于Flex,因此这不是在比较App Engine Flex和Cloud Run时需要考虑的问题。
定价/自动扩展: GAE Flexible环境和Cloud Run之间的定价模型有一些不同。
基础架构:由于GAE Flexible运行在虚拟机上,因此部署新版本应用程序并进行扩展比Cloud Run慢一些。 Cloud Run的部署速度更快。
可移植性:Cloud Run使用开源Knative API及其容器契约。这使您具有更大的灵活性和自由度。如果您想在您管理的基础设施(例如GKE)上运行相同的工作负载,则可以使用“Cloud Run on GKE”实现。
我实际上建议你认真考虑 Cloud Run 而不是 App Engine。
随着时间的推移,我看到了一些有关正在开发一个“新”的 App Engine 的评论,但实际上 Cloud Run 才是答案。它目前处于测试阶段,这可能是个问题。我见过一些公司在生产中使用 beta 服务,其他公司则等待。然而,如果我今天要开始一个新的应用程序,我肯定会选择 Cloud Run 而不是 App Engine Flex。
Google 在 Kubernetes 方面非常深入,并将其作为业务功能。由于 Cloud Run 坐落在 GKE 上,这意味着它通过其他团队(普通 GKE 基础设施)间接地接受开发。
相反,App Engine 使用的是一些较旧的技术。虽然不错,但它是“昨天的”技术。对我而言,Google 似乎是一个对行业中新技术和广受采用的技术感到非常兴奋的公司。
所有这些都说明 - 当您将服务封装在容器中时,您应该能够在任何地方运行它们?嗯,在任何容器平台上都可以。你可以使用 Cloud Endpoints 来提供你的服务,并在 App Engine 和 Cloud Run 上部署 - 来回交换。然后,在那时,限制可能是提供的服务。例如,Cloud Run 目前不支持一些项目,如 Cloud Load Balancing 或 Cloud Memorystore。这可能会成为今天的阻碍因素。
主要区别在于后台任务。
在Cloud Run中,所有内容都由请求启动,一旦该请求完成,实例将不再保持运行状态。
App Engine还提供了一些内置的免费功能,如内存缓存,但我认为这在App Engine Flex中不适用。
对于简单的HTTP API,差异可以忽略不计,并且您可以使用其他GCP产品(例如Cloud Scheduler、Cloud Task)获得App Engine提供的某些功能。
您可以观看以下视频,了解有关Cloud Run的比较和演示: https://www.youtube.com/watch?v=rVWopvGE74c
App Engine Flexible 专注于“先写代码”,面向开发人员,App Engine 应用程序由多个服务组成,您在部署应用程序时不必进行任何命名。
GAE 灵活环境的特点:
Cloud Run 是一种托管计算平台,使您能够运行通过请求或事件调用的容器,一切都是服务,无论是实际服务还是具有 Web 接口的应用程序,因此请将其用作服务部署而不是应用程序。
Cloud Run 的特点:
您可以使用以下网址了解Cloud Run和App Engine之间的区别。 托管选项
有时候选择App Engine而不是Cloud Run的原因是,Cloud Run没有后台进程。它的响应时间也仅为15分钟。