Node.js 之父谈 JavaScript 容器原创
Node.js 和 Deno 创始人 Ryan Dahl 发表的《JavaScript Containers》文章提出了一种设想:未来将出现新的类似容器的抽象来简化服务器,大多数 Web 服务可通过 JavaScript 容器而非 Linux 容器进行简化。在这个新兴的服务器抽象层中,JavaScript 取代了 Shell。
此处引用一下阮一峰老师的表述:
他提出一种设想,把 JavaScript 作为容器标准语言。这样的话,容器就能标准化,开发者不必自己构建容器的镜像文件了,直接把 JS 脚本扔到标准化容器就可以了。
RD 认为,他提出的这种容器并不是为了解决 Linux 容器所针对的同样广泛的问题。它最大限度地减少了 Web 服务业务逻辑的样板,减少程序员需要了解的概念(例如:在编写 Web 服务时,很可能任何 systemd 配置都只是不必要的样板)。Shell 是用于调用 Unix 程序的解释性脚本语言。它可以编写条件语句,循环语句,它有变量......但不幸的是它能力有限,难以编程。而在 JavaScript 容器中,JavaScript 沙箱可以调用 Wasm,而不是像 Shell 那样调用 Linux 可执行文件。
最后 RD 说到,他并不是说 Linux 容器正在消失,因为这种抽象级别当然有其价值。但对于开发者编写的大部分“业务逻辑”来说,它相当底层。当开发者构建网站时,诸如 systemd 配置之类的东西都是样板文件。因此,大多数 Web 服务可通过 JavaScript 容器而非 Linux 容器进行简化。他们正在 Deno 中探索这些想法,尝试从根本上简化服务器抽象。
Deno 团队去年发布了 Deno Deploy 的首个 Beta 版本,这是由 Deno 团队从头开始构建的现代 serverless 云,用户可以使用它非常快速地将 JavaScript、TypeScript 和 WASM 服务部署到世界各地的数据中心。