WebAssembly真的要取代Docker嗎?
有一個討論引起了大家的興趣:由于其設計,WebAssembly(也稱為Wasm)可能在許多情況下取代Docker。但正如我們將在本文中看到的那樣,過分關注WebAssembly的這一方面是不夠的,因為更重要的是WebAssembly可以支持的業務用途。
然而,就像任何有趣的新編程語言或技術一樣,Wasm價值的真正考驗是它的業務用途,而且Wasm在簡單性、可移植性和安全性方面的優勢使它成為彌補Docker缺點的一個很好的候選人,尤其是在邊緣和分布式應用程序方面。
WebAssembly可以用于將JavaScript(JS)、C++和Rust以及HTML和CSS集成到一個二進制格式的運行時平臺中,該平臺直接在CPU上的機器級別上運行。它可以用于支持web應用程序,并擴展到任何在CPU上運行的邊緣環境和云本機平臺,包括服務網格和邊緣Kubernetes支持。Wasm也存在了一段時間,直到2019年萬維網聯盟(W3C)將其命名為Web標準,從而成為第四個包含HTML、CSS和JavaScript的Web標準。
Adobe高級軟件工程師Colin Murphy在演講中詳細介紹了CDN edge compute和Wasm/WASI平臺,以及當前和未來的Adobe應用程序。Murphy表示,為了提高業務績效,Wasm可能成為Docker的繼任者。Murphy說,“我四處看,想看看‘Docker with Kubernetes的后繼者是什么’,當了解WebAssembly時,我發現的是‘可以使用生產中實際使用的微服務,并且可以使用WebAssembly將其部署在服務器邊緣的客戶端上。’”
例如,與Docker相關的主要問題之一是CVE文件中可能存在漏洞。Murphy在一次采訪中說:“有時,同一個漏洞可以有多個CVE作為Docker容器。使用WebAssembly,你沒有任何第三方的東西。只需將其視為二進制文件即可。當然,安全問題總是存在的。但是,你不必攜帶操作系統的所有其余部分,也不必假裝它是一個操作系統,因為它實際上是自己的單元”,這有助于使Wasm具有吸引力。
然而,Murphy說,也不要指望Wasm會完全取代Docker。
“仍有大型機,仍有主機OSS,仍有具有非常特殊業務用例的虛擬機,并將繼續使用。但仍有一些非常好的地方,特別是在5G汽車的邊緣,以及所有這些類型的應用程序,在這些應用程序中,物聯網與世界接軌,并與邊緣接軌,在這些應用程序中,你無法用Docker。”
Docker產品負責人Jake Leverne表示,Wasm是否有可能最終完全取代Docker的使用,這是一個不合理的問題。問這個問題表明并沒有正確地理解開發人員市場是如何運作的,因為Wasm作為一種技術并不能取代Docker。
Leverne說:“Wasm是對Docker的補充,無論開發人員選擇何種方式來構建和實現其應用程序的一部分,Docker都將支持他們的開發體驗。”
Leverne說,使用Docker的開發、測試和部署工具鏈,無論應用程序架構如何,都可以更輕松地維護可復制的應用程序交付管道。此外,數百萬預構建的Docker鏡像,包括數千個官方和經驗證的鏡像,提供了“核心服務的主干(如數據存儲、緩存、搜索、框架等)”,可以與Wasm模塊一起使用。
Leverne說:“隨著時間的推移,容器運行時和注冊表將擴展到包括原生Wasm模塊支持。事實上,這已經在發生了。”