title: Cloudflare 买下 Deno:开源逃生舱是好生意,还是换一家锁
date: 2026-10-18 10:00:00
categories:
- 1
tags:
- 云计算
- 开源
- 开发者
10 月 9 日,Cloudflare 宣布 Deno 团队整体加入。对外口径很整齐:把 workerd 和 Deno 的 celld 合在一起,让 Workers 和 Durable Objects 这套编程模型既能跑在 Cloudflare 的全球网络上,也能在自己的机器上自托管。Node.js 作者 Ryan Dahl 的原话是,他们加入是为了让 Workers 模型成为「构建服务器的主流方式」。Cloudflare Workers 主程 Kenton Varda 则直接回应了一种流行怀疑:公司把 Workers 做成跟别的云不一样,不是为了锁客户,「开源、给人一条逃生舱,是好生意」。
这句话值得单独拿出来看。因为它同时是产品宣言,也是对收购本身的辩护。
买的不是运行时,是一套还没铺开的模型
Deno 这些年真正被记住的,是运行时:安全默认、内置工具链、URL 导入、跟 Node 生态的兼容拉锯。Dahl 自己在公告里把故事讲成一条线:Deno 改善了写 JavaScript 的体验,但没有从根本上改变开发者必须在运行时周围自己拼装的东西——分发计算、协调状态、存数据、按需求扩缩。Deno Deploy 往这个方向走了一步,运营它的过程又暴露出底下还有多少复杂度。celld 是下一步:一个基于 Workers 模型的开源实现,把「扩到多台机器」写进编程模型,而不是每个应用自己再搭一套基础设施。
所以这笔交易的技术重叠是具体的。celld 用单个 Rust 二进制在多台机器上跑 Workers 和 Durable Objects,外部依赖主要是对象存储;workerd 已经是 Cloudflare 边缘上那套运行时。两边要合并的,是「同一套原语、两种部署位置」,不是再做一个更快的 Node 替代品。
这也解释了为什么财务条款可以不披露、融资额却会被媒体反复提起。TechCrunch 写明:交易金额未公布,Deno 累计融资约 2600 万美元,其中一轮 A 轮由红杉领投。对 Cloudflare 来说,这不是买一个已经赢下运行时战争的资产。Node 仍是默认。买的是一支已经用同一套抽象做过自托管实验的团队,外加一个可以对外讲的故事:你们怕锁,我们把逃生舱开源了。
逃生舱的账单,开在 Deno 用户头上
「给人逃生舱是好生意」这句话,对 Cloudflare 客户大体成立,对已经押在 Deno 上的人则要拆开看。
Dahl 写得很具体,没有用「持续投入开源」这种空话糊过去:
- Deno 运行时再维护一年,每月发包含缺陷修复和安全更新的版本;一年之后,官方停止开发。代码保持开源,欢迎别人接手。
- Deno Deploy 再运营六个月后关闭。付费客户迁到 Cloudflare Workers 会得到迁移支持。
- JSR 继续运营,基础设施迁到 Cloudflare。
rusty_v8继续维护,并朝集成进workerd的方向走。
这是一份清楚的日落时间表,不是「品牌保留、路线不变」。运行时还有一年安全更新,托管平台只有半年。选 Deno 的人里,有一部分选的就是「不要再被一家云定义服务器该长什么样」。现在定义权更集中了:模型要主流化,独立运行时被明确降级。
开源在这里做了两件事,不要混成一件。第一件是许可证还在,fork 在法律上可行。第二件是维护者走了。一年之后如果没有新的维护群体,Deno 会变成一个能编译、但没人替你追 V8 和安全补丁的仓库。逃生舱对 Workers 客户是「可以离开 Cloudflare 网络」;对 Deno 用户,离开的选项是「留下一个即将无人驾驶的运行时,或者跟上这趟车」。这不是同一扇门。
好生意的前提,是模型先赢过容器
Varda 的论点可以翻译成一句更硬的话:差异化如果只活在一家公司的控制台里,客户会计价,监管和采购也会把它当成锁定项;差异化如果变成一套可自托管的编程模型,锁定从「你离不开我的网络」变成「你已经按我的原语写完了,离开的成本是重写,不是换供应商」。后者往往更黏,也更好看。
Durable Objects 确实是这套模型里最值得认真对待的一块。Dahl 的描述很具体:一个可寻址的分布式单例,自带 SQLite,JavaScript 执行是单线程的,WebSocket 和本地数据库可以同步访问。一个频道一个对象,连接和数据就一起分片了。队列、KV、持久执行、甚至 Git 存储,都可以堆在这个抽象上面。它吸引人的地方不是「又一个 serverless」,而是把「这台小服务器只属于这一个钥匙」写进了 API。单线程加本地关系库,推理成本比一堆最终一致的云服务低。
反方也同样具体。
第一,主流服务器今天不是缺抽象,是已经有抽象。容器、Kubernetes、普通的队列和数据库,丑,但雇佣市场上有人、故障手册有人写过、合规问卷填得出来。Workers 模型要成为「默认的建服务器方式」,得先在 Cloudflare 网络之外被当成生产默认,而不是被当成「想少写胶水代码时的一个选项」。celld 八月发布,收购十月发生。从「我们高兴」到「生产默认」,中间缺的是别人家的事故报告,不是又一篇公告。
第二,自托管承诺在合并完成之前是路线图。公告写的是把 celld 的想法和代码并进 workerd,由 Dahl 和联合创始人 Bert Belder 带这件事。Varda 甚至说他打算用改进后的工具在家里跑一份 Cloudflare OS。这是方向,不是今天就能交给运维的发行版。在那之前,「逃生舱」主要是一种姿态:仓库是公开的,生产路径仍指向同一家公司的网络。
第三,收购本身会改变开源项目的信任结构。Deno 社区里有人要的是独立运行时,不是 Workers 的第二种分发渠道。官方停止开发之后,社区能否接住,取决于有没有人愿意为「不是 Cloudflare 路线」持续付维护成本。历史并不站在乐观一边:运行时的安全补丁是固定开支,情怀接不住 V8。JSR 迁走、Deploy 关掉,剩下的公共基础设施更少,接住的难度更高。
第四,对 Cloudflare 的平台竞争对手,这件事的信号不是「JS 运行时市场重新洗牌」,而是边缘平台在抢「编程模型」这一层。运行时之争(Deno 对 Node、Bun)如果收束进一家基础设施公司的自托管故事,独立运行时的差异化会更难卖。买的是团队和叙事,不是已经赢下的市场份额——2600 万美元融资规模也说明,Deno 没有大到能用收入证明模型已经赢了。
开发者实际要做的区分
如果你只是偶尔用 Deno 写脚本,这一年时间表足够你决定要不要迁。每月还有安全更新,不是下周就烂。
如果你把 Deno Deploy 当生产托管,半年是硬期限。迁移支持给的是付费客户,目标是 Workers。要不要接受这套模型,得在关停前算清楚:Durable Objects 能替掉你现在自己拼的状态层吗?不能的话,迁到 Workers 只是换一家托管,不是少一层复杂度。
如果你在评估「会不会被 Cloudflare 锁定」,把问题问窄一点。问「代码能否在别人的机器上跑起来」,公告的方向是能,但是合并后的自托管还没交付。问「离开时要重写多少」,这跟你有没有把 Durable Objects、Workers 的隔离和同步 SQLite 写进业务有关,跟仓库是不是 MIT 关系不大。开源降低的是「供应商消失则二进制消失」的风险,不降低「按这套原语建模」的切换成本。
把 Varda 那句「逃生舱是好生意」当成营销口号,会错过它里面真的成立的部分:对平台公司,一条看得见的离开路径,往往比把 API 做酷更能降低采购阻力。把它当成对 Deno 用户的承诺,又会错过时间表里已经写明的部分:独立运行时被安排了日落,逃生的是 Workers 的客户,不是当初为了躲开云定义而选择 Deno 的人。
两件事可以同时为真。开源逃生舱可以是好生意;被买下的那个项目,不一定还是你的逃生舱。