【发布时间】:2019-09-06 14:01:48
【问题描述】:
正如 Google 宣布其在 Google 云平台上运行的新服务云一样。谷歌表示,这可以作为无服务器技术进行扩展。它与无服务器技术有何不同以及如何扩展?
【问题讨论】:
标签: amazon-web-services docker google-cloud-platform devops serverless
正如 Google 宣布其在 Google 云平台上运行的新服务云一样。谷歌表示,这可以作为无服务器技术进行扩展。它与无服务器技术有何不同以及如何扩展?
【问题讨论】:
标签: amazon-web-services docker google-cloud-platform devops serverless
Cloud Run 是建立在 Knative(一个开源无服务器平台)之上的无服务器产品。它与大多数无服务器技术不同,因为它没有任何编程语言限制(请参阅docs)。
托管 Cloud Run(不是 GKE 上的 Cloud Run)的扩展基于 concurrency,或者您的服务可以同时处理的多个并发请求。
您也只需为实例处理任何请求的时间付费。如果您的实例在 10 秒内响应了 100 个请求,则您只需为这 10 秒付费。 (但是,如果只有 1 个请求运行 10 秒,您也需要支付 10 秒的费用,因此请注意实例扩展)。 (pricing)
这是第一个版本,所以还有很多限制(比如无法connect to Cloud SQL which I wrote an article about)。您可以查看支持服务的完整列表here
【讨论】:
我刚刚看到这个答案并想更正它:Google 的 Cloud Run 是使用 Google 内部无服务器技术(不是 Knative OSS 实现)对 Knative API 的重新实现。
Google 的内部技术在很大程度上依赖于其他非 OSS 功能(Stubby、Borg、LOAS 等),但也具有经过验证的多租户和扩展能力,这意味着我们 (Google) 采用了双管齐下的方法-- 在当今的基础架构上构建 OSS 接口和实现,同时还提供更接近 Lambda 体验的托管服务。 Google 还提供 Cloud Run on GKE,它确实运行 OSS 软件,打包后可以很好地适应 GCP。请参阅Cloud Run marketing page 上的选择适合您的平台部分,了解两者之间的功能比较。
Cloud Run 的定价模型基于实例 CPU 秒数和 RAM 使用量;您可以选择(对于 Knative 和 Cloud Run)每个容器可以运行多少个并发请求——这决定了将创建多少个实例来处理请求。 (注意 Lambda 基本上强制这个数字为 1——不允许并发。)
如果您每秒有 100 个请求,每个请求需要 3 秒,那么您将在不同的并发下获得以下实例计数:
您应该根据应用程序可以处理的请求数量来设置 ConcurrencyCount,而不会同时降低延迟;这可能需要一些实验。默认值适用于主要从一两个数据库中获取数据然后进行少量处理的应用程序。如果您正在接收视频,然后在本地对其进行转码,则 1 或 2 之类的内容会更有意义。
【讨论】: