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生態地圖重點剖析

热门文章
JILI Partners with Cricket Legend AB de Villiers (ABD) to Launch Exclusive Branded Game Series 100% 11
Sports Game
SBC Summit Canada to Make Player Safety a Key Pillar of 2026 Agenda
Marketing
HUIDU Invites You to Booth T70 at iGB L!VE 2026 — Let’s Ignite London This July!
HUIDU Focus
B2B Tech Infrastructure Gains Momentum in Philippine Gaming Sector
Southeast Asia
Across 6 Cities: HUIDU Invites You to 8 World Cup Parties Redefining High-Value Social Networking
HUIDU Focus
1spin4win releases unique slot Don Catleone Hold and Win featuring gangster cats
Online Game
British gambling levy rates confirmed for each vertical
Regulation
Are you ready to maximize your earnings? Try ProPush.me Constructor!
Marketing
UK MPs reopen 2025 gambling inquiry as reform stalls
Regulation
GGC Awards 2026 Shines in Colombo: Honoring Leaders and Innovators in the iGaming Industry
HUIDU Focus
Kazakhstan plans to penalise online casino promotions
Regulation
Institutional Academy that exceeded expectations marked the opening of GAT CDMX
Online Game
Full House at GAT Expo Cartagena 2026 Academic Agenda
Online Game
Super PAC Raises $48 Million: Sports Betting Forces Ramp Up Political Push
Regulation
Vietnam's tightening online gaming policy creates new market opportunities
Southeast Asia
首页
游戏
合作
发现
我的