17611538698
webmaster@21cto.com

Hyperlight Wasm:运行 WASM 应用程序的微型VM

开源 1 98 1天前

图片
导读:微软近期开源的动作频频,这不,它又预览发布了适用于 Windows 和 Linux 的 Hyperlight Wasm。
Hyperlight Wasm,这款应用将微型虚拟机与 WebAssembly 运行时相结合,启动时间仅为几毫秒,并具有两层隔离,能够确保安全。

下面,我们就来介绍 Hyperlight Wasm。

Hyperlight Wasm 基于 Hyperlight 项目做的代码分叉与设计,它是一个用 Rust 构建的轻量级虚拟机管理器 (VMM),可启动没有内核或操作系统、只有最小 Hyperlight Guest Library API 的虚拟机。

Hyperlight被描述为“针对安全运行不受信任的代码进行了优化,影响最小”,目前是一个“具有不断发展的 API 新兴项目”。

以下是它的基本架构图:

图片
Hyperlight 是一款轻量级虚拟机管理器,虚拟机无需内核或操作系统即可启动



新出的Hyperlight Wasm都有啥?


Hyperlight Wasm新添加了 WebAssembly 运行时,即来自字节码联盟的著名 Wasmtime,用以创建一个平台,用于运行以任何可以针对 Wasmtime 的语言编写的应用程序,包括 Rust、C、C++、Python、JavaScript、C#、Go 和 Ruby等。
Hyperlight Wasm 的优势在于,它在 Wasmtime 已经提供的沙箱中添加了虚拟机的安全性,提供了一种快速启动应用程序的运行方式,同时还提供与主机操作系统的高度隔离。


根据微软开发者运营总监 Yosh Wuyts 以及软件工程师兼研究员 Lucy Menon 的说法,目前启动虚拟机并运行 Wasmtime 应用程序需要 1-2 毫秒,“我们正在努力将这个数字缩短到 1 毫秒以内。”这几乎可以消除经常影响无服务器平台(如 Azure Functions)的冷启动问题。


Hyperlight Wasm 有可能使按需应用程序实例扩展到零,同时仍为用户提供快速的加载时间。


尽管 Hyperlight Wasm 被描述为“实验性代码……不被开发者视为生产级”,但是微软已经将在即将推出的 Azure Front Door Edge Actions 私人预览版中使用 Hyperlight Wasm,大概该服务将通过 Azure 的全球分布式网络提供在靠近用户的地方运行的低延迟应用程序。


与其它软件的区分


Hyperlight Wasm 听起来与Cloudflare Workers类似,后者使用基于 Google Chrome 和 Chromium 使用的 JavaScript 引擎的 V8 隔离,在全球分发网络上提供快速启动的轻量级应用程序运行时。
一个关键的区别是,虚拟机比 V8 隔离具有更严格的安全边界。


当前 Hyperlight Wasm 的限制


Hyperlight Wasm 产品当前也存在一些限制。一个是它目前不能在 macOS 上运行,只能在 Windows 或 Linux 上运行。Wuyts 和 Menon 表示,另一个问题是“VMM 主机不提供自己的 WASI 接口默认实现,因此您必须自己实现它们。”这意味着为 Hyperlight Wasm 编写应用程序需要大量工作。微软计划很快为一些 WASI(Web Assembly 系统接口)API 添加默认绑定,这将使使用 HTTP 服务器或监听套接字等常见功能变得更加容易。


已经捐赠给CNCF


Hyperlight 项目当前已捐赠给 CNCF(云原生计算基金会),Wuyts 和 Menon 表示,该项目将成为沙盒计划的一部分,这是 CNCF 项目中最具实验性的类型。Hyperlight Wasm 现在是整个项目的一部分,该项目在 Apache 2.0 许可证下开源。


结语


微软的举措远未达到生产就绪状态,但确实表明了人们对在比容器更轻的运行时中封装应用程序的强烈需求,但具有与虚拟机相关的强大安全边界以及快速启动能力。


作者:场长

评论