WebAssembly真的要取代Docker嗎?
有一個(gè)討論引起了大家的興趣:由于其設(shè)計(jì),WebAssembly(也稱為Wasm)可能在許多情況下取代Docker。但正如我們將在本文中看到的那樣,過(guò)分關(guān)注WebAssembly的這一方面是不夠的,因?yàn)楦匾氖荳ebAssembly可以支持的業(yè)務(wù)用途。

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



























