作者 | 蔡芳芳
近日,字节跳动发布一封内部邮件,官宣开源委员会正式成立,这意味着开源战略在字节跳动的重要程度进一步提升,同时,字节跳动开源将从原来由工程师自发驱动逐步走向有组织的“正规军”。InfoQ 第一时间联系并专访了字节跳动开源委员会主要负责人张鑫、王剑,本文将全面解读字节跳动开源委员会如何构建、运作以及未来将朝着什么方向发展。
为什么要成立开源委员会?
从 2015 年开源的 Rcproxy 项目开始,字节在开源层面的贡献已经有了一定积累。这几年间字节陆续向社区开放了多个经过内部业务验证的开源项目,比如现代 Web 开发框架 Modern.js、微服务中间件 CloudWeGo、高性能分布式训练框架 BytePS、联邦学习平台 Fedleaner 等。根据内部调研统计,字节目前已经对外开源了五十多个项目,按照技术领域分类,其中项目数量排在前三的分别是基础架构、AI 平台和音视频领域。
与此同时,字节也向社区反哺了多个主流开源项目的新特性。近日,由谷歌开源的应用开发框架 Flutter 正式发布 3.0 版本,官方博文中就提到“字节跳动是 Flutter 的主要用户,估计其有约 80 个基于 Flutter 的应用”。除了是主要用户,字节也是 Flutter 社区的重要参与者,至今为 Flutter 相关代码仓库贡献的 PR 超过 80 个,还开源了 Flutter 应用内调试工具 UME。
在很长一段时间里,字节做开源更多还是由工程师的个人兴趣来主要驱动,但过程中其实也遇到了一些问题。2021 年 10 月,抖音前端团队宣布开源其设计系统和 UI 库 Semi Design,随后有网友指出 Semi Design 的代码中出现了友商同类产品的痕迹,项目陷入“抄袭风波”。虽然抖音前端团队工程师很快发表了致歉声明,但事件已经在开源社区引发热烈讨论。这让字节意识到,开源仅仅靠工程师的兴趣驱动是不够的,还需要引入公司级的策略、规范和流程机制。
王剑表示,这次字节成立开源委员会,首先就是希望能够更全面地推进开源合规流程,避免一些不该发生的问题再次发生;其次,当公司越来越大,有更多项目开源或计划开源的情况下,如何更有效地投入资源、更好地支持开源项目的发展,是成立开源委员会的另一个初衷;最后,开源委员会有助于在开源层面与行业内其他公司和组织建立更好的合作关系。
据张鑫介绍,从确定要成立开源委员会到开源委员会正式成立,期间大家用了半年左右时间来完成前期准备工作。
对内,由于字节前期各个团队自发推进的开源项目比较多,需要先完成内部开源项目的梳理和盘点;其次,基于之前已经开源的众多项目,字节内部沉淀了一些开源相关的流程规范,大家围绕这些展开调研,看看哪些是可以复用的,而哪些还存在不足。还有一块很重要的工作就是盘点人力,按照不同阶段看有哪些团队、哪些人适合来牵头展开相关工作。
对外,字节团队也做了一些调研,以借鉴业界的最佳实践经验。比如分析国内外云厂商,看大家做开源和商业化,跟云业务本身是什么样的一种关系;也研究了外部一些开源做得比较好的公司,看他们内部大概是怎样一个组织架构和角色划分。
定位“资源中台”,做好开源支持
当前字节开源委员会已经完成了整体架构的搭建和角色划分。由于大的开源项目往往需要长期投入,同时又需要协调公司内外很多资源,因此由字节跳动 CEO 梁汝波和两位技术最高负责人杨震原、洪定坤担任开源委员会的 Sponsor。在此基础上,由洪定坤担任开源委员会的主席,负责协调和支持开源相关事务,下设两个小组,分别是王剑负责的战略评审组和张鑫负责的治理运营组。
其中,战略评审组统筹开源战略制定与开源项目评审,比如对于开源项目,按照技术影响力分成不同层级,对应地制定合理的运营目标和价值体系。小组成员包括各个技术领域(如基础架构、数据、AI 等)的代表和 ToB 业务(主要是火山引擎和飞书)的代表。
而治理运营组统筹开源合规治理与开源运营,包括搭建整个开源运营的基础设施、做好开源文化和最佳流程的宣贯和落地,以及为重要开源项目提供一线运营和治理方面的帮助等等。小组成员由项目布道师、市场运营团队、开源法务,以及搭建平台和工具相关的同学等组成。
据了解,目前开源委员会在字节内部定位是一个相对独立的架构,它并不属于任何一个技术团队或业务团队。目前团队的运作方式是虚实结合,既有实线,100% 全职做相关工作的同学,比如市场运营、法务、安全合规等;同时也会有虚线的合作和复用,比如相关平台工具的搭建就会由分散在不同研发团队的同学来贡献,最大程度地复用各个团队已经做过的工作。
合作和复用是开源委员会展开工作的重要准则之一。未来在字节各业务线开源项目的运作中,开源委员会将扮演“资源中台”的角色,核心是为开源提供更好的支持。过往,字节开源的很多项目已经有相关团队和人员在负责,新成立的开源委员会跟各个开源项目维护团队之间整体会是紧密协作的关系。
首先,各项目维护团队会和战略评审组一起,逐一对项目做评审,看看有的项目是不是应该加大投入力度或者有更高的目标;其次在治理运营方面,项目维护团队需要持续维护项目技术层面的迭代,而治理运营组负责提供更加体系化的支持,比如宣发渠道统筹、内容策划、社区开发者关系维护等。
对于字节后续要开源的项目,开源委员会也会统一把控开源的流程。开源之前,需要各项目团队先完成内部梳理和自审核,再提交给开源委员会做进一步审核。审核关键点主要包括代码质量、合规检查、安全风险、知识产权等,这些都事关开源红线,所有开源出去的项目都要遵守一定的流程和规范。在此基础上,开源委员会也会根据项目规模、项目类型等因素,对项目影响力做一个预判。对于重量级的项目,在运营、用户增长等方面投入的资源相应会更多一些。
不为开源项目设 KPI
除了为开源项目提供战略和治理运营上的支持,对开源项目的技术影响力做出合理的评判,也是开源委员会的重要职责之一。那应该通过哪些维度去评判一个开源项目做得好不好?字节一直秉持的原则就是不为开源项目设 KPI。张鑫和王剑都认为,开源要对别人有用、有价值,才是可持续的,但凡设定了硬性 KPI 或者将开源跟考核强关联,就很容易导致动作变形。
在字节,衡量一个开源项目主要还是看重它的长期价值,避免 KPI 导向,也不会把商业变现作为唯一目标,以免影响中立性。但是完全没有评估指标也不行,因此开源委员会会设定一些“北极星指标”,来综合评估开源项目做得怎么样。比如看整个开源项目在行业的市场占有率,这是跟这个开源项目到底有没有人用强相关的一个指标;比如看开源项目的贡献度,包括项目被 fork 的情况、第三方开发者的数量和应用的数量,如果是一个足够好的项目,自然会有很多贡献者愿意参与进来。除了使用的广度,也会关注使用的深度,比如在行业里有没有企业用户在深度使用这个项目,是否沉淀了一些标杆案例出来。
归根结底,“北极星指标”更多是围绕这个开源项目是不是能实际落地、有没有人愿意用、能不能在生产环境或者实际业务中产生价值来展开的。在张鑫看来,这些都比 GitHub 上简单的 Star 数更有意义,同时,即使是这些“北极星指标”也不会变成强 KPI,而是作为辅助评估的工具和引导工作方向的手段。
在王剑看来,开源的规则制定还应该尽量减少“打扰度”,“是不是存在一种可能,公司相关的流程规章制度设置得太复杂,导致大家做开源要投入很高的成本,最终很多人就不想开源了。”
目前开源委员会相关的流程都做得很轻,还是以提供能力和资源支持为主,希望在保持个人自发性的同时,通过消除障碍鼓励大家更多参与开源。甚至在很多情况下,字节一直更鼓励大家直接对开源社区上游提交贡献,免去走公司内部流程的麻烦,这对于很多内部同学来说其实也是一种鼓励。
未来规划
对于想要参与开源社区的普通开发者,开源从不设置任何门槛,但对于想要发展得更好的开源项目,还是有一定门槛的。字节做开源原本一直是以个人自发驱动、项目自主生长为主,未来想要系统化地管理好开源项目,成立开源委员会只是第一步。
接下来,开源委员会的短期目标会侧重于运营治理工作的体系化建设,包括拉通公司内部不同的协作团队,让已有开源项目的实践经验和已经建立的平台工具充分打通和共享,还有展开开源规范、文化和最佳实践的培训和宣贯,以及开源合规要求的制定和统一落地。在这个初始阶段,张鑫负责的治理运营组扮演着非常重要的协调管理的角色。
据张鑫透露,目前字节正在筹划加入 Linux 基金会发起的 OpenChain 项目。OpenChain 主要致力于为企业在其供应链中遵循众多不同的开源许可证提供标准。后续字节将依据 OpenChain 的标准和规范,为开源项目提供更多持续性的合规保证,避免踩坑。
从中长期目标来看,开源委员会希望能打造出一些精品开源项目,以提升字节开源的整体影响力、创造更大的社会价值。在张鑫看来,过去有的公司会推出非常多开源项目,导致精力比较分散,字节更希望做的是少而精,在更长的时间里打造出一些真正具有全球影响力的开源项目。
而这就要求开源委员会要能从内部项目中识别、判断、筛选出值得开源且开源后能够提供更好的社会价值的项目,并推动这些项目开源。这是王剑负责的战略评审组要着重考虑的。
常规的项目开源流程可能是,一些对开源有兴趣的同学自发地想说“我这个项目能不能开源”,然后开源委员会对这个项目做审核,如果满足一定的标准就可以开源。但还有一些情况是,工程师对于开源没有足够的认知,觉得内部项目很重要应该不能开源,或者工程师了解项目在公司内部的影响力但无法判断项目对外的影响力,就不会主动提出要把项目开源出去。
王剑表示,未来开源委员会除了对大家主动提交的项目做审批,也会增加选拔的动作。开源委员会已经引入公司内部不同技术领域的专家和团队 Leader,大家需要主动去思考各自领域有哪些工作是可以开源出去并且真正对社会有价值的,选出来之后再拿到开源委员会一起讨论,看到底能不能开源、如何做好开源。
比如数据相关的技术能力一直是字节的强项,据透露,后续字节计划推出一些数据平台方向的精品开源项目,目前相关工作还在梳理中。未来字节开源委员会这一全新组织将会为字节、甚至是整个开源界带来什么样的新变化,值得期待。
每一位开源参与者、每一个开源项目都可以成为舞台上的主角。 新的一波开源浪潮正在席卷中国,【开源聚光灯】(https://www.infoq.cn/theme/opensource)是 InfoQ 重点打造的开源主题栏目,旨在通过新闻、系列访谈、用户调查、迷你书、视频等形式深入观察开源运动,围绕开源的价值和开源开发模式,与投身开源的每一个个体共同探讨开源发展现状,照亮每一个开源舞台上的参与者。