阅读 1364

为什么说软件服务的未来必然是WebAssembly?

WebAssembly(WASM)最初由W3C 的Mozilla、谷歌、微软、苹果等著名公司合作研发,是浏览器内应用程序的高性能执行引擎。随着WASM 在开发者社区中越来越流行,WASM 也正在从客户端迁移到服务端,成为服务端技术的新锐。

价值定位

WASM 从客户端到服务端的迁移,与Java 和 JavaScript 等前几代技术的发展历程一脉相承。与现有解决方案相比,WASM 在服务端提供了一些重要的价值。

与Java 和 JavaScript 引擎相比,WASM 通过LLVM 工具链支持20多种编程语言,从而让开发人员有选择语言工具的自由,大大提高了生产力。特别是,它支持有影响力的新锐编程语言,例如Rust 。同时,WASM 可以轻松支持CPU、GPU、 AI 优化芯片和FPGA 等硬件功能。

它提供了接近于本机代码的性能,而又不牺牲安全性。

图片来源:steveklabnik.github.io/booster2018…

与Docker之类的容器相比,它为开发人员提供了更抽象的代码执行环境,从而提高了开发效率。它可以直接部署代码和应用程序,而不必启动操作系统。Wasm 程序不需修改,就可以在不同的操作系统上运行。这与当今的云原生微服务架构配合得很好。

WASM 消耗的内存和资源比操作系统级别的容器少得多。其模块化的安全模型允许为每个函数调用配置硬件和操作系统资源,从而在保证安全性的同时,保留了本机性能。

如果在 2008 年已经有了 WASM + WASI,那么我们压根无需创始 Docker 这个项目了。 Wasm 就有这么重要!服务器上的 WebAssembly 是计算的未来。 — Docker 联合创始人 Solomon Hykes

此外,服务器端 WASM 受益于这几年源于区块链社区的重大创新。

区块链先行一步

服务器端 WASM 目前处于早期阶段,还有大量的工作亟待完成,包括优化、开发工具和集成库,然后才能在企业中大规模应用。但是,开发者已经在企业计算、去中心化的区块链应用等新兴领域中将其用于微服务。

区块链智能合约是不可更改并且自动执行的代码。去中心化的应用(或 dapps )可以通过 Web 界面与智能合约进行交互。这使得智能合约成为自然的微服务。

以太坊,EOS 和 Polkadot 等大型公共区块链网络(公链)都致力于采用 WASM 作为其下一代执行引擎。因此,公链是当今编写和部署 WASM 服务的最佳平台。

服务端 WASM 受益于近年来投入到区块链领域的数十亿美元的研发投资。这些区块链研发创新的许多都与企业应用高度相关。

  • 执行结果确定的应用程序
  • 对共享资源进行操作码级别的准确计费
  • 对计算结果的无信任共识
  • 对数字货币基础设施的支持
  • 应用程序的形式化验证
  • 零知识计算

让代码说话

区块链应用已经做出了可演示的去中心化的微服务 Demo。以在 Second State 的 BUIDL 开发工具开发区块链应用为例,花上几分钟就可以在区块链网络上部署微服务,然后在此基础上构建一个去中心化的 Web 应用程序。

BUIDL 中的示例程序的“后端”是区块链智能合约(微服务)。智能合约是去中心化与云原生的。

Second State 的 BUIDL 还能将 WASM 智能合约部署到以太坊基金会的 Ewasm 测试网上

服务端 WASM 的下一个爆发点是区块链之外的企业应用。在数据中心里,WASM 提供多种语言的服务(支持服务端上的 Rust !),支持多种硬件和操作系统平台,占用很少计算资源,并且可以直接触达底层硬件(比如 GPU 和 AI 芯片)。您可以在此处查看在WASM中运行Rust服务的概念演示

前方之路

即将发布的 Second State 虚拟机(SSVM)是为服务端应用程序优化的 WASM。

在区块链领域,Second State 已经走在了世界最前沿,为下一代以太坊兼容的区块链系统提供虚拟机(Ewasm)。用于区块链的 SSVM 原生支持256位整数运算。与其他 Ewasm 实现相比,SSVM 在虚拟机内部拒绝执行结果不确定的操作码,如浮点运算,同时也实现了对 gas 的精确计算,从而大大提高了性能。

在云服务领域,SSVM 优化了 WASM 针对企业的功能,例如程序状态的高效存储,高性能输入输出,多线程支持,以及对硬件加速器的直接支持。 通过与高通公司的合作,SSVM 在高通芯片上运行时,可以直接访问高通芯片的 AI SDK。

服务端 WASM 的发展前景充满了希望。

加入我们,向下一代云架构迈进!

关注下面的标签,发现更多相似文章
评论