3

字节跳动:将持续投入Rust,期待更多Rust生态合作和建设

 11 months ago
source link: https://www.techug.com/post/bytedance-will-continue-to-invest-in-rust-looking-forward-to-more-rust-ecological-cooperat03cdd83d8d809fc3d129/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

字节跳动:将持续投入Rust,期待更多Rust生态合作和建设

O1CN01JXC9qz1OQdoaPm8V4_!!2768491700.jpg_640x640q80_.webp

2021 年,字节正式成立了 Rust 方向的团队,开启了内部微服务基础设施和基础库的研发,并在 2022 年下半年开始接入业务,在多个高性能服务上落地,如 FaaS、直播业务线、Mesh 控制面、数据平台、图数据库、WebAssembly 等。去年 9 月,字节跳动还开源了 RPC 框架 Volo 及相关生态(项目地址:https://github.com/cloudwego/volo)。

在 GOTC 2023 临近之际,字节跳动服务框架 Rust 负责人、CloudWeGo Volo 负责人吴迪表示:“ 未来我们将持续在 Rust 方向上进行投入,包括公司内外部布道推广,基础设施建设,如 crates.io 的国内镜像 rsproxy.cn,以及开源生态的建设完善。”

据了解,此前字节内部主要是使用 Go 语言。不过 Go 语言性能上限较低,对深度优化不友好,于是服务框架团队开始探索 Rust 的潜力。他们发现,经过精细优化的 Go 服务使用 Rust 语言重写并经过简单优化之后,收益明显:CPU 普遍收益在 30% 以上,有些能达到 50% 以上,甚至观察到过 4 倍的 CPU 收益;内存收益更为明显,普遍在 50% 以上,有些甚至能达到 90%。这帮助字节节省了大量的资源。

更重要的是,Rust 语言解决了 Go 语言 GC 所导致的不可预测的抖动问题,帮助其业务大大降低了超时率 / 错误率,降低了 P99 延迟,提升了业务的 SLA。

不过吴迪也提到, Rust 语言和 Go 语言并不是对立关系,而是互补关系,相互取长补短。对于需要极致性能、低延时、重计算、内存瓶颈的应用,以及需要稳定性并能接受一定迭代速度损失的应用,推荐使用 Rust,Rust 在极致性能优化和安全性上的优势可以在这类应用中得以发挥。对于性能不十分敏感的应用、重 IO 的应用以及需要快速开发快速迭代胜过稳定性的应用,推荐使用 Go 语言。需要根据应用自身的特性以及团队的技术栈来选择合适的语言。

除了在服务端业务和架构侧的落地,Rust 也在字节内部安全、内核、AI、 前端和客户端领域均有一定程度的探索和落地。

比如,前端上大量使用了 Rust + WebAssembly、Rust + NodeJS 和 Rust 工具链,其中就包括将在 GOTC 2023 “Rust 专题论坛” 进行分享的 RsPack 等项目;在客户端方向,字节也有多个业务使用了 Rust 语言,最为突出的是飞书客户端,飞书客户端所有的逻辑均使用 Rust,有数百万行的 Rust 代码,可能是中国目前最大的 Rust 项目。

字节也在努力回馈 Rust 开源社区。其开源的 RPC 框架 Volo 是一个追求极致性能,同时有着高扩展性和易用性的 RPC 框架,目前主要支持 Thrift 和 gRPC,针对 HTTP 的支持也已经在规划中;还开源了一个高性能的基于 io_uring 的异步运行时 Monoio。 

除此之外,字节也在积极地回馈上游依赖项目,比如 tokio 以及 Rust 编译器本身。在开发 Volo 时,字节跳动服务框架团队遇到了一些编译器的 bug,于是提了对应的 issue 和 pr,并最终被 Rust 编译器团队接受。其它的团队也有开源一些 Rust 的项目,比如近期开源的 RsPack、g3、monolake 和 keystone 项目。据了解,字节内部仍有其它 Rust 项目正在计划开源中。 

“我们正在培养 Rust 编译器的 contributor, 希望未来能有机会加入 Rust 官方团队,期待更多 Rust 生态合作和建设,持续为 Rust 创造贡献。” 吴迪透露。

本文文字及图片出自 OSC开源社区

TB2vxiElnnI8KJjy0FfXXcdoVXa_!!2768491700.jpg_640x640q80_.webp

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK