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