歡迎您光臨本站 註冊首頁

微軟開源基於 Rust 的新軟體,可在 Kubernetes 上執行 WebAssembly

←手機掃碼閱讀     admin @ 2020-05-01 , reply:0

來自微軟的 DeisLabs 團隊最近開源了一款完全基於 Rust 的新軟體 Krustlet,該軟體可以用來在 Kubernetes 上執行 WebAssembly 模組。

Kubernetes 是來自谷歌的開源容器叢集管理系統,主要用 Go 語言編寫。而微軟此次選用 Rust 來編寫這款 Kubernetes 相關專案,背後有著怎樣的原因?

Azure DeisLabs 的高階軟體工程師 Taylor Thomas 解釋,主要動機之一是 Rust 與 WebAssembly(縮寫為 WASM)的相容性。WASM 是行動式的抽象語法樹,能夠讓開發者運用自己熟悉的程式語言進行編譯,再借由虛擬機器引擎在瀏覽器內執行。經過編譯的 WASM 二進位制檔案(或稱模組)可以在任何系統上執行,而 Rust 是為這些二進位制檔案提供本機構建支援的少數語言之一。

除了相容性之外,DeisLabs 團隊選擇 Rust 的另一大原因是其“強大的安全保障”。Thomas 表示,儘管 Rust 的借用檢查器(borrow checker)在專案初期帶來一些麻煩,可一旦學習並熟練使用後,用 Rust 編寫的效率就非常高了。該團隊大約用了一週時間來學習運作方式,兩週後效率就提升了 50%,到一個月時,所有人都能夠輕鬆編寫程式碼,並達到最高效率。

最重要的是,由於 Rust 編譯器的嚴格規則,它能夠從源頭遏制一些錯誤的產生。與後期再費心維護和除錯相比,Rust 能夠節省不少時間,提高生產效率。

針對新開發的專案 Krustlet 來講,Kubernetes 中存在大量自定義資料,並且雲端計算具有分散式特性。該團隊認為,Rust 的採用“在編譯器級別擁有這些保護和安全保證,使我們對正在編寫的程式碼充滿信心”。

Krustlet 這個專案被標記為“高度實驗性”,目前還不建議在生產環境中使用。Thomas 也指出了 Rust 的非同步執行時問題和學習曲線問題。“在學習曲線趨於平穩之前,需要花費數週的努力學習如何在 Rust 中正確編碼。但是,由於上述的安全功能,這種前期的努力可以帶來豐厚的回報。一旦開發人員超越了這一初始曲線,他們就可以像使用任何其他語言一樣輕鬆地為程式碼做出貢獻。”

上週釋出的 Rust 語言年度調查報告中,“學習曲線”也被認為是阻礙開發者採用 Rust 的一大因素。Rust 目前備受關注,但由於種種阻礙,仍不流行。儘管如此,微軟 DeisLabs 團隊在部落格文章中表示,他們看到了 Rust 在雲軟體中的光明前景,並將繼續嘗試在各種合適的專案中採用 Rust。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/115320/microsoft-kubernetes-and-rust
微軟開源基於 Rust 的新軟體,可在 Kubernetes 上執行 WebAssembly已經有120次圍觀

http://coctec.com/news/all/show-post-232357.html