工具链逐渐成熟,Wasm云原生应用走向主流WebAssembly的2022
Michael Yuan Second State
近日,OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。其中,CNCF WasmEdge 维护者 Michael Yuan 在报告中对开源大前端领域里 WebAssembly 进行了解读。以下是未删减版原文。
报告地址:https://gitee.com/report/china-open-source-2022/
2022年是云原生 WebAssembly (Wasm)工具链逐渐成熟的一年,也是 Wasm 的云原生应用逐渐走向主流的一年。
虽然 Wasm 已经在浏览器里使用多年,在服务端上,云原生 Wasm 是一个起源于 2019年的新生事物:Docker 创始人 Solomon Hykes 在推特上说,服务端的 Wasm 是云计算的未来。他说 Docker 未来不但要支持 Linux 容器,而且也会支持 Wasm 容器。与 Linux 容器相比,同等的应用在 Wasm 容器里会更轻,更快,更安全,更加(跨平台)可移植。
三年疫情之后,Solomon Hykes 的预言终于变成了现实。2022年10月24日,Docker 在 Cloud Native Wasm Day NA 宣布了 Docker + Wasm 技术预览,并且在之后发布了集成 WasmEdge 的 Docker Desktop 4.15 正式发行版。通过与 WasmEdge 的合作, Docker 现在可以肩并肩运行 Wasm 容器 与 Linux 容器。现实世界的例子展现了 Wasm 容器应用的启动时间与空间占用都比 Linux 容器改进了两个数量级(100倍)。
Docker 的支持是 Wasm 的开发工具链步入主流的一个里程碑 。这意味着1000万使用 Docker 的开发者可以使用他们熟悉的工具链来开发与管理 Wasm 应用程序。通过一个简单的 docker compose up 命令,开发者可以立刻构建、共享和运行 Wasm 容器。
Docker 的 Wasm 支持不仅依赖于 WasmEdge,也依赖于 runwasi 这个开源项目。它使得任何基于 containerd 的容器管理系统(包括 Docker 与 Azure)都能用 shim 的方式启动 Wasm 容器。12月2日,runwasi 成为 containerd 的正式项目,这也意味着 containerd 正式支持了 Wasm。
当然,很多云原生项目并不一定依赖 containerd。但是几乎所有云原生项目都会用到更底层的 OCI Runtime。crun 与 youki 是两个率先支持 Wasm 的主流 OCI runtime,它可以使 Wasm 应用无缝接入现有 K8s 生态。通过 crun 的支持,CRI-O、Podman、OpenShift 与 K8s 及 K8s 的变种如 OpenYurt、SuperEdge、KubeEdge、kind 都可以启动、编排 Wasm 容器。
在操作系统层面,Fedora Linux 37 与 Red Hat Enterprise Linux 的 EPEL 9 都在 2022 年正式集成了 WasmEdge 的安装包。这样,云原生开发者可以直接在自己的 Linux 程序里集成 Wasm 应用,或者用简单的命令行启动 Wasm 的运行沙盒。
2022年,Wasm 的语言的支持也在逐渐增加。例如,通过 WasmEdge-quickjs 项目,JavaScript 程序,甚至包括 Node.JS API 与 NPM 软件包,都可以运行在 Wasm 容器里。VMware 将 PHP 导入到 WebAssembly ,可以在 Wasm Runtime 运行 WordPress。微软的 .Net 增加了对 WASI 的支持。
在 2022 年,Wasm 标准里面最值得期待的是 Component model 提案,这个提案将支持从一个 Wasm 模块访问其他模块和系统(例如数据库,消息队列),提高 Wasm 模块的可重用性和可组合性。Fermyon 的 spin 与 Microsoft 的 SpiderLightning 等项目已经在使用 component model 的一些接口与工具。主流的 Wasm Runtimes,包括 wasmtime 与 WasmEdge,也都明确表示要支持 component model 的实现。
但是同时,Wasm 社区也在继续扩展 WASI 的应用范围,以让更多的 Rust、 JavaScript 或者其他语言的应用程序能够不加更改地在 Wasm 上运行。这里有代表性的是 WasmEdge 对 WASI socket 的改进创新使得 Rust 的 Tokio, hyper, reqwest, 甚至 mysql, kafka, redis 等 crates,以及 JavaScript 里的 Node.JS API,都能在 WasmEdge 里面运行。
开发工具的支持与开发者的努力,使得 Wasm 在 2022 年解锁、丰富了几个重要的云原生应用场景。 微服务 — 相较于传统 Linux 容器,Wasm 为微服务提供了轻量级、安全、高性能的运行环境。例如,wasmCloud 与 Adobe 合作部署了基于 Wasm 的安全微服务。又比如 WasmEdge 与 Dapr 正在合作,让基于 WasmEdge 的微服务能够直接使用 Dapr 集成的几百种服务。 数据流函数 — 作为一个轻量级、可嵌入的 runtime, Wasm 在数据库 UDF 和数据流的 ETL 方面有落地应用场景。例如SingleStore 与 Nebula Graph 使用 Wasm 在数据库执行 UDF。InfinyOn 与 Redpanda 使用 Wasm 在实时数据流中处理数据。 PaaS serverless 函数 — Wasm 非常适合执行轻量级,需要快速冷启动扩容的 serverless 函数。Fermyon、Cosmonic 以及 Fastly 都基于 Wasm 推出了类似 AWS Lambda 的 Serverless 平台。 SaaS serverless 函数 — Wasm 可以赋能 SaaS 平台支持用户上传的代码。这些代码是由 SaaS 事件触发的,以取代复杂、慢、且难用的 webhook APIs。Suborbital 推出了基于 Wasm 构建 SaaS 扩展的框架。而 Flows.network 是一个用 Wasm serverless 函数来连接 SaaS 的工具。
另外值得一提的是,我们也看到了越来越多的公司正在加大对 Wasm 的投入,这其中不仅有初创公司 Second State、Fermyon、Suborbital、Cosmonic、Diagrid、Singlestore,还有较大规模的公司比如 Microsoft、VMWare、Intel、Cloudflare、Fastly、Red Hat、Docker、Cisco、阿里、蚂蚁、字节跳动等等都在探索或正在使用服务器端的 Wasm。
最后, Wasm 在浏览器端也有了进展。W3C 发布了 WebAssembly 核心规范 2.0 的首个草案,讨论了 WebAssembly Core Specification – Version 2.0、WebAssembly JavaScript Interface – Version 2.0、WebAssembly Web API – Version 2.0 ,为 WebAssembly 在浏览器的应用指明了方向。
2022年,是 Wasm 云原生工具链逐渐完善的一年,相信云原生 Wasm 的应用在2023年将会更广泛。
《2022 中国开源开发者报告》报告由" 前沿开源技术领域解读 " " 中国开源创业观察 2022",以及" 开发者画像分析 " 三个章节组成。在 "前沿开源技术领域解读" 部分,多位在其领域有所建树的一线开发者和开源商业化公司创始人,对目前国内外流行的前沿开源技术领域过去的发展和未来的趋势进行了深入的洞察,覆盖开源云原生、开源 AI、开源大前端、开源大数据、开源 DevOps、RISC-V、开源操作系统、开源数据库、编程语言九大领域。
11位科幻作家走进中国空间站,畅想中国航天深空探索时代2022年,中国航天事业继续着蓬勃发展的势头,通往星辰大海的征途步履不停综合性太阳探测专用卫星夸父一号发射成功并发布首批科学图像神舟十五号发射升空,与神舟十四号实现太空会师值得一提
南航中国哈尔滨至韩国首尔航线恢复CZ684航班降落哈尔滨机场。仇建摄中新网哈尔滨3月15日电(仇建)中国南方航空公司CZ683航班15日从中国哈尔滨太平国际机场起飞,搭载178名旅客前往韩国首尔仁川机场,这是自2
1927年,美国人甘博拍摄的清东陵慈禧墓,那时还没有被孙殿英盗挖1903年,慈禧在西苑慈禧,本名叶赫那拉氏,1835年11月29日在北京出生。她是咸丰皇帝的妃嫔,同治皇帝的生母,同时是晚清的实际统治者,把持朝政长达四十七年。1927年,美国摄影
吸毒证据多达上万张,昔日影帝将被警方传唤!2月8日晚韩国最年轻影帝刘亚仁涉嫌吸毒引发众多关注据韩媒报道14日警方已经收集刘亚仁吸毒证据资料多达10000张包括毛发及尿检结果个人手机信息医院就诊记录对刘亚仁两处住所的搜查和资
经常活跃在高端局的打野英雄有这七位,你认为是哪七位高端局打野永远只有这七位,学会其中一位就能轻松上大分。第七位,阿古朵,阿古朵是一位节奏型打野,前中期非常强势独特的刷野机制,可以无视野区的保护,在中高分段非常受欢迎。第六位,东方曜
试玩乐高阿凡达75571纳特莉驾闪雷兽,大战夸奇AMP机甲引言阿凡达2大家都看了吗?没看过的也不要担心,弗莱德近期的阿凡达测评不含剧透,因为都是第一部剧情。今天开箱75571,算是抛砖引玉,让我们开启纳美星的奇幻之旅吧!产品参数产品名称纳
怀旧武侠手游重温年少时的武侠梦!你有没有想过像武侠小说里的侠客一样,行走江湖,仗剑天涯?或诗酒,或笙歌,或刀光剑影的快意人生?小编最近发现了一款手游,可以给玩家带来不一样的武侠体验。玩家刚进游戏就可以看到这个游戏
这种氪法把我当韭菜,永恒之巅测评第三期接下来我们就来黑一波这个游戏,有什么可以吐槽的地方。先说一下和其他游戏一样的首充,这个游戏的首充啊分三档啊65098,老牛先充了一个6。有一个最重要的白银特权卡。这个卡是什么,开启
金装裁决打宝玩法攻略哈喽,兄弟们好。我是雾里,这次呢给大家带来日常打宝的攻略,感谢大家的支持世界boss开放时间全天世界boss每隔一段时间刷新,全服boss每天固定时间刷新,击败世界boss和全服b
巽风游戏攻略惊蛰冲榜分析和个人建议前言巽风我一共充了3000礼品卡,买了立春198进阶委托目前利润1瓶兔茅,1瓶大立春,雨水稀有水滴1个,惊蛰稀有水滴1个,元贝5769个,礼品卡余额1414元。开服第一天就开始玩刚
外蒙古独立,当年为什么脱离中国,现在发展怎么样了那就跟大家一起聊聊外蒙古,可能会有人分不太清楚,因为我们国家有一个内蒙古,所以我国民间管它叫外蒙古,现在是蒙古国,以前也是中国的版图之内,这一点是毋庸置疑的,到现在也才,正式独立不