Cloudflare宣布推出其新容器服务的公测版,使开发者能够在其全球网络上运行容器。该服务允许用户部署Docker容器,以支持在无服务器计算平台Workers上难以处理的工作负载,例如边缘的媒体和数据处理。
根据相关文档,容器与Workers深度集成,并基于Durable Objects构建。Durable Objects是Cloudflare用于有状态应用和分布式系统的构建模块。该服务使客户能够运行需要并行CPU核心的资源密集型应用程序、需要完整文件系统或特定运行时环境的应用程序和库,以及作为容器镜像分发的现有应用程序。
在最近的一篇文章中,Cloudflare的产品经理Mike Nomitch和软件工程师Gabi Villalonga Simón解释了容器的工作原理以及在各种场景中的应用,包括作为API网关、服务网格或编排器:不仅Durable Objects允许您对容器生命周期进行精细控制,整个Workers平台还允许您根据需要扩展路由和调度行为。Workers提供来自全球300多个地点的可编程入口逻辑。从这个意义上说,它们提供了类似于API网关的功能(...)
在Workers无法胜任的工作负载中,容器可以运行任何语言的用户生成代码,执行需要完整Linux环境的CLI工具,或从其他提供商移植应用程序而无需重大重写。Nomitch和Villalonga Simón补充道:
容器的路由是通过底层机制启用的(...)每个Durable Object充当可编程的边车,可以代理请求到容器并管理其生命周期。这使您能够以其他平台难以实现的方式控制和扩展您的容器。
Cloudflare表示,一些客户已经在运行数千个容器,但公测版限制用户的总内存为40 GiB和并发实例的40个vCPU。
在Reddit上的反馈大多是积极的。modbe的总监Mehmet Özgür Ersoy在新平台上测试了NestJS和Next.js的网关架构并写道:将熟悉的Docker容器世界与Cloudflare的“简单、全球化和可编程”计算愿景结合的想法开启了各种新可能性(...)我很期待看到这项技术将如何重塑我们对无服务器架构的思考。
一些功能在公测版中仍不可用,包括全球自动扩展和延迟感知路由。团队还计划引入更多容器与Workers之间的通信方式。他们写道:
我们将添加更多方式让您的Worker与容器进行通信,反之亦然。我们将添加一个exec命令以在您的实例中运行shell命令,以及从容器到Workers的HTTP请求处理程序。这将使您更容易地通过整个开发者平台的功能扩展您的容器,联系其他容器,并以编程方式设置每个容器实例。
目前,仅提供三种实例大小(开发、基础和标准),按每10毫秒的活动运行时间计费。费用根据内存、磁盘和CPU使用情况而异,费用从向容器发送请求或手动启动时开始计算。
Cloudflare容器服务的公测版对所有付费计划的开发者开放,并包含一个免费层。