Wasm是云原生技术的下一步发展,更是GAI实现快速推论关键助力
支付動態 · 2024-11-29

WebAssembly可以提供跨任何开发语言、操作系统,甚至是处理器架构的运行环境,成了云原生生态圈今年的热门技术,GAI开发者也开始重视,要用来实现超高速的即时AI推论

高盛银行有一个每天数百万次调用请求的开发者API平台,他们在2023年时开始验证如何用Wasm,来封装不同语言所开发的API插件,统一这些插件程序的部署和管理,最后让全部的API插件程序都改用Wasm形式来提供。高盛集团

德国制造大厂Bosch有个研究团队,则在2023年底时,分享了在自驾车软件和工厂系统运用Wasm的经验。他们用Wasm搭配容器技术,来部署汽车驾驶系统的嵌入式软件组件,大幅简化了电动车内不同类型异质设备的安装管理。他们还看上Wasm的毫秒级冷启动能力,在工业自动化设备的边缘主机上,用Wasm来部署监控软件,可以几乎即时的速度,来分析工控PLC系统回传的数据,来判断是否出现问题要发出预警,就算边缘主机当机(制造工厂环境常见的故障风险),也能快速(毫秒等级)在另一台边缘主机激活新的Wasm监控软件,做到几乎即时的故障自动切换能力,不会中断对工厂自动化产线的持续监控。

Amazon影音服务靠Wasm支持8千种各类设备

Amazon的Prime Video服务则看上了Wasm通吃各种设备、平台的能力。Amazon这项影音服务数百万名顾客所用的设备高达8千种类型,除了电脑、手机,还有游戏主机、各类数位电视、机上盒、USB串流棒等。每次要改版,几乎很难针对每一种环境提供专门的升级版本。所以,Amazon从2020年8月开始测试Wasm,发现同样的功能,用Rust语言开发,再编译成Wasm文件格式运行,可以比用JavaScript开发的运行速度快上10到25倍,便决定在2021年大幅改用WebAssembly混用JavaScript,来简化软件版本升级的流程。

Amazon会在设备上预载两种运行环境,一个是WebAssembly VM,另一个是JavaScript VM。需要大量运算的功能,例如动画模拟、渲染计算等,就改用Wasm技术编译成二进位档,放到WebAssembly VM中运行,而Prime Video App则保留原本的JavaScript代码,加载到另一个JavaScript VM环境中来运行。这个做法,不只更容易靠一两种语言,支持到更多类型的设备,高运算负载的代码从JavaScript改为Wasm后,省下了30MB的内存,只需要7.5MB就能顺畅运行,也降低了不少硬件规格的门槛,提高在低级或行动设备上的运行性能。

WebAssembly并非是这几年隔空出现的新技术,而是问世十年的老技术,一开始是为了解决 JavaScript直译式语言速度太慢的问题,尤其Web应用的功能越来越复杂,程序档也越来越大,动辄数万、数十万行的Web应用代码,如何提高大型Web应用在浏览器中的运行速度成了一大挑战。早在2010年时,有位软件工程师Alon Zakai打造了一款工具Emscripten,可以将C/C++代码编译成JavaScript可运行的形式,2012年更是发布了asm.js技术,这是JavaScript的一项子集合,可以在浏览器中运行C和C++代码来加速。这是WebAssembly标准出现前的JavaScript应用优化尝试。

2015年5月,JavaScript之父Brendan Eich特别来台参加iThome举办的Modern Web大会,回顾这项技术的开发幕后秘辛以及20年来的发展。在演讲中,他特别展示了在浏览器中运行的第一人称3D射击游戏,来展示当JavaScript运行效率跟Bytecode程序一样时,可以做到的能耐。这个现场展示,震惊所有参加者,包括台下的我。

一个月后,JavaScript之父就和四大浏览器平台,发起了W3C WebAssembly社群小组,想要重新发明JavaScript网页应用,以WebAssembly来命名新技术,顾名思义,就是Web的Assembly(汇编语言)形式,要让网页应用也能拥有二进位Bytecode的运行格式。

Brendan Eich指出,WebAssembly格式标准将成为一个网站代码的新中介层,可以提供一个二进位文件格式标准来运行网页。最大特色是,可以让JavaScript程序的运行速度快20倍,让网页应用也能像桌面原生应用一样的运行速度。因为,WebAssembly标准的作法是,直接定义了一个新的网页运行层,而非如JavaScript子集合的作法,让浏览器能直接运行二进位文件格式的WebAssembly文件,来达到像是运行Bytecode程序般的高性能。而且,当时JavaScript之父更指出一个未来的发展趋势,这项技术不限于JavaScript这种语言,而是任何语言都可以用的技术。

这项技术有多强?像是Adobe大砸200亿美元收购的设计平台Figma,正是靠WebAssembly技术才打造出操作流畅的在线工具,可以在浏览器上使用大量矢量组件,组合成复杂、精美的网页版面。正因为WebAssembly可以让Web应用的运行速度,媲美桌面原生软件般的运行速度,所以,不少人用「网页汇编语言技术」来形容。

经过两年努力,在2017年时,WebAssembly 发表了第一个版本,获得Chrome、Safari、Edge、Firefox等主要浏览器的支持,也正式成了网页标准之一。不过,这项技术,一开始只能在浏览器环境中运行,想要运行Wasm,还得先安装一只浏览器或浏览器引擎。

Wasm走出浏览器,连Docker之父都惊艳

直到2019年,这一年是 Wasm走出浏览器,迈向广大云原生世界的关键一年。Mozilla、云端业者Fastly等联手发表了WASI(WebAssembly System Interface)项目,提供了一个runtime程序和命令行工具,不需要浏览器,可以直接在桌机或服务器端运行Wasm应用。同时,项目成员也发起了Bytecode联盟,要将WebAssembly推广到浏览器以外的世界。这也让同一套Wasm封装的代码,可以在浏览器或非浏览器的环境中运行,不需要维护两套代码。

2019年是 Wasm走出浏览器,迈向广大云原生世界的关键一年。Mozilla、云端业者Fastly等联手发表了WASI(WebAssembly System Interface)项目,通过独立的runtime和命令行工具,不需要浏览器,也可以直接在桌机或服务器端中运行Wasm应用。/Fastly杰出工程师Luke Wagner

「如果WASM和WASI在2008年就出现,我们就不需要发明Docker技术了。」Docker之父Solomon Hykes这一句话点出了WebAssembly技术对云原生生态圈的影响力,可以媲美Docker技术创造了整个云原生技术浪潮的重要性。这句话也成了后来大家谈到WebAssembly发展时,最常被引述的一句话,这是一项连Docker之父都赞叹的新技术。

跨出浏览器之后,横跨到云原生技术圈的WASM生态圈,从2020年开始茁壮,而且相关工具和技术项目数量越来越多,贡献者规模越来越大,更多任务具,更多开发语言开始支持,也开始出现大规模开发Wasm用的技术框架。

WASI项目在2021年提出了新的组件模式(Component Model)草案,可以让不同语言写的代码,编译成Wasm组件,此彼此有一套标准的组件输入输出方式来交互,举例来说,用Go语言写的Wasm组件,和用Rust语言写的Was组件,有共同的标准输入输出方式,就像用同一种语言开发的组件一样,甚至可以把这两个组件,放入一个更大的Wasm组件中混用。这个组件模型,让Wasm具备了跨各种语言的能力,这也是后来WASI项目0.2版的重要特色。Brendan Eich多年前提到的WebAssembly跨开发语言的能力,不只在浏览器中落实,更在浏览器外的广大云原生世界中实现了。

到了2022年,已有超过40种语言支持Wasm,包括Rust, C, C++, JavaScript和GO语言。而且不只服务器环境,还可以在边缘设备,甚至是IoT设备上运行Wasm程序。2022年10月,Docker公司更宣布加入Bytecode联盟,要让Docker引擎开始支持Wasm,直接在容器运行环境中,也能直接运行Wasm的二进比特件档。

Docker这一步,吸引了更多云原生采用企业对这项技术的关注,云原生组织CNCF在年度调查中观察到,超过37%的企业开始试水温尝试WebAssembly,尤其可用于Serverless架构中的两款Runtime,包括WasmEdge和WAMR开始受到关注。CNCF这份调查报告最后的结论是「容器已经成为新标准,而WebAssembly是未来。」这个云原生生态圈最重要的组织,开始认真将WebAssembly视为接下来的重要发展方向。

不只是容器技术指针厂商开始拥抱,虚拟化技术也开始向Wasm靠拢。微软Azure首席技术官Mark Russinovich在2023年Build开发者大会上发表了Hyperlight,可以在Hypervisor上直接运行Wasm应用。Hyperlight可以产生一个微型VM(Micro-VM),比运行一个容器所用的资源更小,启动速度超快,具有Hypervisor层隔离强度的运行环境,来运行Wasm组件。1秒钟可以启动1千个这种运行Wasm的微型VM ,延迟时间甚至只有250微秒,也就是一秒的四千分之一。微软让虚拟机、容器和Wasm可以在同一个Hypervisor环境中并存。

后续报导请见:

WebAssembly如何成为云原生生态圈关键技术

WebAssembly生态圈有哪些重要项目?Wasm生态地图重点剖析

热门文章
越南博彩管控逐步放宽,惟本土需求仍显乏力
东南亚资讯
巴西颁布新法赋权央行封锁非法博彩账户及 Pix 交易
支付动态
超级PAC筹资4800万美元:体育博彩势力加码
游戏风向
准备好了将你的收益最大化吗?尝试ProPush.me Constructor!
广告营销
Zenith携手HUIDU,冠名赞助2026年世界杯嘉年华官方巡回活动
线上游戏
BETFAIR 网络攻击80万用户资料泄露
游戏风向
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
哈萨克斯坦计划对在线赌场促销活动进行处罚
游戏风向
亚洲顶尖游戏供应商多寶游戏 DB GAMING,开创亚洲市场的唯一首选
广告营销
密西西比州众议院委员会推进提议增加赌场税的法案
游戏风向
2027 Global Game Connect(GGC)斯里兰卡招商全面开启!业务人脉尽在掌握!
灰度头条
张侨伟参议员排除全面禁止,敦促菲律宾规范网络赌博
东南亚资讯
PropellerAds 分享了新的 iGaming 案例研究:在 3 个月实现 97,674 次安装和 12,701 笔存款
广告营销
越南在线博彩业政策收紧 催生市场新机遇
东南亚资讯
首页
游戏
合作
发现
我的