2021 年,字節(jié)正式成立了 Rust 方向的團(tuán)隊(duì),開啟了內(nèi)部微服務(wù)基礎(chǔ)設(shè)施和基礎(chǔ)庫(kù)的研發(fā),并在 2022 年下半年開始接入業(yè)務(wù),在多個(gè)高性能服務(wù)上落地,如 FaaS、直播業(yè)務(wù)線、Mesh 控制面、數(shù)據(jù)平臺(tái)、圖數(shù)據(jù)庫(kù)、WebAssembly 等。去年 9 月,字節(jié)跳動(dòng)還開源了 RPC 框架 Volo 及相關(guān)生態(tài)。
在GOTC 2023 臨近之際,字節(jié)跳動(dòng)服務(wù)框架 Rust 負(fù)責(zé)人、CloudWeGo Volo 負(fù)責(zé)人吳迪表示:“未來(lái)我們將持續(xù)在Rust方向上進(jìn)行投入,包括公司內(nèi)外部布道推廣,基礎(chǔ)設(shè)施建設(shè),如 crates.io 的國(guó)內(nèi)鏡像 rsproxy.cn,以及開源生態(tài)的建設(shè)完善。”
據(jù)了解,此前字節(jié)內(nèi)部主要是使用 Go 語(yǔ)言。不過 Go 語(yǔ)言性能上限較低,對(duì)深度優(yōu)化不友好,于是服務(wù)框架團(tuán)隊(duì)開始探索 Rust 的潛力。他們發(fā)現(xiàn),經(jīng)過精細(xì)優(yōu)化的 Go 服務(wù)使用 Rust 語(yǔ)言重寫并經(jīng)過簡(jiǎn)單優(yōu)化之后,收益明顯:CPU 普遍收益在 30% 以上,有些能達(dá)到 50% 以上,甚至觀察到過 4 倍的 CPU 收益;內(nèi)存收益更為明顯,普遍在 50% 以上,有些甚至能達(dá)到 90%。這幫助字節(jié)節(jié)省了大量的資源。
更重要的是,Rust 語(yǔ)言解決了 Go 語(yǔ)言 GC 所導(dǎo)致的不可預(yù)測(cè)的抖動(dòng)問題,幫助其業(yè)務(wù)大大降低了超時(shí)率 / 錯(cuò)誤率,降低了 P99 延遲,提升了業(yè)務(wù)的 SLA。
不過吳迪也提到, Rust 語(yǔ)言和 Go 語(yǔ)言并不是對(duì)立關(guān)系,而是互補(bǔ)關(guān)系,相互取長(zhǎng)補(bǔ)短。對(duì)于需要極致性能、低延時(shí)、重計(jì)算、內(nèi)存瓶頸的應(yīng)用,以及需要穩(wěn)定性并能接受一定迭代速度損失的應(yīng)用,推薦使用 Rust,Rust 在極致性能優(yōu)化和安全性上的優(yōu)勢(shì)可以在這類應(yīng)用中得以發(fā)揮。對(duì)于性能不十分敏感的應(yīng)用、重 IO 的應(yīng)用以及需要快速開發(fā)快速迭代勝過穩(wěn)定性的應(yīng)用,推薦使用 Go 語(yǔ)言。需要根據(jù)應(yīng)用自身的特性以及團(tuán)隊(duì)的技術(shù)棧來(lái)選擇合適的語(yǔ)言。
除了在服務(wù)端業(yè)務(wù)和架構(gòu)側(cè)的落地,Rust 也在字節(jié)內(nèi)部安全、內(nèi)核、AI、 前端和客戶端領(lǐng)域均有一定程度的探索和落地。
比如,前端上大量使用了 Rust + WebAssembly、Rust + NodeJS 和 Rust 工具鏈,其中就包括將在 GOTC 2023 “Rust 專題論壇” 進(jìn)行分享的 RsPack 等項(xiàng)目;在客戶端方向,字節(jié)也有多個(gè)業(yè)務(wù)使用了 Rust 語(yǔ)言,最為突出的是飛書客戶端,飛書客戶端所有的邏輯均使用 Rust,有數(shù)百萬(wàn)行的 Rust 代碼,可能是中國(guó)目前最大的 Rust 項(xiàng)目。
字節(jié)也在努力回饋 Rust 開源社區(qū)。其開源的 RPC 框架 Volo 是一個(gè)追求極致性能,同時(shí)有著高擴(kuò)展性和易用性的 RPC 框架,目前主要支持 Thrift 和 gRPC,針對(duì) HTTP 的支持也已經(jīng)在規(guī)劃中;還開源了一個(gè)高性能的基于 io_uring 的異步運(yùn)行時(shí) Monoio。
除此之外,字節(jié)也在積極地回饋上游依賴項(xiàng)目,比如 tokio 以及 Rust 編譯器本身。在開發(fā) Volo 時(shí),字節(jié)跳動(dòng)服務(wù)框架團(tuán)隊(duì)遇到了一些編譯器的 bug,于是提了對(duì)應(yīng)的 issue 和 pr,并最終被 Rust 編譯器團(tuán)隊(duì)接受。其它的團(tuán)隊(duì)也有開源一些 Rust 的項(xiàng)目,比如近期開源的 RsPack、g3、monolake 和 keystone 項(xiàng)目。據(jù)了解,字節(jié)內(nèi)部仍有其它 Rust 項(xiàng)目正在計(jì)劃開源中。
“我們正在培養(yǎng) Rust 編譯器的 contributor,希望未來(lái)能有機(jī)會(huì)加入Rust官方團(tuán)隊(duì),期待更多Rust生態(tài)合作和建設(shè),持續(xù)為 Rust 創(chuàng)造貢獻(xiàn)。” 吳迪透露。
GOTC 2023 將于 5 月 27 日至 28 日在上海張江科學(xué)會(huì)堂舉辦,有一個(gè)主論壇,十多個(gè)分論壇。其中,“Rust 專題論壇” 的承辦方是字節(jié)跳動(dòng),出品人是字節(jié)跳動(dòng)服務(wù)框架 Rust 負(fù)責(zé)人、CloudWeGo Volo 負(fù)責(zé)人吳迪。該論壇主要分享 Rust 使用技巧以及語(yǔ)言相關(guān)生態(tài)的發(fā)展情況等內(nèi)容。
全球開源技術(shù)峰會(huì)(Global Open-source Technology Conference)GOTC 2023由開放原子開源基金會(huì)、 Linux 基金會(huì)亞太區(qū)、上海浦東軟件園和開源中國(guó)聯(lián)合發(fā)起,將于5月27日至28日在上海張江科學(xué)會(huì)堂隆重舉行。
這場(chǎng)面向全球開發(fā)者的盛大開源技術(shù)盛宴,堪稱 2023 年開源風(fēng)向標(biāo)。大會(huì)將以行業(yè)展覽、主題發(fā)言、專題論壇、開源市集的形式展現(xiàn),與會(huì)者將一起探討元宇宙、3D 與游戲、eBPF、Web3.0、區(qū)塊鏈等熱門技術(shù)主題,以及開源社區(qū)、AIGC、汽車軟件、AI 編程、開源教育培訓(xùn)、云原生等熱門話題,探討開源未來(lái),助力開源發(fā)展。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )