17611538698
webmaster@21cto.com

Ryan Dahl 的 Deno 整体被Cloudflare收购,合并加入新团队

动态 0 27 2小时前
图片

21CTO 导读:Ryan Dahl 表示,原来使用Node.js搭建服务器的方式“不正确”,但 Cloudflare 已经收购了他的 Deno 公司。

Node.js 的创始作者 Ryan Dahl (中文译为瑞安·达尔)为了赢得服务器端计算,而牺牲了一场战役,他准备让 Node 的替代品 Deno 被淘汰。

就在上周,Cloudflare宣布收购Dahl创立的Deno公司。

Deno基于Dahl创建的同名开源服务器端JavaScript运行时构建,旨在与他创建的Node.js运行时竞争。

但是,Deno在Cloudflare已没有了未来,Cloudflare宣布将再维护该运行时一年,之后便会停止其开发。

Dahl 对此表现的并不介意。 

“我现在认为,如果你选择 Node.js 来构建服务器,那就大错特错了,”作为Node.js的初始作者如此说。

对 Cloudflare 而言,收购 Deno 实际上是一次优秀工程人才和技术的收购,Dahl 和他的 12 位 Deno 同事将悉数加入 Cloudflare,共同构建 Cloudflare 的 Workers 平台,并拓展其功能,使其能够开源使用。

Dahl 认为这是正确的方向。 

“目前,其他所有服务器实际上都在Linux虚拟机层运行。但Cloudflare Workers并非如此,”他说道。

Node.js 的力量强大


Dahl 于 2009 年向世界展示了他的 Node.js,这个框架引发了 Web 应用架构的革命。

他当时对 Apache Web 服务器占用大量内存感到不满。Node 使用 Google V8 JavaScript 引擎,不仅可以在服务器端执行 JavaScript 代码,还能以远低于当时传统 Web 服务器 Apache 的内存占用,每秒处理数千个并发请求。

如今,Node 为全球约 3000 万个网站提供支持。凭借 1.3 亿次的下载量,它还运行在更多的内部系统之中。

性格反复无常的 Dahl 于 2018 年首次推出了Deno,它是对 Node 的重写。“Deno”这个名字是 Node 的字母重组,Dahl 试图用它来修复他认为Node 中所有不足之处,比如包括内置 fetch、权限模型、原生 TypeScript 支持等特性。

2022年,红杉资本向达尔的公司投资了2100万美元。

这家初创公司在两轮融资中筹集了约 2600 万美元,随后推出了 Deno Deploy,直接与 Cloudflare Workers 展开竞争。

多年来,两家公司之间也出现了一些摩擦。2021年,Cloudflare错误地将TypeScript文件识别为视频内容,导致Deno的网站和模块注册表被屏蔽,迫使Deno将基础设施迁移到其他地方。

截至到 2026 年8月,Deno的月活跃用户已达40万。然而,Node.js的巨大影响力最终还是让Deno难以突破瓶颈。 

Dahl这样说: 

“多年来开发Deno的过程中,我们发现你很难真正偏离Node.js。” “随着我们不断努力推广Deno,我们发现我们不得不放弃一些最初的承诺,并随着时间的推移变得更加兼容Node,这使得我们成为了一种Node.js的替代实现。”

接下来一年,Cloudflare 将为 Deno 提供错误修复和安全补丁,而 Dahl 则在为这个采用 MIT 许可的开源项目寻找新的归宿,有人说或许是OpenJS 基金会,但并未确定。

新模式:分布式微服务器


8 月,Dahl发布了一个名为 celld 的全新项目,它是 Cloudflare 持久对象的开源实现。他对这项技术非常着迷,该技术最初由肯顿·瓦尔达 (Kenton Varda)创建。

“如此优秀的原始设备应该可以在任何地方运行,” celld 页面上写道。

Durable Objects 允许开发者构建有状态的实时分布式应用程序。与 Node 或 Deno 不同,最终生成的应用程序不需要专用的运行时环境。它运行在 Cloudflare 的无服务器 Workers 运行时上,该运行时在 Google JavaScript V8 隔离区(一个运行在单个操作系统进程中的轻量级沙箱)内执行代码。   

该应用程序的独立实例可以部署在离用户最近的边缘节点。每个持久对象实例都充当一个单线程微型服务器,具有唯一的全局 ID 和独立的存储位置,会话期间的用户数据存储在其专用的 SQLite 副本中。

Dahl 表示,Durable Objects“可以说是完美的分布式系统抽象”。 

对 Dahl 来说,Durable Objects 的缺点在于它与 Cloudflare 的基础设施集成特别紧密。为此他创建了 celld,使其可以托管在任何地方,而不仅仅是 Cloudflare。  

而之前,Cloudflare 也抱有类似的雄心壮志。2022 年,该公司开源了Workers 运行时的一个版本,名为 workerd,但该版本更侧重于开发者测试。Cloudflare 始终未能实现 Workers 的完全自托管,更不用说赋予它维护分布式状态的能力了——而 Dahl 正是赋予了 celld 这项能力。

因此,Dahl 团队的任务是将 celld 和 workerd 的工作合并,来创建一个独立的 JavaScript/WebAssembly 运行时,同时尽可能地将其与 Workers 和 Durable Objects 集成。

Dahl 还证实,合并后的项目预计将保持开源,很可能采用 Celld 已经使用的 Apache 2.0 许可证,并概述了开发人员如何在不依赖 Cloudflare 基础设施的情况下运行该项目。

Dahl表示:“运行一组Workerd实例只需要一个符合行业标准的对象存储桶来进行协调和存储。API将与Cloudflare自己的平台相同——这是一件好事。”

这项技术可能为服务器端 JavaScript 带来又一次革命性的变革,它提供的运行时环境每个实例仅需 300 KB 内存,而无论是 Node还是Deno 目前则需要数百兆字节。对于云服务提供商而言,尤其是服务于蓬勃发展的代理市场的云服务提供商来说,这种节省的内存成本将迅速累积。 

关于Deno的后续,Dahl 这样解释说:

“很多人喜欢 Deno 运行时,而且它仍然是 MIT 许可证,但分布式编程模型可以解决更大的问题。”

Dahl表示,即使官方支持结束,社区仍可继续开发Deno,并以io.js为例——io.js是Node.js的一个社区分支。他还认为,Deno的影响力将通过Node.js后来采用的诸多特性得以延续,例如原生TypeScript支持、权限控制和Web标准API,而这些特性的采用至少部分归功于Deno。

“它如何传承下去取决于社区……任何人都可以参与其中。”Dahl 激励更多的开发者说。

作者:洛逸

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信