谷歌云最近宣布全面推出 Cloud Run 作业,这是一个无服务器选项,用于执行不响应 HTTP 请求的脚本和作业。新的执行环境提供了更高的 CPU、网络性能和对网络文件系统的支持。
与处理 HTTP 请求的Cloud Run 服务不同,Cloud Run 作业仅运行其任务,在执行时不能接受参数。Cloud Run 作业在Google I/O 的预览版中推出,旨在运行批量数据转换、数据库迁移、夜间报告和运行到完成作业,帮助将遗留脚本迁移到无服务器环境中。谷歌集团产品经理Karolina Netolicka和产品营销经理Bex Heart解释说:
Cloud Run 最初是围绕网站或 API 服务的需求而设计的,允许用户运行响应 HTTP 请求或事件的“服务”(...)但是使用 Cloud Run 的组织(...)希望有一个使用无服务器环境来运行其他不太适合 HTTP 请求范例的工作负载的方法。
Google 并不是唯一一家提供任务调度选项的云提供商,Capital One 的杰出工程师Shekhar Jha比较了 AWS ECS 和 Google Cloud 运行的作业。
谷歌发布了一个新的执行环境,提供更高的 CPU 和网络性能并支持网络文件系统,促进现有应用程序的迁移:Cloud Run 支持Cloud Filestore、自我管理的 NFS 服务器和FUSE,允许安装一个开源适配器Cloud Storage 存储桶作为本地文件系统。Netolicka 和 Heart 添加:
第二代执行环境完全兼容所有Linux特性,更容易将现有容器迁移到Cloud Run。这意味着之前由于未实现的系统调用问题而无法在 Cloud Run 中运行的软件,现在可以在 Cloud Run 的第二代执行环境中运行。
Kombo 的联合创始人兼首席技术官Niklas Higi在评论有关新功能的视频时强调了一些限制:
由于以下两个限制,我们无法将 Cloud Run 作业用于长期运行的任务用例,并且不得不求助于管理 GKE 集群和创建 K8S 作业:无法将参数传递给作业的单个执行(. ..) 并且最大执行时间,就像常规的 Cloud Run 一样,限制为 1 小时。
Cloud Run Jobs 的默认任务超时设置为 10 分钟,最多可增加到 1 小时。作业没有明确的超时,仅取决于所有任务的完成。至于定价表,每月前 240,000 vCPU 秒和 450,000 GiB秒免费。