Node.js 创造者 Ryan Dahl 花了八年时间试图用 Deno 纠正前作的设计缺陷,最终选择把整个团队打包卖给 Cloudflare,亲手为 Deno 运行时写好停服讣告。

2026 年 10 月 9 日,Cloudflare 与 Deno 联合公布全资收购协议。Deno 历史累计拿到的 2600 万美元融资在此刻彻底完成清算,换来的是一份干脆的资产处置时间表:商业云托管平台 Deno Deploy 预定 6 个月后关停;Deno 官方运行时仅维持 1 年的月度安全补丁与错误修复,至 2027 年 10 月彻底终止官方功能迭代,完全甩给社区。

Deno 业务清场与过渡关键节点 2026 年 10 月 9 日 宣布加入 Cloudflare 研发重心转向 workerd 约 2027 年 4 月 Deno Deploy 正式停运 6 个月过渡期结束 约 2027 年 10 月 Runtime 终止官方研发 1 年后全面转为社区开源

外围资产的处理更显现实。JSR 包注册表的基础设施整体搬迁至 Cloudflare 继续运行,核心底层库 rusty_v8 留用,Deno 运行时本身则交出主力位置。Ryan Dahl 在社交论坛直言自己完全赞成给 Deno 安排安乐死。他坦白承认,Deno 掉进了 Node 兼容性的引力井,既然旧系统跑得好好的,微弱的体验提升解决不了问题,重新造一个 Node 毫无意义。

坠入兼容泥潭:2600 万美元买来的臣服

当年 Deno 举旗起义,靠的是开箱即用 TypeScript、原生 URL 导入、默认安全的沙箱权限。但这套理想主义设计一头撞上了 npm 筑起的高墙。

包括红杉资本在 2022 年领投的 2100 万美元在内,Deno 账上累积的 2600 万美元弹药,大部分没有花在开辟新世界,而是耗在了给旧世界补课。开发者的代码可以随时重写,整个行业的依赖网络却搬不动。企业项目离不开数以万计的旧 npm 包,Deno 最终调转主力团队,花几年时间去修修补补兼容层,把原本用于创新的精力全部消耗在追赶 Node 的怪癖行为上。

兼容即臣服。当挑战者把九成资源花在向旧标准低头时,就抹平了自己的差异化壁垒。防守方的演进更让追赶显得尴尬。Node.js 在 v20.0.0 引入权限隔离机制,并在 2025 年 1 月的 v22.13.0 里稳定上线。原地等待旧系统修补缺陷的代价,远比把全套业务迁往 Deno 小得多。

幕后真正主角:celld 如何为 workerd 补齐短板

Cloudflare 并不是做慈善,真正看中的是 Deno 团队在 2026 年 8 月拿出的开源分布式调度工具 celld。

单台 8GB 节点依赖对象存储即可容纳 2500 个常驻单元
单台 8GB 节点依赖对象存储即可容纳 2500 个常驻单元

长久以来,Cloudflare 虽然开源了底层执行引擎 workerd,允许开发者单机跑 Workers,但其最核心的分布式 Actor 组件 Durable Objects 却无法脱离专有数据中心自建。单机 workerd 缺少跨节点协调机制,直接掐死了企业在本地私有化部署集群的可能。

celld 极简分布式架构如何改造 workerd Rust 单一二进制 运行在通用硬件 无需复杂 K8s 编排 celld 调度中枢 多节点 Durable Objects 放置 跨节点路由与状态编排 内嵌 SQLite 数据复制 外部对象存储 仅需标准 S3/Bucket 持久化与冷启动拉取

celld 的巧思在于做减法。这个 Rust 单一二进制程序甩掉了庞大的独立共识集群,仅靠标准对象存储处理持久化与状态协调。根据官方数据,单台 48 美元/月的 8GB 节点就能容纳约 2500 个常驻 Cell。

但融合并不轻松。处于 v0.6.2 beta 的 celld 目前粗糙得很:单集群只支持单应用,没有多租户调度。更关键的是,虽然 Workers 自 2026 年 8 月 4 日起在默认兼容日期里启用了 Node.js 兼容层,但大部分模块仍依赖存根实现。celld 目前支持的兼容子集比 Workers 本身还要窄,且天然无法调用 Workers AI、Vectorize 等公有云专有绑定。两套系统的合并,是在一个受到严密限制的框架下重理边界。

逃生舱陷阱:解了托管之缚,深陷范式之笼

Cloudflare 首席工程师 Kenton Varda 解释这次整合时表示,为开发者提供开源的逃生通道反而能促进业务增长,打破市场对供应商锁定的警惕。

这套说辞极具迷惑性。表层上看,开发者确实能拿着开源的 workerd 加 celld 跑在自己的服务器上,不再被 Cloudflare 的账单卡死。但在工程实践中,逃生通道换来的是底层通用性的彻底丧失。

迁移至轻量边缘沙箱使完整操作系统能力遭遇刚性截断(示意图)
迁移至轻量边缘沙箱使完整操作系统能力遭遇刚性截断(示意图)

Deno Deploy 原本提供的是完整的标准运行时抽象,支持本地文件系统写入和派生子进程。Cloudflare Workers 底层则是轻量 V8 Isolate,有着 128 MB 内存软上限,剥离了原生文件系统。

评估维度Deno Deploy 现状Cloudflare Workers / DO 标准架构改造成本与替代路线
基础配额与定价Pro $20/月 (5M 请求) / Builder $200/月Standard $5/月 (10M 请求 + 30M CPU 毫秒)费用更低,但需重新测算 CPU 毫秒开销
执行环境边界支持文件系统写入与子进程128 MB 内存软上限,无原生文件系统复杂任务需退守至 Cloudflare Containers
状态存储模型Deno KV 原生集成,开箱即用SQLite 存储单对象上限 10 GB ($0.20/GB-月)改用 Durable Objects 或 D1 关系型存储
并发与调用特性POSIX 兼容常规服务单对象约 1000 RPS 软限制,单线程串行化高并发需重构 Actor 分片逻辑

如果代码里写满了 Deno.readFile、Deno.Command 或深度依赖 Deno KV,迁移就必须全盘重写。企业如果接受了这套方案,代码就必须全面转为 Fetch Handler 路由、资源绑定和 Durable Objects 状态对象。

这构成了新的技术债务。代码一旦脱离标准 Node.js HTTP 容器模式,改造成 Cloudflare 的边缘状态机,就再也无法逆向迁回传统的 AWS Lambda 或独立 Docker 容器。基础设施的锁解开了,编程模型的锁却焊得更死。

终局收拢:智能体洗牌与独立运行时的破产

促使开发焦点彻底转向的,是智能体应用对基础设施的硬性洗牌。

单线程串行处理与本地持久存储构成了支持智能体的状态容器(剖面示意)
单线程串行处理与本地持久存储构成了支持智能体的状态容器(剖面示意)

传统 Serverless 是无状态的短命函数,而 AI Agent 需要长连接挂载、本地上下文维持与双向通信。Durable Objects 的本质是一个单线程串行状态机,挂载本地 SQLite,单对象处理上限约 1000 RPS,天然匹配智能体的隔离容器需求。Dahl 看透了这一点:继续优化脚本执行速度已无意义,如何低成本调度上百万个有状态单元,才是接下来的胜负手。

天下熙熙,皆为利来。风投机构在过去几年里幻想着靠独立 JavaScript 运行时孵化出上市公司,如今这个泡影被戳得一干二净。早前追求极限速度的 Bun 被 Anthropic 招安,如今 Deno 并入 Cloudflare,独立运行时的商业化闭环彻底宣告破产。

这条赛道最终只剩两个终局:要么像 Node.js 那样,靠非营利基金会退居为全行业的公共品;要么像 Deno 一样,放弃单兵作战,把执行引擎折价并入云巨头的算力体系,充当底层管道。