來(lái)自微軟的 DeisLabs 團(tuán)隊(duì)最近開源了一款完全基于Rust的新軟件Krustlet,該軟件可以用來(lái)在Kubernetes上運(yùn)行WebAssembly模塊。
Kubernetes 是來(lái)自谷歌的開源容器集群管理系統(tǒng),主要用 Go 語(yǔ)言編寫。而微軟此次選用 Rust 來(lái)編寫這款 Kubernetes 相關(guān)項(xiàng)目,背后有著怎樣的原因?
Azure DeisLabs 的高級(jí)軟件工程師 Taylor Thomas解釋,主要?jiǎng)訖C(jī)之一是 Rust 與 WebAssembly(縮寫為 WASM)的兼容性。WASM 是便攜式的抽象語(yǔ)法樹,能夠讓開發(fā)者運(yùn)用自己熟悉的編程語(yǔ)言進(jìn)行編譯,再借由虛擬機(jī)引擎在瀏覽器內(nèi)運(yùn)行。經(jīng)過(guò)編譯的 WASM 二進(jìn)制文件(或稱模塊)可以在任何系統(tǒng)上運(yùn)行,而Rust 是為這些二進(jìn)制文件提供本機(jī)構(gòu)建支持的少數(shù)語(yǔ)言之一。
除了兼容性之外,DeisLabs 團(tuán)隊(duì)選擇 Rust 的另一大原因是其“強(qiáng)大的安全保障”。Thomas 表示,盡管 Rust 的借用檢查器(borrow checker)在項(xiàng)目初期帶來(lái)一些麻煩,可一旦學(xué)習(xí)并熟練使用后,用 Rust 編寫的效率就非常高了。該團(tuán)隊(duì)大約用了一周時(shí)間來(lái)學(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 來(lái)講,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í)問(wèn)題和學(xué)習(xí)曲線問(wèn)題。“在學(xué)習(xí)曲線趨于平穩(wěn)之前,需要花費(fèi)數(shù)周的努力學(xué)習(xí)如何在 Rust 中正確編碼。但是,由于上述的安全功能,這種前期的努力可以帶來(lái)豐厚的回報(bào)。一旦開發(fā)人員超越了這一初始曲線,他們就可以像使用任何其他語(yǔ)言一樣輕松地為代碼做出貢獻(xiàn)。”
上周發(fā)布的Rust 語(yǔ)言年度調(diào)查報(bào)告中,“學(xué)習(xí)曲線”也被認(rèn)為是阻礙開發(fā)者采用 Rust 的一大因素。Rust 目前備受關(guān)注,但由于種種阻礙,仍不流行。盡管如此,微軟DeisLabs 團(tuán)隊(duì)在博客文章中表示,他們看到了 Rust 在云軟件中的光明前景,并將繼續(xù)嘗試在各種合適的項(xiàng)目中采用 Rust。
Copyright (C) 1999-20120 www.fjgraments.com, All Rights Reserved
版權(quán)所有 環(huán)球快報(bào)網(wǎng) | 聯(lián)系我們:265 073 543 9@qq.com