WebAssembly解決了哪些業務問題?
WebAssembly(通常稱為Wasm)是雲原生世界中的熱門話題,一項關於服務網格的CNCF調查表明,針對Wasm等環境的服務網格外掛對25%的受訪者來說很重要。只是,wasm是什麼,更重要的是它能做什麼進行了多次會談和充分討論。
引起關注的一個有趣的討論是,由於其設計,WebAssembly可能在許多情況下取代Docker。但正如我們將在本文看到的那樣,過分關注WebAssembly的這一方面是不夠的,因為更重要的是WebAssembly可以支援的業務用途。事實上,就像任何有趣的新程式語言或技術一樣,Wasm價值的真正考驗是它的業務用途(目前,Adobe、微軟和提供wasmCloud的Cosmonic已經將Wasm解決方案推向了市場)。
WebAssembly可以用於將JavaScript(JS)、C++和Rust以及HTML和CSS整合到一個二進位制格式的執行時平臺中,該平臺直接在CPU上的機器級別上執行。它不僅可以用於支援Web應用程式,還可以擴充套件到任何在CPU上執行的邊緣環境和雲原生平臺,包括服務網格和邊緣Kubernetes支援。Wasm也存在了一段時間,直到2019年全球資訊網聯盟(W3C)將其命名為Web標準,從而成為第四個包含HTML、CSS和JavaScript的Web標準。
可移植性和一致性
Wasm提供的主要好處之一是其可移植性和一致性,這可以使安全性和合規性更易於管理(同樣,它在CPU級別以二進位制格式執行)。Randall在KubeCon+CloudNativeCon期間說:“從邏輯上講,WebAssembly給了你一個以前可能聽說過的承諾:寫一次,在任何地方執行,你以前可能聽說過Java或SilverLight,或Flash,或之前的一種技術,但WebAssembly的區別在於這是社群驅動和開放的。如今,它已經嵌入並支援桌面和移動裝置上所有最現代的瀏覽器平臺。因此,每個人都可以開始使用WebAssembly,它的工作原理就像一個小小的CPU——你甚至可以將web assembly放在其他應用程式中。”
然而,雖然WebAssembly可以提供一些漂亮的基準測試,並在堆疊級別上提供多種效率,但它只能提供其所能提供的業務用途。邊緣計算是Wasm開始嶄露頭角的一個例子。企業管理協會(Enterprise Management Associates)分析師Torsten Volk表示,這是因為將編譯好的程式碼分發給任何可以執行標準瀏覽器的東西的能力為一系列邊緣用例奠定了基礎。
“編譯後的程式碼通常比首先必須由主機裝置進行解釋的程式碼執行得快得多。這使得邊緣裝置的功能(例如企業應用程式或機器學習功能)得到了提高,因為消耗的CPU和電源資源更少。Wasm將現已失效的Flash或Silverlight技術的優點帶到任何瀏覽器上,但不受任何特定供應商的限制。”
Volk說,Wasm的社群驅動方法應該解決“扼殺了這些其他客戶端技術”的安全性和相容性挑戰。“此外,這使JavaScript開發人員能夠呼叫編譯過的C++函式,反之亦然,使JavaScript開發人員可以訪問編譯過的語言。”
能用Wasm做什麼?
在KubeCon+CloudNativeCon聯合舉辦的“雲原生Wasm歐洲日”活動中,展示了為Wasm編譯的CMS如何支援雲端計算公司Fermyon的網站。WebAssembly在公司提供的服務中也扮演著重要角色。Fermyon執行長Matt Butcher在演講中表示:“我們的想法是,作為一家進入新領域的新公司,有許多SEO效能最佳化非常重要。對我們來說,重要的一件事是,人們可以方便地閱讀有關WebAssembly的資訊。因此,我們花了大量時間提前設計CMS,以便原始碼的順序是正確的。我們決定遵循最佳實踐的所有規範,將其全部內建,以便在作者編寫內容時,不必考慮搜尋引擎最佳化。”
Fermyon的創始人還希望給網站設計師“以他想要的方式做事情”的自由,允許他選擇想要的主題引擎、CSS框架和JavaScript庫。Butcher在演講中說,這些都被納入了“一系列非常強大的功能中”。
資料堆疊上的計算和資料之間的分離增加了延遲並導致其他問題,這對於流、邊緣連線和其他分散式應用程式來說尤其麻煩。Fluvio專案的創始人、資料智慧平臺提供商InfinyOn的聯合創始人Sehyo Chang在演講中表示,基於Wasm的線上計算可以消除資料和計算之間的豎井。這是透過資料流開源Fluvio對Wasm的實現來實現的,以建立一個提供以下功能的分散式流平臺。
Chang說,這對業務的影響是巨大的。為了創造Chang在演講中描述的“實時經濟”,由於Wasm的配置,跨資料流以及資料庫和記錄系統之間的現有延遲可以顯著減少。由於Wasm相對簡單的二進位制計算結構,應用程式和程式碼更易於審計和實施安全策略。
在一個資料流應用程式中,Chang展示了Wasm是一個“遊戲規則改變者”,它將隔離性與可移植性相結合,“允許我們透過將計算基礎設施和資料集扁平化為統一的堆疊來重塑計算基礎設施和資料集。這個堆疊可以從邊緣環境到雲,可以跨越大陸和不同的位置。”
Adobe將Wasm推向了邊緣
Wasm在Adobe中被大量使用。Adobe高階軟體工程師Colin Murphy在演講中詳細介紹了CDN edge compute和Wasm/WASI平臺,以及當前和未來的Adobe應用程式。Murphy說:“在Adobe有很多C++程式碼,WebAssembly允許你做的就是將這些程式碼帶到瀏覽器中。因此,如果沒有它,我們就無法將Photoshop和Acrobat引入瀏覽器……Adobe已經做了大量工作來改進WebAssembly標準,以實現更高的效能、更好更快的記憶體訪問等。”
來自 “ 開源雲中文社群 ”, 原文作者:開源雲中文社群;原文連結:https://mp.weixin.qq.com/s/iLrjsEQr4oFN90-3WhAheQ,如有侵權,請聯絡管理員刪除。
相關文章
- JSR - 133 都解決了哪些問題?JS
- CRM系統幫助企業解決了哪些商機問題?
- CRM解決企業面臨的哪些問題?
- PLM系統到底解決了哪些問題?詳細解析
- HTTP代理可以解決哪些問題?HTTP
- CRM系統能幫助企業解決哪些問題?
- ERP系統可以幫助企業解決哪些問題
- Vue.js筆試題解決業務中常見問題Vue.js筆試
- CRM能解決哪些企業管理問題?
- CRM系統能幫外貿行業解決哪些問題行業
- 分析CRM能解決哪些企業管理問題?
- 能解決哪些企業管理問題的CRM?
- 離職,問題就解決了嗎?
- Promise到底解決了什麼問題?Promise
- 在Linux中,ansible可以解決哪些問題?Linux
- 滲透測試可以解決哪些問題?服務方式是什麼?
- 這些負載均衡都解決哪些問題?服務、閘道器、NGINX負載Nginx
- Clean架構能夠解決哪些問題? - jbogard架構
- 低程式碼開發可以解決哪些問題
- Webpack的理解以及解決了的問題Web
- 混合雲管理問題,你解決了麼?
- ES6解決了什麼問題
- 解決軟體供應鏈安全問題需要關注哪些問題
- 全球首個零信任國際標準釋出,解決了哪些關鍵問題?
- 低程式碼開發平臺能為企業解決哪些痛點問題?
- 在製作遊戲的過程中,我都解決和改進了哪些問題遊戲
- 企業需要DFSS解決什麼問題?
- 國外代理ip能夠解決哪些網路問題
- TiDB 4.0 為解決熱點問題做了哪些改進?TiDB
- Go etcd 的依賴問題終於解決了。。。Go
- 跨鏈橋的存在解決了什麼問題?
- 前端學習(2577):Nuxt解決了什麼問題前端UX
- 瓴犀強大SRM系統功能模組,可以為企業解決哪些問題
- 【FAQ】推送服務常見問題及解決方案
- Spring Boot 整合 Seata 解決分散式事務問題Spring Boot分散式
- 微服務閘道器 gateway 跨域問題解決微服務Gateway跨域
- 企業辦公問題由企業雲盤解決
- 一文揭秘DDD到底解決了什麼問題