
Cloudflare 宣布新的Containers服务发布公开测试版(public beta),使开发者能够在其全球网络上运行容器。该服务允许用户部署 Docker 容器以运行在 Serverless 计算平台 Workers 上难以支持的工作负载,例如在边缘进行媒体和数据处理。
根据文档,Containers 与Workers深度集成,并建立在Durable Objects之上,这是 Cloudflare 用于有状态应用程序和分布式系统的构建块。该服务使客户能够运行需要并行 CPU 核心的资源密集型应用程序,需要完整文件系统或特定运行时环境的应用程序和库,以及作为容器镜像分发的现有应用程序。
在最近的一篇文章中,Cloudflare 的产品经理Mike Nomitch和软件工程师Gabi Villalonga Simón解释了Containers的工作原理以及它们如何在各种场景中进行使用,包括作为 API 网关、服务网格或编排器:
Durable Objects 不仅允许对容器生命周期进行细粒度控制,整个 Workers 平台还允许根据需要扩展路由和调度行为。Workers 提供了来自全球 300 多个位置的可编程 ingress 逻辑。从这个意义上说,它们提供了类似于 API 网关的功能(...)
在 Workers 力不从心的工作负载中,Containers 可以运行任何语言的用户生成代码,执行需要完整 Linux 环境的 CLI 工具,或者在不进行重大重写的情况下从其他提供商移植应用程序。Nomitch 和 Villalonga Simón 补充说:
路由到容器是通过在底层启用的...每个 Durable Object 充当可编程的 sidecar 实现的,可以代理请求到容器并管理其生命周期。这使你能够以其他平台上难以实现的方式控制和扩展容器。

Cloudflare 表示,一些客户已经在运行数千个容器,但公开测试版限制用户总共只能使用 40 GiB 的内存和 40 vCPUs 用于并发实例。
Reddit上的反馈大多非常积极。modbe 的总监Mehmet Özgür Ersoy在新平台上测试了NestJS和Next.js的网关架构,并写到:
将我们熟悉的 Docker 容器世界与 Cloudflare 对“简单、全球和可编程”计算的愿景结合起来的想法,开启了各种新的可能性(...)我很高兴看到这项技术将重塑我们对 serverless 架构的思考。

公开测试版中仍有一些功能不可用,包括全球自动扩展和延迟感知路由。团队还计划引入更多容器和 Workers 之间的通信方式。他们这样写到:
我们将增加更多 Worker 与容器之间的通信方式。我们将添加一个 exec 命令以便于在实例中运行 shell 命令,并为从容器到 Workers 的 HTTP 请求添加处理程序。这将使你能够更容易地使用整个开发平台的功能扩展容器,联系其他容器,并以编程方式设置每个容器实例。
目前,只有三种实例大小(开发、基础和标准)可用,按活跃运行时间每 10ms 进行计费。成本根据内存、磁盘和 CPU 使用量而异,当向容器发送请求或手动启动时开始收费。
Cloudflare Containers 对所有付费计划的开发者开放测试版,并包括一个免费层。
原文链接:
评论