WebAssembly真的是未来吗
发布时间: 2023-07-11

云原生计算基金会(CNCF)最近的年度调查包括一项关于WebAssembly(Wasm)的大胆声明:“容器是新常态,WebAssembly是未来。”

这句话预示着很多事情,不仅关乎WebAssembly的路线图和开发,还关乎它在计算领域的当前地位。据CNCF报道,37%的最终用户组织已经有使用WebAssembly部署应用程序的经验。根据CNCF的报告,虽然其中许多用途是为了测试Wasm的优点,WasmEdge和WAMR是使用最多的运行时。

“WebAssembly是未来,因为它越来越多地用于无服务器、容器化和插件技术,预计将对web、无服务器、游戏和容器化应用程序产生重大影响。”CNCF生态系统负责人Taylor Dolezal表示。

但WebAssembly的采用方向是什么?它的路线图和未来在计算领域的位置是什么?让我们看看Wasm在容器、边缘和其他应用程序、编程语言和无服务器方面的集成及其未来。

未来-现在

可以说,当它在所有主要的浏览器中的使用时(它最初是为此创建的),Wasm并不是关于未来,而是关于现在。但是,尽管Wasm在浏览器方面已经成熟,但在它成为未来的一部分之前,还需要做更多的工作来将其用于后端应用程序,例如在边缘设备中的使用和部署。

事实上,这并不像将Python添加到Wasm,然后通过Wasi运行包那么简单,Wasi托管Wasm运行时。对于Python特别适合的后端应用程序,如机器学习和数据分析,其在Wasm中的应用程序与许多第三方依赖关系密切相关,这些依赖关系刚刚开发和编译。

Wasm平台即服务(PaaS)产品或平台尚不存在,可以方便地用于将WebAssembly借给后端应用程序。换句话说,Wasm在浏览器之外的应用程序刚刚兴起。

Enterprise Management Associates的分析师Torsten Volk表示:“在可靠和高效地支持生产用例方面,还有很多需要考虑的地方。我们将在这一过程中发现仍然缺少的东西。这就是开源项目和商业供应商来填补这些差距并提供最佳开发人员和DevOps体验的时候。”

Xymbia的首席执行官兼创始人Wiqar Chaudry表示,区分服务器端(ss Wasm)WebAssembly和浏览器应用程序的Wasm,ss Wasm有很大的前景,而ss Wasm的采用之路很长,“其中大部分仍需映射”。

“有两个非常简单的方法来证明这一点:在创建软件时,Wasm是否有明确的经济价值主张?它是否降低了成本,帮助公司和开发商赚更多的钱,还是有助于释放其他类型的未实现价值?”Chaudry说,他也参与了Wasmer项目,目前担任顾问。

“第二个是它的技术价值主张。它是否吸引了足够多的开发人员,并解决了足够多技术难题,让他们承担将Wasm作为堆栈一部分的开销?”

WASI?

目前,WASI已成为将Wasm扩展到浏览器之外的最佳选择。被描述为WebAssembly的模块化系统接口,它被证明有助于解决在任何有正确配置CPU的地方运行Wasm运行时的复杂性——这是WebAssembly自创建以来的主要卖点之一。

展开全文

Fermyon Technologies联合创始人兼首席执行官Matt Butcher表示:“我认为,WebAssembly作为通用技术的关键特性是对WebAssembly系统接口(WASI)的支持。WASI允许开发人员在代码中使用熟悉的系统习惯用法,例如打开文件和读取环境变量,但不会破坏WebAssembly安全模型。随着WASI支持的普及,我们将看到WebAssembly用例的激增。”

然而,WASI仍在成熟。Butcher说:“WASI的第一个版本让我们看到了WebAssembly的潜力。第二个版本,预览2,将在几个月后发布。预览2中添加的网络功能将带来大量新用途。”

Cosmonic首席执行官兼联合创始人Liam Randall表示,WebAssembly将利用组件和WASI将通用应用程序库抽象为通用的可插拔组件。他说,像发布订阅消息或特定SQL服务器这样的组件作为抽象而不是与特定库的紧密耦合而交付给应用程序。

Randall说:“当容器到达现场时,它们体积更小,启动速度更快,开发者可以比虚拟机配置和维护的面积更小。WebAssembly模块继续了这一趋势,并且更小、启动更快,并利用组件减少开发人员编写和维护的代码量。”

“更重要的是,组件模型是一种新的应用程序方法,它允许能力驱动的安全性,并使平台运营商更容易安全地运行应用程序。”

Dolezal表示,Wasm将WASI用于系统级集成API进一步增强了其作为通用运行时的可行性:“WebAssembly在安全环境中托管不受信任代码的能力也是一个显著的好处。”

与容器的关系

正如CNCF报告所说,容器确实是“新常态”,尤其是在云原生空间。在某些用例中,Wasm可以取代容器,但总体而言,WebAssembly和容器的采用将同步增长。

Volk说:“我绝对相信Kubernetes和Wasm是互补的产品,Kubernete负责提供和扩展基础设施,而Wasm则在基础设施之上提供应用程序,包括其运行时。”

Kubernetes的采用路径可以作为Wasm如何以及何时可能大规模采用的可能模式。Chaudry说:“Kubernetes被广泛采用,因为Kubernete的访问和使用、扩展和支持它的工具是广泛可用的。如果Kubernetes不像AKS、EKS或GKE那样容易获得,我们将看到更少的采用和使用。WebAssembly将走同样的道路。”

Wasm也只解决了容器所面临的一些问题,他说:“容器更复杂,运营开销也更高。两者之间的权衡使得这两个能够同时增长。”

Butcher说,当DockerHub开始支持一个新的工件存储规范时,Wasm社区意识到,现在可以将Wasm运行时存储在Docker Hub等开放容器倡议注册中心中,而不是重新发明轮子。

例如,本月,Fermyon的Spin 0.8开始支持OCI注册。Butcher说:“虽然我们最初不确定OCI注册中心是否是正确的分发机制,但标准的演变和Docker Hub的支持改变了我们的想法。我们致力于使用OCI注册中心分发WebAssembly应用程序,现在可以做到这一点。”



扫码加微信详细咨询太和智慧养老产品和平台服务!

微信