微软开源基于 Rust 的新软件,可在 Kubernetes 上运行 WebAssembly
來自微軟的 DeisLabs 團(tuán)隊(duì)最近開源了一款完全基于 Rust 的新軟件 Krustlet,該軟件可以用來在 Kubernetes 上運(yùn)行 WebAssembly 模塊。
Kubernetes 是來自谷歌的開源容器集群管理系統(tǒng),主要用 Go 語言編寫。而微軟此次選用 Rust 來編寫這款 Kubernetes 相關(guān)項(xiàng)目,背后有著怎樣的原因?
Azure DeisLabs 的高級(jí)軟件工程師 Taylor Thomas 解釋,主要?jiǎng)訖C(jī)之一是 Rust 與 WebAssembly(縮寫為 WASM)的兼容性。WASM 是便攜式的抽象語法樹,能夠讓開發(fā)者運(yùn)用自己熟悉的編程語言進(jìn)行編譯,再借由虛擬機(jī)引擎在瀏覽器內(nèi)運(yùn)行。經(jīng)過編譯的 WASM 二進(jìn)制文件(或稱模塊)可以在任何系統(tǒng)上運(yùn)行,而Rust 是為這些二進(jìn)制文件提供本機(jī)構(gòu)建支持的少數(shù)語言之一。
除了兼容性之外,DeisLabs 團(tuán)隊(duì)選擇 Rust 的另一大原因是其“強(qiáng)大的安全保障”。Thomas 表示,盡管 Rust 的借用檢查器(borrow checker)在項(xiàng)目初期帶來一些麻煩,可一旦學(xué)習(xí)并熟練使用后,用 Rust 編寫的效率就非常高了。該團(tuán)隊(duì)大約用了一周時(shí)間來學(xué)習(xí)運(yùn)作方式,兩周后效率就提升了 50%,到一個(gè)月時(shí),所有人都能夠輕松編寫代碼,并達(dá)到最高效率。
最重要的是,由于 Rust 編譯器的嚴(yán)格規(guī)則,它能夠從源頭遏制一些錯(cuò)誤的產(chǎn)生。與后期再費(fèi)心維護(hù)和調(diào)試相比,Rust 能夠節(jié)省不少時(shí)間,提高生產(chǎn)效率。
針對(duì)新開發(fā)的項(xiàng)目 Krustlet 來講,Kubernetes 中存在大量自定義數(shù)據(jù),并且云計(jì)算具有分布式特性。該團(tuán)隊(duì)認(rèn)為,Rust 的采用“在編譯器級(jí)別擁有這些保護(hù)和安全保證,使我們對(duì)正在編寫的代碼充滿信心”。
Krustlet 這個(gè)項(xiàng)目被標(biāo)記為“高度實(shí)驗(yàn)性”,目前還不建議在生產(chǎn)環(huán)境中使用。Thomas 也指出了 Rust 的異步運(yùn)行時(shí)問題和學(xué)習(xí)曲線問題。“在學(xué)習(xí)曲線趨于平穩(wěn)之前,需要花費(fèi)數(shù)周的努力學(xué)習(xí)如何在 Rust 中正確編碼。但是,由于上述的安全功能,這種前期的努力可以帶來豐厚的回報(bào)。一旦開發(fā)人員超越了這一初始曲線,他們就可以像使用任何其他語言一樣輕松地為代碼做出貢獻(xiàn)。”
上周發(fā)布的 Rust 語言年度調(diào)查報(bào)告中,“學(xué)習(xí)曲線”也被認(rèn)為是阻礙開發(fā)者采用 Rust 的一大因素。Rust 目前備受關(guān)注,但由于種種阻礙,仍不流行。盡管如此,微軟DeisLabs 團(tuán)隊(duì)在博客文章中表示,他們看到了 Rust 在云軟件中的光明前景,并將繼續(xù)嘗試在各種合適的項(xiàng)目中采用 Rust。
總結(jié)
以上是生活随笔為你收集整理的微软开源基于 Rust 的新软件,可在 Kubernetes 上运行 WebAssembly的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 库克电话会实录:中国市场谈及最多 iPa
- 下一篇: 微软将 Visual Studio On