写点什么

独家专访字节跳动开源委员会:定位“资源中台”,不会为开源设立强 KPI

  • 2022-05-19
  • 本文字数:4242 字

    阅读完需:约 14 分钟

独家专访字节跳动开源委员会:定位“资源中台”,不会为开源设立强KPI

近日,字节跳动发布一封内部邮件,官宣开源委员会正式成立,这意味着开源战略在字节跳动的重要程度进一步提升,同时,字节跳动开源将从原来由工程师自发驱动逐步走向有组织的“正规军”。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,大家需要主动去思考各自领域有哪些工作是可以开源出去并且真正对社会有价值的,选出来之后再拿到开源委员会一起讨论,看到底能不能开源、如何做好开源。

 

比如数据相关的技术能力一直是字节的强项,据透露,后续字节计划推出一些数据平台方向的精品开源项目,目前相关工作还在梳理中。未来字节开源委员会这一全新组织将会为字节、甚至是整个开源界带来什么样的新变化,值得期待。


 

每一位开源参与者、每一个开源项目都可以成为舞台上的主角。

 

新的一波开源浪潮正在席卷中国,【开源聚光灯】是 InfoQ 重点打造的开源主题栏目,旨在通过新闻、系列访谈、用户调查、迷你书、视频等形式深入观察开源运动,围绕开源的价值和开源开发模式,与投身开源的每一个个体共同探讨开源发展现状,照亮每一个开源舞台上的参与者。

 

如果你有开源故事或对开源的深刻观点想要分享、或开源项目想要寻求报道,欢迎联系微信 caifangfang842852(请注明姓名和来由)。

2022-05-19 13:303303
用户头像
蔡芳芳 InfoQ主编

发布了 804 篇内容, 共 586.9 次阅读, 收获喜欢 2804 次。

关注

评论

发布
暂无评论
发现更多内容

架构训练营模块一作业

Geek_3d7c4d

架构训练营

Office Mac升级提醒如何去掉?关闭Microsoft AutoUpdate弹框提示

Rose

许可证 Office 2019中文版 Office Mac office更新 office2021下载

推开“任意门”,华为全屋智能正在实现一代科幻迷的童年梦想

脑极体

人工智能 全屋智能

责任心与执行力

Jadedev

职业素养 团队文化 人格

在啥样的公司工作没意义

Jadedev

职场 职场经验 职场发展

云原生文件存储 CFS 线性扩展到千亿级文件数,百度沧海·存储论文被 EuroSys 2023 录用

Baidu AICLOUD

文件存储 元数据 posix

Mac 触控增强神器:BetterTouchTool如何使用?

Rose

苹果软件下载 BetterTouchTool破解 BetterTouchTool教程 Mac 触控增强神器

YApi自动生成接口文档

Liam

Postman 接口文档 API YAPI 文档生成

对象存储——Minio初探

程序员架构进阶

对象存储 Minio 5月日更 5月月更

清晰的定位对团队成功的影响

Jadedev

团队管理

Go常用设计模式(中)

闫同学

三周年连更

macOS硬盘如何格式转换?用Tuxera NTFS就够了!

Rose

ntfs FAT32

软件测试 | Django开发环境

测吧(北京)科技有限公司

测试

Shell的参数传递

芯动大师

Shell 三周年连更 shell参数传递

团队管理的五个关键词

Jadedev

团队管理

容量成本性能全都要有, Redis 容量版 PegaDB 设计与实践

Baidu AICLOUD

Focus Matrix for Mac(智能任务管理器)

Rose

mac软件下载 Focus Matrix 任务管理器

苹果Mac最佳卸载程序和清理助手:App Cleaner & Uninstaller

Rose

mac系统清理优化软件 苹果系统清理 App Cleaner

ebpf-linux 安全“双刃剑”

统信软件

Linux Kenel

Pratt Parsing - 自顶向下的算符优先级

乌龟哥哥

三周年连更

一套前后台全部开源的H5商城送给大家

越长大越悲伤

开源 java‘

2023-05-06:X轴上有一些机器人和工厂。给你一个整数数组robot,其中robot[i]是第i个机器人的位置 再给你一个二维整数数组factory,其中 factory[j] = [posit

福大大架构师每日一题

golang rust 福大大

蚂蚁安全科技 Nydus 与 Dragonfly 镜像加速实践 | 龙蜥技术

OpenAnolis小助手

开源 dragonfly 操作系统 龙蜥技术 镜像加速

科大讯飞发布讯飞星火认知大模型,深度赋能教育、办公、汽车、数字员工领域

Xue Liang

大数据 大模型时代 AIGC

在这样的公司工作没意义

Jadedev

职场 职场经验 职场发展

云原生应用使用的云服务组件介绍

穿过生命散发芬芳

三周年连更 云服务组件

Django笔记二十二之多数据库操作

Hunter熊

Python django database

软件测试 | 程序报错不要慌

测吧(北京)科技有限公司

测试

基于 EKS Fargate 搭建微服务性能分析系统

亚马逊云科技 (Amazon Web Services)

Python

OpenHarmony设备开发从零到一

鸿蒙之旅

OpenHarmony 三周年连更

MobPush 厂商通道SDK集成指南

MobTech袤博科技

独家专访字节跳动开源委员会:定位“资源中台”,不会为开源设立强KPI_文化 & 方法_蔡芳芳_InfoQ精选文章