2015年,剛好是JavaScript和PHP問世的20 周年,我們邀來這兩大語言的發明人,JavaScript之父Brendan Eich和PHP之父Rasmus Lerdorf,擔任Modern Web開發大會的主題講者。大家最好奇的問題是,這兩個語言下一個十年、二十年會怎麼發展?

中午找來幾位開發社群成員,與兩大開發教父一起用餐,兩位大師除了大談爸爸經和開發圈秘辛之外,他倆不約而同地提到,效能,是網頁開發語言接下來最重要的課題。

Rasmus Lerdorf演講中展示了當年最新發表的PHP 7(現在已經到8.4了),背後有哪些優化設計,可以讓大型網站服務的執行效能快一倍,也讓PHP更適合用來打造微服務架構的應用。

Brendan Eich更絕,直接在演講中,在臺上玩起第一人稱射擊遊戲,全場觀眾大吃一驚,包括坐在前幾排的我。這款操作靈巧,畫面流暢的3D互動遊戲,竟然是跑在瀏覽器中的Web應用。秘訣就是這款應用用了支援Asm.js的遊戲引擎Unity與Unreal。透過編譯JavaScript子集合的作法,讓JavaScript執行效率幾乎跟Bytecode程式一樣。

一個月後,JavaScript之父和四大瀏覽器平臺業者聯手,發起了W3C WebAssembly社群小組,想要重新發明JavaScript網頁應用,他以WebAssembly來命名這項新技術,顧名思義,就是Web的Assembly(組合語言)形式,要讓網頁應用也能擁有二進位Bytecode的執行格式。

不過,WebAssembly的做法跟JavaScript子集合有本質上的不同,Brendan Eich指出,WebAssembly直接定義了一個新的網頁執行層,而非JavaScript子集合,讓瀏覽器能直接執行二進位檔案格式的WebAssembly檔案,來達桌面軟體般的速度。他更點出了一個趨勢,WebAssembly技術不限於JavaScript,而是任何語言都可以用的技術。

兩年後,各大瀏覽器紛紛支援這項新的W3C標準,不少科技公司,都用WebAssembly來打造大型網頁應用,或是需要龐大運算的線上服務。Google就是其中一家。

Google地球就是靠V8引擎的WebAssembly多執行緒支援,才在瀏覽器中實作出任意放大縮小的飛行視角操作。Google Sheets則是用Wasm封裝Java計算引擎,讓超大型試算表的計算速度提高了1.8倍。

Adobe花了很多年,想要將設計圈最重要的軟體Photoshop搬上雲端,一直克服不了JavaScript的效能問題,後來找Google幫忙,改用Wasm技術,終於在2021年打造出Web版Photoshop測試版,去年正式推出。 

2019年,Mozilla聯手雲端新創Fastly,將Wasm帶出瀏覽器以外的世界,發表了WASI(WebAssembly System Interface)專案,透過獨立執行的runtime程式和命令列工具,不需要瀏覽器,可以直接在桌機或伺服器端執行Wasm應用。

這一步讓Wasm成了雲原生世界的要角。這個原本在瀏覽器中的安全沙盒技術,轉而可以在任何地方,提供一個輕量、快速、安全、跨平臺的應用程式執行環境。這兩年甚至開始具備跨語言能力,可以讓多個語言的Wasm檔案,只靠同一個runtime,在單一隻應用中互相互動,就像同款語言開發的元件一樣。

生成式AI開發圈也看上Wasm的輕薄短小,高速冷啟動能力。現在若想用GPU來執行一隻AI推論程式,除了開發者自己的程式碼之外,還需要Nvidia的CUDA runtime、AI技術框架如PyTorch或TensorFlow函式庫,加起來的容器映像檔,最少也要4.8GB,若再加上所用的LLM模型檔案可能多達10GB,想要執行一隻容器化的AI推論應用,至少要15GB,冷啟動的時間往往得花上30秒,甚至好幾分鐘。常見做法是,提前啟動AI推論的服務來待命,這也限制了AI推論的部署和執行模式。

但若改用Wasm技術來封裝AI推論應用,Wasm平臺新創Fermyon技術長Radu Matie指出,只需要數MB檔案大小,冷啟動可以大幅縮短到千分之幾秒,可以切割出短暫的GPU算力,來提供「剛好即時(Just in time)」的AI推論回應。

甚至今年還出現了Wasm打包的AI推論框架LlamaEdge,包括了一套10億參數量的Llama 2模型,檔案大小只有30MB,可以提供GPU原生應用執行速度。Wasm可以成為GAI快速部署到不同環境、提供快速推論的關鍵基礎環境。

也難怪,Gartner在2024年新興科技發展周期報告中,特別將WebAssembly和GenAI並列為唯二,跨出「期望過高的巔峰期」,即將進入技術成熟度曲線的「幻滅期」,意味著這兩項技術已經度過了炒作階段,接下來經過一段時間改善和優化,就會進入穩定發展的成熟期,最快2~5年,就會對全球帶來變革式的影響。

11月剛在鹽湖城落幕的KubeCon北美大會,WebAssembly更成了這場容器與雲原生大會最熱門的技術話題,被視為K8s未來十年的三大發展方向之一,與eBPF、IT永續並列。

國外也有企業開始採用這項技術,例如高盛集團有個每天數百萬次呼叫的開發者平臺,用不同種語言開發的API外掛,都全面改用Wasm來封裝,大幅簡化了部署和管理的工作。

K8s、容器技術是許多臺灣企業數位轉型,推動IT現代化所用的主流、核心技術,但是,雲原生的下一波技術WebAssembly開始成熟,值得大家留意!

專欄作者

熱門新聞

Advertisement