Cloudflare Containers, 为了 Agent 的扩展性而重建

今天,我们让 Cloudflare Containers 更易于编程,并针对 Agent 工作负载进行了优化。代理不会预先部署沙箱,而是按需为每个任务创建沙箱,并期望沙箱能够立即就绪,同时还能暂停和恢复。因此,我们重新设计了 Containers 架构以满足这些需求:您的代码现在可以在运行时选择每个沙箱的镜像和实例类型,容器启动速度提升了 6 倍,并且文件系统快照功能已在公开测试版中提供。

为了实现这一点,我们从底层重新设计了 Containers 基础架构。新的调度策略将每个沙箱的控制权转移到应用程序代码中,而重新设计的运行时则提供了更快的容器运行路径。在 ComputeSDK 的独立基准测试中,启动时间中位数从略高于 4 秒降至 648 毫秒;在我们自己的初步测试中,突发测试在几秒钟内成功创建了数十万个容器。

所有这些都建立在 Cloudflare 容器一直以来独有的优势之上:每个容器都拥有自己的持久对象 (Durable Object),这是一个持久的、可编程的控制器,与容器并肩运行,负责管理容器的生命周期、出站流量等等。我们将更多功能直接集成到原生ctx.containerAPI 中,使持久对象无需中间的包装类即可控制其容器,并将此模型引入 Sandbox SDK 1.0。

正如我们今年早些时候所写,您的 Agent 需要一台计算机。当代理需要完整的 Linux 工作空间时,这些变化使得容器能够更好地与 Worker、Dynamic Worker 和持久对象互补。

4 个赞