google 云的 Cloud 运行 与无服务器技术有何不同 它的可扩展性如何?
How google cloud's Cloud Run is difference from sereverless technology how it is scalable?
由于 Google 已宣布其在 Google 云平台上的新服务云 运行。 Google 说这是可扩展的无服务器技术。它与无服务器技术有何不同以及它的可扩展性如何?
Cloud 运行 是构建在 Knative (an open-source serverless platform). It's different from most of the serverless technologies as it doesn't have any programming language limitations (see docs 之上的无服务器产品。
托管云 运行(不是 GKE 上的云 运行)的扩展基于 concurrency
,或者您的服务可以同时处理的并发请求数。
您也只需按实例处理任何请求的时间付费。如果您的实例在 10 秒内响应 100 个请求,您只需为这 10 秒付费。 (但是,如果只有 1 个请求 运行 持续 10 秒,您也会被收取 10 秒的费用,因此请注意实例缩放)。 (pricing)
这是第一次发布,所以还有很多限制(比如无法connect to Cloud SQL which I wrote an article about). You can see the full list of supported services here
我刚刚看到这个答案并想更正它:Google 的 Cloud Run 是使用 Google 的内部无服务器技术(不是 Knative OSS 实施)。
Google 的内部技术在很大程度上依赖于其他 non-OSS 功能(Stubby、Borg、LOAS 等),但也具有经过验证的多租户和扩展能力,这意味着我们(Google) 采用 two-pronged 方法——在当今的基础设施上构建 OSS 接口和实现,同时提供更接近 Lambda 体验的托管服务。 Google 还在 GKE 上提供 Cloud 运行, 执行 运行 OSS 软件,打包后非常适合 GCP。请参阅 选择适合您的平台 部分 Cloud Run marketing page 以了解两者之间的功能比较。
云 运行 的定价模型基于实例 CPU 秒和 RAM 使用;您可以选择(对于 Knative 和 Cloud 运行)每个容器可以 运行 多少个并发请求——这决定了将创建多少个实例来处理请求。 (请注意,Lambda 基本上强制此数字为 1——不允许并发。)
如果您每秒有 100 个请求,每个请求需要 3 秒,那么在不同的并发情况下您将拥有以下实例计数:
- ConcurrencyCount=1:300 个实例
- ConcurrencyCount=10:30 个实例
- ConcurrencyCount=80:4 个实例(默认)
- ConcurrencyCount=200:2 个实例
- ConcurrencyCount=300 : 1 个实例
您应该根据您的应用程序可以同时处理多少请求而不降低延迟来设置 ConcurrencyCount;这可能需要一些实验。默认值适用于主要从一个或两个数据库中获取数据然后进行少量处理的应用程序。如果您正在接收视频,然后在本地对其进行转码,则 1 或 2 之类的内容会更有意义。
由于 Google 已宣布其在 Google 云平台上的新服务云 运行。 Google 说这是可扩展的无服务器技术。它与无服务器技术有何不同以及它的可扩展性如何?
Cloud 运行 是构建在 Knative (an open-source serverless platform). It's different from most of the serverless technologies as it doesn't have any programming language limitations (see docs 之上的无服务器产品。
托管云 运行(不是 GKE 上的云 运行)的扩展基于 concurrency
,或者您的服务可以同时处理的并发请求数。
您也只需按实例处理任何请求的时间付费。如果您的实例在 10 秒内响应 100 个请求,您只需为这 10 秒付费。 (但是,如果只有 1 个请求 运行 持续 10 秒,您也会被收取 10 秒的费用,因此请注意实例缩放)。 (pricing)
这是第一次发布,所以还有很多限制(比如无法connect to Cloud SQL which I wrote an article about). You can see the full list of supported services here
我刚刚看到这个答案并想更正它:Google 的 Cloud Run 是使用 Google 的内部无服务器技术(不是 Knative OSS 实施)。
Google 的内部技术在很大程度上依赖于其他 non-OSS 功能(Stubby、Borg、LOAS 等),但也具有经过验证的多租户和扩展能力,这意味着我们(Google) 采用 two-pronged 方法——在当今的基础设施上构建 OSS 接口和实现,同时提供更接近 Lambda 体验的托管服务。 Google 还在 GKE 上提供 Cloud 运行, 执行 运行 OSS 软件,打包后非常适合 GCP。请参阅 选择适合您的平台 部分 Cloud Run marketing page 以了解两者之间的功能比较。
云 运行 的定价模型基于实例 CPU 秒和 RAM 使用;您可以选择(对于 Knative 和 Cloud 运行)每个容器可以 运行 多少个并发请求——这决定了将创建多少个实例来处理请求。 (请注意,Lambda 基本上强制此数字为 1——不允许并发。)
如果您每秒有 100 个请求,每个请求需要 3 秒,那么在不同的并发情况下您将拥有以下实例计数:
- ConcurrencyCount=1:300 个实例
- ConcurrencyCount=10:30 个实例
- ConcurrencyCount=80:4 个实例(默认)
- ConcurrencyCount=200:2 个实例
- ConcurrencyCount=300 : 1 个实例
您应该根据您的应用程序可以同时处理多少请求而不降低延迟来设置 ConcurrencyCount;这可能需要一些实验。默认值适用于主要从一个或两个数据库中获取数据然后进行少量处理的应用程序。如果您正在接收视频,然后在本地对其进行转码,则 1 或 2 之类的内容会更有意义。