声明:本报告来源自开源社,已获 开源社授权转载,本文受限于篇幅摘选了部分片段,完整报告请下载PDF研读。
前言
也许多年以后,我们回看 2020 年,会将其称之为:世界剧变之始。很多朋友在去年,甚至 “每一天都在亲历历史,每一天都是活久见!” 新冠疫情与中美贸易战,在同一年加剧。而因为疫情和贸易战,世界正在加速发生变化。
在这样的历史大背景下,我们在开源界,也发现了以下三个趋势:
1. 开源大发展以及由实向虚进发的趋势
从各种数据,以及我们自己的感觉都能发现:全球开源都出现一个大发展的趋势。GitHub 的活跃代码仓库与活跃用户数在高速增长(35.3% / 21.2%);Gitee 的代码仓库与用户数在以更加惊人的速度增长(192% / 162%)。
一方面,是开源这么多年一直持续的上升势头。而另一方面,则是我们的一个猜测:疫情以来,越来越多的人开始远程办公,事实上促进了更多的人有机会 “斜杠化”,也就是在一台电脑面前方便地切换多种身份,以异步的方式处理多种事务,从而增加了开发者参与开源的时间和机会。
当然,同样由于远程办公,虚拟世界在人类生活中的占比,变得更大了。这样是否更好,还会引发哪些问题?作为站在隧道口的人类,其实是猜不透的。
2. 中国开源崛起以及开源世界分裂的趋势
随着越来越多中国开源项目的影响力不断增加、木兰协议的推出、开放原子基金会的成立,Gitee 的超高速增长,CODE China 的新发布,我们已经可以确信,2020 年是中国开源的崛起之年。接下来阅读报告的朋友们,应该会看到很多确切的证据。
但是,另一个值得注意的现象,也可以从下面的数据里看出来。在 GitHub 上最活跃的中国开源项目,与 Gitee 上最活跃的开源项目之间,完全没有重叠。
随着 Gitee 的继续高速发展,可以大胆预测,今后会有越来越多的,高质量的中国开源项目,选择在 Gitee 上开源。曾经有一位朋友提到的 “One World, Two Systems”,将会逐渐变成现实。
如果中国的开源,以一种与世界隔离的方式 “崛起”,这并不是我们希望看到的未来。
3. 开源向善以及我们尚未做好准备
疫情爆发以来,众多的开源人奉献自己的时间、精力、技术和智慧,投入到一个一个的抗疫相关的开源项目之中,也因此诞生了诸多面向医学、防疫、公益、救援的开源组织和开源项目。其中 wuhan2020 就是典型的代表。
因此,在 2020 年的中国开源年会筹办期间,我们毫不犹豫的选择了 “开源向善(Open Source for Good)” 作为年会的主题,也获得了众多讲师、参会者与赞助厂商的一致认同。
但是,接下来应该怎么发展呢?为了抗击疫情而凝聚起来的人,创造的项目,积累的经验,总结的教训,应该如何 “整理、封装、模块化”,并为了今后的各种意外,做好准备呢?这些都是值得长期思考并改进的领域。
作为一份力图完整、客观、全面、丰富的报告,值得探讨的问题当然不止上述这些,也欢迎朋友们阅读下面的报告,并随时与我们交流。
—— 庄表伟,开源社理事长
2021 年 1 月 16 日
特邀点评专家
- 吴晟,Apache 软件基金会 Member,Apache Local Community 联合创始人
- 黄东旭,PingCAP 联合创始人兼 CTO
- 马艳军,百度自然语言处理部高级研究员
- 蒋涛,CSDN 创始人 & 董事长,极客帮创投创始合伙人
- 高阳,SegmentFault 思否创始人 & CEO
- 红薯,开源中国创始人 & CTO
- 庄表伟,开源社理事长
- 陈阳,开源社副理事长
- 王伟,开源社执行长
- 刘天栋,开源社理事
一、问卷篇
1、报告背景
2016 年初,开源社发布了《2015 年中国开源社区参会调查报告》,随后的几年中,持续发布了开发者调查报告,旨在从多种维度呈现国内的开源发展情况。今年我们再次启程,结合数据分析手段和调查报告等多种形式,绘制一份 2020 年中国开源世界的地图。
这份问卷是每年中国开源年报的重要一环,不基于调研的分析报告不过是纸上谈兵。在往年的基础上,我们参考了其他现存的主流开发者问卷内容,并加入了一些新的视角。基于 2020 年 COVID-19 这个不容忽视的大背景,这份调查问卷进一步将视角发散到开源世界的线上协作,以及开源能够为世界带来什么等主题。
通过近 60 项左右问题的统计调查与分析,我们希望能够还原出当前中国开源社区的真实现状,从而为开源的后来人提供权威的参考。
- 调查对象:覆盖开发者、社区成员、贡献者、学生、政府企业管理人员
- 调查内容:主要涵盖个人信息、工作状况、开源社区以及开发者技术
- 调查方法:以在线问卷方式搜集样本和数据,交叉对比法分析数据
- 推广方法:线上社交媒体、博客、开源社、开源中国网站
- 问题数量:59
- 问题类型:单选、多选、开放性
- 样本量:236
2、重要发现
由于疫情,今年的问卷全部通过线上的方式传播,因此收集到的样本量相比往年较少,但仍旧能够管中窥豹,观察到中国开源世界的悄然变化。通过分析 2020 年的统计数据,并对比往年数据和其它一些公开发布的统计报告,我们有如下一些重要发现:
- 开源参与者的主力依旧是 20-39 岁人群,相比去年比例仍在上升,而在开源社区的年龄分布中,20-30 岁人群占据了 64%,说明开发者的年龄仍在趋于年轻化;
- 相较于 2019 年,今年参与调研的开发者中,还未工作的人群占了绝大部分,从参与者从事领域和职位分布也可以看出,这些 “还未工作” 人群多数指向学生群体,这和当前社会普遍追求更高学历深造有关,和本次问卷传播形式有关,但是同时也能说明开源在教育领域取得了不错的进展;
- 开发者所从事的技术方向仍以前后端为主,其中后端开发占比约 31%,其次是 Web 前端、AI 以及大数据分析方向,占比分别为 10%、9%、9%,非技术人员以及其他行业的从业者占比均为 7%,说明开源已经越来越受到社会各界的关注;
- 参与开源的形式由 2019 年以代码和测试为主转变为以代码和文档为主,社区和项目正在意识到文档的重要性,更多开源贡献者投入到了文档撰写中;
- 开源活动的参与频率相较往年有所上升,这与国内愈发繁荣的开源氛围和逐渐丰富的开源活动也有关系。81% 的开发者认为开源活动对促进和推动开源社区至关重要。而对于更倾向于线上还是线下的会议,结果竟惊人地持平;
- 在 2020 年 COVID-19 这个大背景下,各行各业都不可避免受到了冲击和影响;82% 的人认为疫情对于参加开源社区的活动产生了影响,但也具有推动作用,11% 的人认为毫无影响,7% 的人认为疫情的负面影响大于正面影响;
- 在在线文档协作工具的使用上,石墨文档以黑马的形式由第三名一跃成为第一名,压倒了 wiki 和 Google Doc,国内正在涌现出一批优秀的协作工具,并越来越为大家认可;
- 2020 年 9 月 9 日,中国首个开源软件基金会「开放原子开源基金会(OpenAtom Foundation)」官方正式对外发声,大家对此抱有多重期望:推广开源的理念,开源文化教育和社区建设,建立开源生态体系,对开源项目进行早期的孵化和扶持,帮助中国开源社区进行资源的整合和优化,并接轨国际开源社区。
3、开发者群体特征
3.1 参与者普遍年轻且学历较高,男性占比八成
参与者的年龄集中在 20-39 岁,受教育程度普遍在本科及以上,其中男性占比约为 84%,女性为 16%,与去年持平。
【专家点评】
3.2 从业时间及行业领域
参与者中还未参加工作的人数最多,占比约 36%,其次则是从业时间为 3-5 年、6-10 年的参与者占比分别为 19%、15%,从业时间在 10 年以上的约 2 成。
在参与者中,有近七成参与者从事互联网开发 / 软件开发领域,其次则是教育 / 学术 / 科研领域的参与者,占比约 15%,金融银行、媒体广告娱乐等领域也在积极参与开源。
3.3 职位分布
参与者中学生和开发者占绝大多数,相比于 2019 年,学生占比大大增加,约 37%,开发者占比约 36%。
3.4 所从事的技术方向
参与者所从事的技术方向以后端开发为主,占比约 31%,其次是 Web 前端、AI 以及大数据分析方向,占比分别为 10%、9%、9%,非技术人员以及其他行业的从业者占比均为 7%,说明开源已经越来越受到社会各界的关注。
【专家点评】
4、开源工作现状
4.1 接触开源的时间
有近三成参与者接触开源的时间在 1-2 年,近八成参与者接触开源时间在一年以上。
【专家点评】
4.2 在开源中的时间投入
约有 44% 的参与者每周在开源上的时间投入不足 5 小时,每周对开源投入时间在 5-20 个小时的参与者约有 40%。
【专家点评】
4.3 开源活动
绝大多数参与者每年只会参加几次线上 / 线下的开源活动,每个月参加一到两次线上 / 线下开源活动的参与者占比约两成。线下的开源活动大多以沙龙、讲座等为主,线上的开源活动以在线会议、邮件列表讨论、PR 活动等为主。
81% 的参与者认为开源活动对促进和推动开源社区至关重要。
【专家点评】
关于开展线上还是线下的开源活动 / 会议,参与者们各抒己见,线下活动可以面对面地沟通交流,交流更有效率,氛围更好,可以有更多走出去看看,结交新朋友的机会,而线上活动则更加安全、便捷,不受时间、地域等限制,成本低廉,且会议内容可以录像,方便会后复查,当然,线下录像也是越来越普遍。
2020 年是十分特殊的一年,COVID-19 这场世界性的疫情给各行各业都带来了不同程度的冲击,82% 的参与者认为,疫情对于参加开源社区的活动产生了影响,但也具有推动作用。
【专家点评】
4.4 开源收入
可以看到,很多人参与开源并不追求物质回报,有三成参与者没有开源收入,但依然热衷于开源工作,同时,我们还可以注意到有 12% 的参与者表示企业会支付工资支持员工全职 / 部分参与开源,有 23% 的参与者表示学校科研项目或社团投入方面有在支持参与开源,可见现在企业和学校都开始逐渐关注并重视开源。
【专家点评】
4.5 远程办公
远程办公是当下非常重要的一种办公方式,在参与者中,有八成认为远程办公是重要的,并且有接近九成的参与者有过远程办公的经历。
【专家点评】
4.6 第一次接触的开源产品
有 32% 的参与者第一次接触的开源产品为互联网产品,紧随其后的便是操作系统相关的产品与开发工具,调查结果与以往基本一致,说明互联网产品和操作系统相关产品仍然是大家了解和接触开源的最初窗口。
4.7 最希望能够开源的产品
相比于 2019 年,开发工具在今年成为大家最希望能够开源的产品类型第一名,紧接着的是操作系统,数据库产品与中间件产品也是很多人希望能够开源的产品类型。
4.8 企业对开源的贡献
在参与者眼中,GitHub 对于开源软件的贡献最大,其次是 Google,而在国内企业中,Alibaba、Huawei 和 Baidu 分别占据前三名。
4.9 机器人流程自动化
对于开源项目是否继承了 RPA,即机器人流程自动化工具,有四成参与者表示一部分项目集成了 RPA,16% 的参与者表示几乎所有项目都有集成 RPA,同时也有 24% 的参与者表示从来没有在开源项目中集成过 RPA。
5、开源社区参与现状
5.1 开源最吸引你的因素
开放透明的代码和知识共享,以及开源的精神理念成为开源最吸引参与者的因素,而软件的购买成本却并不是主要的因素。
5.2 最喜欢的开源产品是什么
Linux 以巨大优势,成为参与者最喜爱的开源产品,MySQL 紧随其后,Apache 和容器界的黑马 Docker 分别位列第三、第四。
5.3 具体参与的社区工作
绝大多数参与者在社区都参与代码或文档撰写的工作,测试、本地化以及活动组织也是很多人在社区会参与的工作。
5.4 最看好的开源产品
开源产品的前景展望中,互联网产品以 34% 的比例成为参与者最看好的开源产品发展方向。人工智能和开发工具异军突起,成为现在开源产品中的风口和热点。
5.5 开源社区的交流方式
在社区的交流方式中,微信和邮件列表目前最为普遍,QQ 也是国内重要的即时交流工具。新锐的交流工具比例上升:Slack 和 Zoom 也是值得关注的现象。
【专家点评】
5.6 社区与代码的关系
有近九成的参与者认为在开源社区中,社区的价值大于或等同于代码,因为围绕代码而生的社区,会让代码变得更加优秀。
【专家点评】
5.7 开源社区年龄分布
开源社区中,20-30 岁的贡献者是主要组成部分,占比超过六成。
【专家点评】
5.8 开源软件安全
有近七成的参与者表示不会有不安全感,但同时也仍有 25% 的参与者表示会有此类担忧,开源软件的安全问题仍然值得我们关注。
【专家点评】
5.9 中国成立开源基金会的作用
参与者们一致认为中国成立开源基金会是非常有意义的,可以推广开源的理念,开源文化教育,社区建设,建立开源生态体系,利于开源项目早起的孵化和扶持,帮助中国开源社区进行资源的整合和优化,也有助于接轨国际开源社区。
【专家点评】
6、开发者技术现状
6.1 开发语言
开发语言呈现多超多强的状态,前三甲分别为 Java、JavaScript 和 Python,排名与去年基本保持一致。
【专家点评】
6.2 在线文档协作编辑工具
在线文档编辑工具中,石墨文档是目前中国开源社区经常使用的工具,wiki 也依然是非常多参与者使用的协作工具。
6.3 编辑器
VS Code 今年仍然是最受欢迎的编辑器,紧随其后的是 vim 以及 notepad++。
6.4 版本控制工具
毫无疑问的是,Git 一枝独秀,具有绝对性优势。SVN、TFS、CVS 目前仍有不少参与者在使用。
6.5 数据库
数据库使用情况中,不出意外地,MySQL 以绝对优势遥遥领先,MongoDB 与 PostgreSQL 跟随其后。
6.6 操作系统
操作系统的使用中,Windows、Linux、MacOS X 三分天下。
6.6 会议工具
腾讯会议是目前参与者们使用最多的会议工具,其次则是 Zoom、钉钉。
6.7 聊天运维工具
目前,绝大多数的参与者都没有使用过聊天运维工具来进行项目的自动化管理,而对于使用过该类工具的参与者来说,Hubot 是他们使用最多的 ChatOps 工具。
6.8 开源平台
如果要开源自己的项目,87% 参与者都表示将会在 GitHub 来开源自己的项目,其次则是 Gitee 和 Gitlab。
【专家点评】
6.9 技术论坛
知乎和 CSDN 目前是最受参与者们青睐的两个技术论坛,其次则是 StackOverflow,开源中国与博客园也受到很多参与者的喜爱。
7、总结 & 致谢
本次问卷在传播和收集过程中多有坎坷,最终呈现的不过是开源世界的小小一隅,但意义重大。见微知著,不难察觉到中国的开源结构已经在发生变化,开源的星星之火正在燎原,势不可当。希望这份报告能够抛砖引玉,吸引更多的社区和开发者加入。
该报告的问卷问题, 报告文档均发布在代码托管平台,开源社官方网站和合作伙伴网站平台,基于 Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 许可证协议分享。对于问卷的问题设计和报告内容有任何建议和想法,欢迎您在代码托管平台上提交 Patch, 对报告进行补充和贡献。 您的一小步,整个中国开源社区的一大步。
此报告问卷篇作出贡献的开源社中国开源年度报告小组成员:夏小雅,宁泽欣;社区合作伙伴:X-lab,Gitee,微软 Reactor。感谢特邀的开源领域的专家,更要特别感谢积极参与我们调研的每一位朋友。
二、GitHub 数据篇
1、概述
1.1 背景
本部分内容采用 GitHub 全域事件日志进行统计分析(2020 年共计 8.74 亿条),相较 2019 年的 5.46 亿条增长约 60%。并对分析出的部分项目进行人工标注,挑选出中国的个人开发者和企业组织,同时构建了科学合理的数学模型进行分析。
在开发者活跃度与项目活跃度的定义下,本次统计得到 2020 年总活跃项目数量约 5,373 万个,相较 2019 年的约 3,972 万增长约 35.3%;2020 年 GitHub 总开发者数为 5,600 多万,总活跃开发者数量约 1,446 万,相较 2019 年的约 1,19 万增加了约 21.2%。
1.2 指标解释
指标名称 | 含义 | language | 项目开发使用的主要语言 | activity | 项目活跃度(通过加权计算得到) | developer_count | 在活跃度定义下参与该项目的开发者人数 | issue_comment | 项目所有 Issue 和 PR 在 2020 年获得的评论总数 | open_issue | 项目 2020 年新增的 issue 数量 | open_pull | 项目 2020 年新增的 PR(pull request)数量 | pull_review_comment | 项目 2020 年所有 PR 下的 Review 评论数 | merge_pull | 项目 2020 年被合并的 PR 数量 | pull_commits | 项目通过 PR 合入的 commit 数量 | pull_additions | 项目通过 PR 合入增加的代码行数 | pull_deletions | 项目通过 PR 合入删除的代码行数 |
---|
2、主要内容与发现
2.1 世界开源 Top10 项目
活跃度最高的项目是来自谷歌的前端跨平台开发框架 flutter/flutter,此外,源于谷歌的深度学习框架 tensorflow/tensorflow,容器编排系统 kubernetes/kubernetes 也分别位于第 5 名和第 6 名,这说明了谷歌在开源上的努力和影响力获得了业内的认可。
微软的跨平台代码编辑器 microsoft/vscode 和微软使用开源的方式来建设其 Azure 云平台的项目 MicrosoftDocs/azure-docs 分别位于第二名和第三名,表明微软在开源上的努力获得了程序员的认可。
microsoft/vscode 和 DefinitelyTyped/DefinitelyTyped 均使用 TypeScript 作为主要的编程语言,这可能与 TypeScript 的受欢迎程度急剧攀升有关。
2.2 中国开源 Top50 项目
Top50 列表中,从项目活跃度来看,第 1 名与第 50 名的项目活跃度相差超过 10 倍,说明中国开源项目之间的差距较大。
从这个列表中,我们发现,阿里在开源领域中的成绩显著。Top10 项目中上榜的项目有 4 个,除了蚂蚁金服采用 React 封装的一套组件库 ant-design/ant-design,基于 Ant Design 框架搭建的中后台管理控制台的脚手架 ant-design/ant-design-pro 和致力于配置和管理微服务的特性集 alibaba/nacos 外,饿了么(已被阿里收购)的开源项目 ElmFE/element 作为前端组件,表现也十分突出。
PingCAP 在开源领域的表现也是非常地亮眼。Top50 项目中上榜的项目有 6 个,包括由其自主设计、研发的开源分布式关系型数据库 pingcap/tidb,分布式事务型的键值数据库 tikv/tikv,文档项目 pingcap/docs-cn、pingcap/docs 等,表明 PingCAP 很重视项目文档的建设。值得关注的项目是 pingcap/tidb,该项目的 issue_comment,open_issue,pull_review_comment,merge_pull 等属性是 50 个项目中最高的,达到惊人的 52,871 和 10,981,相对比之下,issue_comment 属性下排名第二的 ant-design/ant-design 只有它的 61.5% 左右。而其 480 的开发者参与数量,与其他前端项目相较甚远,但却有着如此高的活跃度,也可以看出其社区的活跃程度。
百度在人工智能领域的表现非常不错,其深度学习平台 PaddlePaddle 占据了 6 个项目,分别是核心框架 Paddle 以及相关工具库、扩展版本和模型库 Models;此外开放自动驾驶平台 ApolloAuto/apollo 也榜上有名。
中国的 Top50 项目列表中,包括阿里的 Ant-Design 组件库,京东基于 React 前端框架的开发框架 taro,由饿了么(已被阿里收购)前端团队开源的 Vue UI 组件库 Element 等等,这说明在国内,前端群体在开源社区更为活跃;另外前端代码一般也不太涉密,因此公司在心态上更开放一些。不过这其中也有一点需要引起注意,上榜的前端项目组件库居多,但是缺少核心项目。
属于人工智能领域的项目 PaddlePaddle/Paddle、apache/incubator-tvm、Tencent/ncnn、alibaba/MNN 均在中国 Top50 项目列表中占据一席之地,这说明了国内各大公司都在大力发展人工智能领域。
2.3 中国开源企业情况分析
各大开源项目的背后,基本都有科技公司的支持,我们计算出了科技公司所维护的开源项目在 2020 年的活跃情况,结果如下表所示:
在国内企业的开源数据中,我们看到阿里巴巴在除 pull_review_comment 指标外之外各项指标得分均排名第一,单项得分上,Repo_count 和 Developer_count 是其他公司之和,Open_issue 的数量也比其他公司高出了一个数量级。
AI 是百度开源最鲜明的竞争力,比如国内开源开放的深度学习平台 PaddlePaddle 和自动驾驶平台 Apollo。腾讯 Tencent 在 GitHub 上发布的 192 个 repo,项目范围主要聚集在云原生、大数据、AI、移动开发和 Web 开发五个技术领域。华为在开源领域的投入有目共睹,但从 GitHub 上的数据未能充分展现其实力,中美宏观贸易战的影响在此略见一斑。WeBank 微众银行作为新兴的互联网金融公司,已开源 27 个项目,44 个 repo,覆盖人工智能、区块链、云计算和大数据等领域,也是公司早期就建立开源办公室的金融公司。滴滴开源势头很猛,成立开源委员会,不仅积极参与业界开源项目,还在 GitHub 上积极开放出 38 个 repo。Deepin 的桌面环境 DDE 受到国内外用户喜爱,软件生态除了自研还在其应用商店中收录了上千款桌面应用,作为国内民间出品的 Linux 操作系统,还是可圈可点的。
PingCAP 在 2020 年下半年宣布完成 2.7 亿美元的 D 轮融资,创造了全球数据库历史新的里程碑,同样,PingCAP 今天在开源方面的表现也是非常亮眼,已经超越百度跃居排行榜第二位。其中,pull_review_comment 的数量更是超过了阿里,但开发者的数量却不足阿里的 1/10,可见 PingCAP 的开源社区非常的活跃。
有赞的排名上升得非常快,这可能得益于其开源项目 youzan/vant 的优秀表现,该项目是轻量级的移动 UI 组件。
值得注意的是 Bilibili、douban 和掘金等以用户生产内容(User Generate Content)为主的新兴社交媒体企业也在积极使用开源技术。
可以看出,中国开源领军企业近年来均在不断加大开源社区生态的投入和建设,互联网、操作系统、社交网站、金融、云计算和电商等各个领域的企业都积极参与,呈现出百花齐放的开源盛况。
2.4 Apache 软件基金会之源自中国的开源项目
Apache 软件基金会(ASF)成⽴于 1999 年,基金会致力于帮助独立个体和组织去理解开源是如何在一个激烈竞争的市场中发挥优势的。其重点不是生产软件,而是指导生产软件的社区。Apache 之道对于开源社区的持久发展具有显著的优势:我们维护的一切都是开源的,所有的用户都可以从中受益。Apache 目前有 14 个源于中国的顶级项目,还有 7 个孵化器项目正在努力成为顶级项目。
2020 年,Apache 软件基金会源自中国地区活跃的开源项目共有 21 个,其中,有 9 个项目入围中国开源项目排行榜 Top50。
Apache 软件基金会下属的中国开源项目中,最活跃的项目是 apache/shardingsphere,Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款产品组成,该项目已于 2020 年 4 月 16 日成为 Apache 基金会的顶级项目。
apache/incubator-echarts 和 apache/skywalking 的表现也非常活跃,分别居中国开源排行榜第 10、12 名。Apache ECharts 是一个免费的,功能强大的图表和可视化库;SkyWalking 是一个观测平台和 APM 工具,它可以选择性的与 Service Mesh 协同工作,为微服务、云原生和基于容器的应用提供自动的指标,目前为阿里、华为、腾讯等国内大厂提供监测服务。ECharts 和 SkyWalking 同样也是 Apach 软件基金会的顶级项目。
从这些数据,我们看到,Apache 作为世界上最活跃的基金会之一,对中国开源社区的贡献是巨大的。一方面,Apache 作为顶级基金会,其优秀的开源项目和和谐的社区氛围吸引着越来越多的中国开源项目加入其中;另一方面,越来越多中国开源项目的参与也为 Apache 社区中加入了越来越多的中国色彩,期待中国开源项目早日冲入世界开源项目 Top10!
【专家点评】
2.5 中国顶级开源项目访
马艳军(百度深度学习技术平台部高级总监,PaddlePaddle/Paddle)
很高兴看到 PaddlePaddle(飞桨)在 2020 年延续了 2019 年在中国活跃项目排行榜上高度活跃。
深度学习框架是人工智能开源生态的核心,技术复杂度非常高,同时需要结合应用用慢工持续打磨。飞桨作为我国最早开源、功能最为完备的深度学习平台,一直秉持开放透明的理念进行开源开发。飞桨结合 AI 产业发展需要,在框架整体设计以及全流程开发工具方面保持了前瞻性整体设计,保持对工程质量的极致追求,并通过社区机制进行质量的有效保障,凭借项目质量在广大 AI 开发者中形成了良好的口碑。
飞桨一直非常关注开发者对社区的贡献和认同感。飞桨目前除了已经有 5,000 多位开源开发者通过 PR 或者提 issue 的方式做贡献之外,还鼓励更多开发者通过攻略、社群交流等其他方式参与贡献。所有开发者在使用过程中的问题都会得到社区的快速响应,也都纳入到新版本的发布中来,通过这样持续闭环的打磨,项目质量得到保障和持续提升,更好地满足广大 AI 开发者的使用需求,也让广大开发者形成了更强的社区认同感。
深度学习框架在 AI 技术栈中处于承上启下的位置,向下对接芯片,向上承接应用,与芯片广泛适配、深度融合优化至关重要。因此飞桨跟硬件厂商建立了紧密合作关系,很多芯片厂商直接在飞桨社区贡献代码,为飞桨生态发展做了大量贡献。飞桨也持续与各大开源组织、AI 社区深度合作,并得到启智(OpenI)社区的支持成为其中重要一员。通过 PaddlePaddle Developer Experts(PPDE)、SIG 等组织形式,推动与开发者的深入交流互动,与社区开发者共同成长。
吴晟 (Apache/skywalking)
Apache SkyWalking 今年呈现爆发式的发展,语言探针覆盖了所有主流编程语言,Java、.NetCore、Golang、php、NodeJS、Python、C++、LUA for Nginx 全面铺开。Star 数量、贡献者数量、PR 数量等常见社区活跃度指标,都相比 2019 年翻了一倍。
SkyWalking 用户厂家覆盖国内几乎所有的大厂,正在形成自己的标准体系。各大云厂商,阿里云和腾讯云的云 APM 服务都全面支持 SkyWalking 传输协议。同时,SkyWalking 也完成了和 OpenTelemetry、Prometheus、OpenCensus 等主要监控生态的无缝对接。
今年的 SkyWalking 社区和暑期 2020 活动的合作十分成功,孵化了 2 位在线研究生成为正式 Committer。活动中这两位学生的表现,展现了学生团体在顶级项目中的潜力。这是相对于 2019 年,全新的面貌。也展现了系统性的学生孵化计划的价值和意义。希望在今后,我们能看到包括已经发布的暑期 2021 之外,更多更好的学生定向孵化和合作计划。
在全球化的过程中,在 Apache 厂商中立的框架下,SkyWalking 项目在跨地域、跨时区异步多元化的协作模式中顺利前行。SkyWalking 项目已经成为多家国内外公司(亚洲、欧洲、北美)的商业化项目的核心组件,更多的职业开发者加入了项目。为项目生态带来了巨大的活性和迭代速度。SkyWalking 在按照自己的节奏,和国内外的商业化厂商、个人开发者、公司二次开发团队一起,迅速地成熟和壮大。
黄东旭(PingCAP CTO,pingcap/tidb,tikv/tikv)
TiDB 今年社区运营的重点可以分为:用户、开发者两块。从业务角度来看,可以分为项目打磨和完善,人才的培养和生态建设,用户场景的挖掘和业务成功推进。所以,运营一个好的开源社区,最重要的是以人为中心,与他们共同成长。
对于 TiDB 社区来说,过去的一年发展还算迅速,去年 TiDB 4.0 版本正式推出了 TiFlash 列式引擎。在 Real-time HTAP 的道路上迈出了坚实的一步。从我们的数据上来看,接近 1/3 的 4.0 集群用上了 TiFlash。说明直接在 TP 的数据上作实时的数据洞察是普遍的需求。
其中可以感受到国内的开源氛围及开发者的活跃度也在逐步提升,我们从 2019 年底的 500+ contributor 到 2020 年底数字已经达到了 1,200+,大家对于开源项目的参与度与理解也越来越深,越来越多的开发者在 TiDB 社区汇聚,通过 TiDB 连接行业上下游,共享创新成果。从 TiDB 的运营角度来看,开源社区的繁荣首先有一些基本的原则:透明、公开、分享等等,举个例子:我们的所有讨论的文档、发展方向、投票、选举这些都是公开的、透明的,所有社区的贡献者都可以参与进来;其次,我们也制定了一些基础的社区治理的规则、架构,在基础设施方面也做了一些自动化的 Bot 服务,帮助更多的开发者在社区获得更好的体验和感受;最后再通过一些公开透明的激励和反馈,吸引更多的开发者能够积极地参与进来。
3、案例分析——ASF
3.1 简介
Apache 软件基金会(ASF)成⽴于 1999 年,是⼀个依据 501(c)(3) 在美国成⽴的非营利性公共慈善组织。基金会致力于:
- 提供基础设施:为开源项目⽬提供硬件,沟通交流以及项目⽬治理等方面的基础设施;
- 提供用于捐赠的法律实体:建立一个独立的法人实体,公司和个人可以向其捐赠资源,并确保这些资源将用于公共利益;
- 提供法律保护框架:为个人志愿者提供法律保护框架,避免针对基金会项目的法律诉讼;
- 提供 Apache 商标保护:保护其软件产品的 “Apache” 商标,防止被其他组织滥用。
Apache 软件基金会的使命是为公共利益而提供软件。基金会帮助独立个体和组织去理解开源是如何在一个激烈竞争的市场中发挥优势的。其重点不是生产软件,而是指导生产软件的社区。被称为 “Apache 之道” 的精英管理流程,超过 800 位个人会员和 7,000 位提交者成功合作开发了免费的企业级软件,使全球数百万用户受益。Apache 是 所有人的 Apache。
3.2 阿帕奇之道
“Apache 之道” 是 ASF 制定的一套行为或惯例,初 步通过专注于稳定的治理并鼓励新的贡献者来促进长期成功的项目。所有的 Apache 项目都必须遵循以下基本原则:
- 一个健康、多样、包容的社区,可以促进项目不断增长,可持续发展。社区大于代码:ASF 一直坚信好的软件是由强大的社区重建出来的。
- 挣得权威:人人都有机会参与,他们的影响力是基于公开获得的功绩——即他们为社区做出的贡献。功绩属于个人,不会过期,不受就业状况或雇主的影响,同时不可转让。
- ASF 的扁平化结构:在 Apache 社区里大家相互尊重,角色平等,每个人的投票具有同等的分量,贡献者也是在志愿者的基础上与其他人享受一样的权利(即使某个组织为他们在 Apache 代码上的工作提供报酬)。
- 大多数 Apache 邮件列表都是存档的,并且可以公开访问,以确保自动协作,这些是一个全球分布的社区所必须的条件。
- 由于无法在任何时候都达成完全共识,此时就可能需要传统而具有约束力的投票或其他协调方式,以帮助消除决策障碍。
- 负责任的监督:ASF 治理模式以信任和授权监督为基础,让项目自治并直接向董事会提供报告。Apache 提交者们互相帮助:相互评估提交,采用强制性安全措施,确保许可合规性,以及保护 Apache 品牌和整个社区免于受到伤害。
3.3 数据分析
我们计算了所有源自中国的共计 21 个 ASF 项目仓库的活动情况,数据如下。
我们统计了所有源自中国的 ASF 项目仓库的工作时间情况,并为每个仓库绘制了工作时间分布图。在此,我们选择三个工作时间分布有明显特征的项目进行简单分析。
- apache/carbondata,Apache CarbonData 是一种新的融合存储解决方案,利用先进的列式存储、索引、压缩和编码技术提高计算效率,从而加快查询速度,其查询速度比 PetaBytes 数据快一个数量级。
- apache/incubator-teaclave,一个开源的通用安全计算平台,使对隐私敏感的数据的计算安全且简单。
- apache/hadoop-ozone,Ozone 是适用于 Hadoop 的可扩展、冗余和分布式对象存储。
在上述三个项目中,carbondata 明显不在 UTC+8 时区,而在 UTC+4、5 时区,这是因为其主要维护者 Ravindra Pesala 是印度人,与时区匹配;teaclave 的时间分布则完全是美国时间,中国白天几乎都是静默期,虽然是百度捐献的项目,但其维护者 Mingshen Sun 其实位于美国西海岸,而非国内;相比而言,hadoop-ozone 明显是全球化做的最好的一个项目。
4、案例分析 —— CNCF
4.1 简介
CNCF 全称为云原生计算基金会(Cloud Native Computing Foundation),是 Linux 基金会(Linux Foundation)的一部分。CNCF 托管着全球技术基础架构的关键组件,汇集了全球顶级开发商、最终用户和供应商。
4.2 提案流程
CNCF 对项目提案流程制定了治理政策,提案流程适用于现有要加入 CNCF 的项目和在 CNCF 内形成的新项目。
- 沙箱(sandbox):所有的例外情况(包括拒绝)均由 TOC(全称为 Technical Oversight Committee,即技术监督委员会的缩写,主要向云原生社区提供技术领导)来处理。项目被拒绝时,可能是 “目前不合适” 这种情况,并且可以鼓励该项目在解决问题后重新申请。整个过程所需的时间并不固定。目前该阶段有 Artifact Hub、Backstage 等 44 个项目。
- 孵化(incubating):同沙箱流程,所有的例外情况(包括拒绝)均由 TOC 来处理。目前该阶段的项目有 Argo、Buildpacks、CloudEvents、CNI、Contour、Cortex、CRI-O、Dragonfly、Falco、gRPC、KubeEdge、Linkerd、NATS、Notary、Open Policy Agent、OpenTracing、Operator Framework、SPIFFE、SPIRE、Thanos 等。
- 毕业(graduated):包括提交毕业提案模板、TOC 成员开始为期两周的在 TOC 邮件列表公开评论和 TOC 投票三个步骤。目前该阶段的项目有 containerd、CoreDNS、Envoy、etcd、Fluentd、Harbor、Helm、Jaeger、Kubernetes、Prometheus、Rook、TiKV、TUF、Vitess 等。
CNCF 托管已毕业,正在孵化和沙盒中的项目。尽管 CNCF 为所有项目提供了一套共享服务,但并未为沙盒项目提供实质性的营销服务,因为它们是属于早期阶段的项目,需要轻型中立,项目才能自然生长。与孵化和毕业的项目同行相比,沙盒项目的项目服务优先级较低。
4.3 数据分析
我们计算了所有 CNCF 已毕业和正在孵化的项目仓库的活动情况,数据如下。
我们统计了 CNCF 项目仓库的工作时间情况,为每个仓库绘制而成的图表如下。
- kubernetes/kubernetes,Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。
- thanos-io/thanos,Thanos 是一组组件,可以组成具有长期存储功能的高可用性 Prometheus 设置。其主要目标是简化操作,保留 Prometheus 的可靠性。
- kubeedge/kubeedge
上述三个项目的开发者工作时间分布图,都具有明显的时区聚集性。其中,kubernetes 的开发者大部分位于 UTC-5 时区附近,即美洲地区,而 thanos 的开发者中则大部分是欧洲的开发者,kubeedge 的开发者则以亚太地区开发者为主。在 kubeedgede 的工作时间分布中,我们可以发现,开发者们有午休的习惯,在 UTC 时间 4-5 点,当地时间 12-13 点左右,开发者的工作量锐减。
5、案例分析 —— LF AI & Data
5.1 简介
LF AI & Data 是 Linux Foundation 下的一个综合型基金会,支持人工智能、机器学习、深度学习和数据方面的开源创新。创建 LF AI & Data 的目的是支持开源人工智能、机器学习、深度学习和数据,并创建一个可持续的开源人工智能生态系统,使得能够使用开源技术轻松地创建人工智能和数据产品与服务。它除了一些扶持性服务,还包括成员资格和资金管理、生态系统发展、法律支持、公关 / 营销 / 沟通、活动支持和合规扫描,以及为多样化和蓬勃发展的社区中的开放发展项目提供支持。
目前,已经从 LF AI & Data 基金会毕业的项目有 Acumos、Angel-ML、Egeria、Horovod、ONNX。
正在孵化的项目有 Adlik、Adversarial Robustness Toolkit、AI Explainability 360 Toolkit、AI Fairness 360 Toolkit、Amundsen、DataPractices、DELTA、Elastic Deep Learning (EDL)、Feast、ForestFlow、JanusGraph、Ludwig、Marquez、Milvus、NNStreamer、OpenDS4All、Pyro、SOAJS、sparklyr 等。
5.2 提案流程
要想进入 LF AI & Data 基金会,需要一个提案。对于试图进入 LF AI & Data 基金会的现有项目,以及将在 LF AI & Data 基金会内形成的新项目,项目提案过程都是相同的。
项目必须通过 GitHub 提出,并向 info@lfaidata.foundation 发送主题为 “PROPOSAL [项目名称]” 的电子邮件来通知 LF AI & Data 成员。
提交项目提案书后,批准过程分为四个步骤。
- 第 1 步:
- 项目根据提供的模板准备提案,并通过 GitHub 提交,并附上一封简短的电子邮件至 info@lfai.foundation,主题是 “PROPOSAL [项目名称]”。
- 由公司代表的项目必须签署并提交商标和帐户转让协议的副本;该协议的目标是将项目商标的所有权和管理权转移到 Linux 基金会的项目帐户中。
- LF AI & Data 成员会通知项目,提案是否准备好提交给 TAC,并将与项目一起完成提案提交、审查和投票。
- 第 2 步:
- 该项目将在每两周一次的会议上通过电话会议向 TAC 介绍情况。
- 演讲者将有 45 分钟的时间发言,阐述相关信息。
- 演示文稿文件必须在预定的电话会议召开前至少 3 个工作日通过 info@lfaidata.foundation 发送到 LF AI & Data,以确保 TAC 成员有足够的评审时间。
- TAC 将有 15 分钟的时间与项目代表讨论,然后进行投票,以确定项目的接受程度以及将在 LF AI & Data 中托管项目的阶段。
- 第 3 步:如果该项目在毕业级别获得了 TAC 的批准。
- 将提案转发给 GB 进行批准。
- 将邀请项目代表参加下一次 GB 的电话会议,进行简短的演讲(10 分钟),然后由 GB 投票以接受毕业级别的项目。
- 第 4 步:公告和加入
- 通过博客文章或新闻稿宣布 LF AI & Data 的项目托管公告
- 项目加入——在新项目获得批准后,LF AI & Data 成员将帮助该项目加入基金会,并开始在重点领域提供所需的支持。LF AI & Data 成员将为该项目提供每个活动的详细信息和时间安排。
5.3 数据分析
我们计算了所有 LF AI & Data 的项目仓库的活动情况,数据如下:
我们统计了 LF AI & Data 项目仓库的工作时间情况,为每个仓库绘制了图表。在此,我们选择 3 个项目进行分析。
- milvus-io/milvus,Milvus 为海量特征向量的近似最近邻搜索(ANNS)而设计。相比 Faiss 和 SPTAG 这样的算子库,Milvus 提供完整的向量数据更新,索引与查询框架。Milvus 利用 GPU(Nvidia)进行索引加速与查询加速,能大幅提高单机性能。
- odpi/egeria
- nnstreamer/nnstreamer,NNStreamer 是一组 Gstreamer 插件,为采用神经网络模型的 Gstreamer 开发人员和管理神经网络管道及其过滤器的神经网络开发人员提供了方便和高效的支持。
可以发现,三个项目的开发者工作时间分布情况是存在差异的。milvus-io/milvus 开发者在周一~周六都处于活跃状态,工作时间主要分布在 UTC+8 时区,表明该项目的开发者以亚洲开发者居多;odpi/egeria 的开发者主要集中在 UTC+0 时区,即大多数为欧洲的开发者,但 0 时无论周末还是工作日,都有大量事件产生,几乎可以肯定这个项目使用了自动化协作机器人,而且很多定时任务是在 0 时执行的;nnstreamer/nnstreamer 开发者的工作时间主要集中在周一~周五,位于 UTC+8 时区,表明该项目的开发者以亚洲开发者居多,且开发者周末是双休的。
6、案例分析 —— Wuhan2020
6.1 简介
Wuhan2020 是 COVID-19 疫情期间出现的较大规模自组织的代表,也是典型的技术型自组织社区之一。Wuhan2020 成立不到 3 个月,就以开放源代码的方式在互联网上开展志愿服务和合作。在线志愿者合作建立了 5 个网页 / 网站,在 GitHub 上建立了 23 个代码库,并收集了 4,394 项各种与抗击新冠疫情有关的一手及二手信息。
据自组织机构的不完全统计,截至 2020 年 5 月 20 日,Wuhan2020 的 5 个页面 / 网站的点击量超过 30 万次。其允许公开读取使用的数据信息集合促成了牛津剑桥校友援助会提供的武汉社区及周边地市医院和社区数据对接,硅谷的 Gliding Eagle 团队及美国一家全球医疗信息服务平台的医疗物资援助等案例达成。至此,Wuhan2020 已成为抗击新冠肺炎疫情迄今为止少数几个宣布常态化并完成永久性组织结构建设的自组织代表之一。
6.2 成员分析
截至 2020 年 5 月 20 日,Wuhan2020 开源社区通过统计参与者的邮箱确定的参与人数为 4,095 人。随后,通过志愿者邮箱发放志愿者证书,共有 1,942 人领取了 Wuhan2020 志愿者证书。
【社区全部邮箱种类,总数 4,095】
【已领取志愿者证书的邮箱种类,总数 1,942】
可以通过邮箱种类,结合其他数据,粗略估计社区成员的职业以及年龄比例。比如:教育邮箱是参与 Wuhan2020 的老师所使用的,QQ 邮箱使用者多为 95 后。
另外发现有 16 个阿里邮箱,5 个流利说邮箱,4 个京东邮箱,以及石墨,普华永道等,这些是企业人员使用的邮箱。
Wuhan2020 项目初期收集了志愿者的职业以及学历信息共计 1,606 条,根据收集的志愿者信息,以这部分志愿者为样本,进行成员分析。
))
【社区成员职业分析】
上面两张图的区别在于,横坐标的职业顺序不同,此设计的目的是为了区别有多个职业身份的社区成员。使用左图中某一职业类别减去右图中某一职业类别即为多个身份的成员个数。
【在读学生学历细分,总数 853】
由于在填写职业的时候,更多的人填写是学生,所以只能对填写了除学生之外的具体学历者进行分析,只作为抽样,并不一定具有代表性。
可以进一步,通过社区成员的学历进行细分,包括已经毕业的。
【社区成员学历,总数 1,606】
通过上图可以看到社区成员的学历最多的还是本科学历,可以结合之前的社区成员的职业信息,以及邮箱信息,可以推断出,Wuhan2020 开源社区参与者中,大多数是 95-05 年龄段的学生。使用 Gmail 邮箱的有相当一部分来自于海外,这部分成员领取志愿者证书的比例相对较少等。
【社区成员擅长领域饼状图,总数 1,606】
从社区成员擅长领域的分析结果来看,社区成员在选择自己所擅长领域时,更多地会选择宣传或者设计类的领域,这也解释了为什么 Wuhan2020 宣传组成员严重过剩,而且能有很多宣传组成员在活动结束后仍然留在社区当中。这当然也跟数据来源大多来自于微信而不是 Slack 有关,在 GitHub 和 Slack 当中的更多的是程序员或工程师,会直接参与到项目当中,而不会填写表单。
7、总结 & 致谢
本部分所有内容的数据、分析方法与分析结果由 X-lab 开放实验室所支持,内容撰写方面做出贡献的小组成员包括:王皓月、朱香宁,“案例分析 —— Wuhan2020” 部分为 Wuhan2020 开源社区执行长李扬撰写。感谢特邀的开源领域的专家,更要特别感谢积极参与我们调研的每一位朋友。
声明:
声明:本报告来源自开源社,已获 开源社授权转载,本文受限于篇幅摘选了部分片段,完整报告请下载PDF研读。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!