字节跳动的开源历程与价值思考

技术

picture.image

开源是软件世界的根基,字节跳动看重参与开源的长期价值,对于开源的态度一直是开放、鼓励的,愿与全球合作伙伴共同实现生态繁荣。

本文由字节跳动开源委员会治理运营负责人,火山引擎副总裁张鑫在 OSPO Summit 上的主题演讲整理而成。

picture.image

字节跳动的开源历程

字节跳动的开源历程大体经历了三个阶段:从使用、到参与、再到主动开源。在字节业务发展的早期,我们就广泛采用开源技术来快速打造技术中台,推动了字节跳动包括抖音、头条等业务的发展。随着开源使用的深入,我们根据自身的业务场景对开源技术进行优化改进,并反馈到社区当中,逐步开始参与开源贡献。当贡献累积越多之后,字节的同学们就开始尝试更加系统性地将一些自身的技术突破拿出来形成一个完整的项目,回馈给开源社区,也就是主动开源阶段。

到 2022 年,字节跳动已经开源了超过 50 个项目,随着主动开源项目的逐渐增多,我们发现大家在各个技术领域单点的开源了很多技术和工具,但公司对开源还是缺乏顶层的战略思考和设计规划。对于开源出去的项目,也缺乏良好的运营,对于如何运作一个开源社区、如何培养开发者关系方面非常缺乏经验。另外遇到的一个瓶颈就是如何保证开源合规、不碰红线。

在这样的背景下,公司决定成立 OSPO 这样一个中台组织,主要有以下几个方面的目的:

  • 制定公司级开源战略:明确开源的价值、目标与策略,确保有体系、有目标地开展开源工作。
  • 明确开源项目评审标准:筛选聚焦出高价值的重点项目,确保重点开源项目的资源支持与效果产出。
  • 强化开源管理规范:优化审批流程,确保使用 / 贡献 / 自研开源等各类开源实践的合法、合规、合理。
  • 做好内外部开源布道:对内提升开源认知与教育,对外展现开源成果、打造社区影响力。

开源在公司内定位成一个长期的、能够促使我们自身技术进步,同时能够推动行业技术发展的事业。字节跳动 OSPO 也成为了公司内的一个中台部门,组织架构上并不从属于某个业务单位,由 CEO 梁汝波和杨震原、洪定坤牵头,并分为战略评审和治理运营两个小组,同时背后还有很多的协同团队共同支撑。

我们希望字节开源可以坚持长期主义,做好少而精的精品项目,在具体落地时坚持几个原则:

  • ‍‍对于开源结果的价值考量以更加长期的北极星指标代替短期 KPI
  • 打造精品项目优于广泛覆盖
  • 用户价值优于商业变现,注重解决用户的真实问题
  • 安全和合规是底线

开源的价值思考和实践

整体来看,一个开源项目在经过市场影响力和接受度的考验之后,是可以获得一定的“商业价值的”。这里的“商业价值”我们认为不是短期的商业变现,而是包含了通过开源提升技术影响力,可以更好地丰富开发者生态,支持业务发展,吸引人才等。通过开源以及社区的参与,也可以更好地推动内部的技术创新,避免闭门造车和行业脱节。只有开放出去,才能和行业高手过招,才能接受客户的真实场景的考验,加速技术演化。

在使用开源阶段

开源软件和技术可以帮助公司解决基础设施问题,加速核心业务迭代;接入开源标准可以降低招聘门槛。但在过程当中也会遇到法律、技术、安全等方面的风险,同时也会遇到盲目拉取分支,和上游脱节等问题。

在我们的实践中,首先需要解决的是开源软件供应链存在着安全、运维和合规等风险。做好开源合规治理,在使用开源中最为基础和关键的工作。为了解决这一问题,我们从三年前就逐步开始了开源合规治理工作,主要从 “基础建设”、“合规治理”和“培训宣贯” 三个方面展开。

基础建设包括在制度流程层面起草公司层面的开源政策,发布开源许可证合规指引等治理指引文档,打造“一人一号”的开源合规扫描平台。

合规治理方面,我们逐个业务线展开开源合规专项治理,进行全量代码仓库扫描和蓝军定向挖掘等,同时也组织了开源合规相关的培训课程。

开源合规的落地包含了非常多的细节,团队的构成也包括了法务、安全、工具、合规、QA、研发、产品多个职能。目前团队已经引入业界成熟的 OpenChain 开源合规国际标准,形成配套的政策、制度、流程以及内外部宣贯机制来保障高效合规的使用、贡献和主动开源,进而从开源软件供应链的角度保障公司在开源社区的可信度。

在贡献开源阶段

参与开源社区贡献可以提升开源软件质量,帮助形成良性循环,增加企业员工认同感,吸引或留住人才,也可以让内部的团队接触优秀的外部开发者,提升团队技术能力。开源是创新的摇篮,对开源做贡献,可以帮助企业更有策略地规划业务和技术未来的发展。

在这个阶段常见的误区是认为贡献开源就是贡献代码,其实开源的贡献不局限于代码,包括了技术文档、大会分享、组织 / 参与社区活动等。同时也会遇到缺少对社区行为准则、规范等的误解而造成的冲突。

字节跳动开源委员会致力于在企业内部宣传上游贡献的价值,正在探索能够更好地激励开发者,培养养成上游贡献习惯的方法。

以系统技术与工程团队(STE 团队)为例:

STE 团队一直致力于系统技术领域的研究与探索,同时积极参与开源社区建设和技术贡献,围绕内核、虚拟化、操作系统等领域进行社区协作和技术创新,将多年的技术优化经验反馈给社区,与开发者共建良好的基础软件开源生态。包括向 Linux 内核社区提交 450+patches、向 Open BMC 社区提交 270+patches,多名同学也成为了开源社区的 maintainer。

此外,团队还向社区贡献或维护多个独立模块,提出的 HVO 方案已经合入社区,解决了 Linux 内核内存管理冗余等难题,获得业界认可。

2020 年,STE 内核团队向 Linux 内核社区正式开源面向云原生场景的下一代高性能设备虚拟化框架 VDUSE,为容器和虚机提供一个统一的 I/O 虚拟化层。这套方案也已经在字节的云原生场景大规模部署。经过一年时间,VDUSE 在 Linux 5.15 版本被正式合入,目前依托 Linux 内核,团队在虚拟化、云原生、eBPF 等技术方向上也在继续探索着。

做操作系统这类基础软件不是一时热情,是需要长期投入的。大浪淘沙沙去尽,沙尽之时见真金。

—— 张宇,字节跳动 STE 团队负责人,开源委员会 TOC 战略评审组委员

在主动开源阶段

开源可以帮助推动技术标准,企业可以通过在核心社区的贡献度、开源社区活动、开源基金会贡献等方面构建技术影响力。另外,开源社区的需求也可以帮助引入更多用户打磨产品,衍生出更多的应用和服务,构建开发者生态,助力核心业务发展。在这个阶段也要注意避免的误区是,开源本质上要确保“公开”、“使用”、“修改”、“分发”,也要避免开源唯技术论。

在主动开源方面,字节跳动经过这几年的积累,在 AI、大数据、架构、安全、以及前端和音视频领域有了不少的项目,如企业级云原生微服务架构的中间件集合 CloudWeGo,存储计算分离的数仓引擎 ByConity,高性能 transformer 加速引擎 lightseq,分布式深度学习通信框架 BytePS,云原生项目合集 KubeWharf 等。今年我们在 AI/ML 编译器、隐私计算等领域也会有非常有价值的项目开源出去,期待各位的参与和支持。

最后引用一下字节跳动的使命“激发创造,丰富生活”,其实在开源领域也适用。我们希望能够通过开源和 OSPO,激发更多技术创新,以及社区和行业内的潜能,让更多的人和组织可以享受创造的过程及价值,通过开源项目将个人的创新想法更好地聚拢起来,从而提升社区和组织的创造力。

如果说抖音、今日头条让亿万用户看到一个更加丰富多彩的世界,开源就是通过与更多人的协作帮助更多人更好地自我提升和实现,丰富无论是个体还是组织生命的广度和深度。

希望能够和行业各位伙伴有更多更深入的合作。

关于字节跳动开源委员会(OSPO)

字节跳动开源委员会(OSPO)是企业层面的协调员,旨在制定战略,助力字节跳动开源的成功。 OSPO 将完善开源软件管理体系,推动开源合规治理与开源运营,加速开源社区的活力和成长。

字节跳动开源公众号是由字节跳动开源委员会运营的字节跳动开源资讯平台。 如有意见建议或者合作机会,可以通过微信公众号后台留言联系我们。

24
0
0
0
关于作者
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论