从用户到“股东” —— 在 Apache 基金会的 2600 天
3月27日,腾讯云大数据及人工智能产品研发专家研究员堵俊平受邀成为 Apache 软件基金会 Member(Apache Softeware Foundation Member,以下简称 ASF Member),一封名为 “邀请成为 ASF Member” 的电子邮件正式为堵俊平敲开了开源世界的新大门。
从用户到“股东” —— 在 Apache 基金会的 2600 天
从2012年开始为 Hadoop 的初始版本打补丁,堵俊平已经在 Apache Hadoop 社区深耕了近8年,他在13年10月成为中国第一个 Hadoop 的 Committer,15年7月 PMC Member,19年3月荣升 ASF Member。“我很荣幸,但从此,我也有了更多的责任。”
现在全世界有883位 ASF Member,中国区仅有13人,其中较为出名的包括 Kyligence 联合创始人兼 CEO 韩卿(Luke Han),以及中国开源社的理事长刘天栋(Ted Liu)。
与在一个项目单元下垂直贡献不同,ASF Member 会收到 Apache 基金会下超过350个开源项目的季度报告,横向地对更多的项目起到管理义务。
ASF Member 关注的是 Apache 基金会本身,这通常通过项目相关和跨项目活动来证明。从法律上讲,Member 是基金会的“股东”,也是业主之一。他们有权选举董事会,成为董事会选举的候选人。他们也有权作为导师(Mentor)提出一个新的孵化项目。
有一点需要特别指出,Apache 基金会中从 Committer 开始的每个角色都只能通过他人提名并投票决定,这代表社区伙伴的认可,每上一个新台阶的背后都有着日日夜夜事无巨细的付出:不断贡献高质量代码、提交 patch、组织 release、回答用户问题、参与投票、培养和提名 Committer、发表合理合适意见,还有一些影响更加深远的贡献,推动腾讯内部持续贡献 Apache 基金会、组织黑客松和 meetup、身体力行地推广 Hadoop、传递开源理念。
堵俊平今年的想法是主动去挖掘1-2个合适的项目,推荐进入孵化流程,“Mentor 有点像投资人,只不过我们是拿出自己的时间来投资”,堵俊平做了这样的比喻,时间比资金更有限、更私人,所以选择开源项目时会坚持从技术驱动,在自己有兴趣的领域帮助有潜力的项目快速成熟。
代码、人,社区都在成长 —— Apache 基金会的运作模式
Apache 基金会的官网上有几十份、累计数十万字的文档内容在介绍 Apache 基金会的运作模式,在真正接触到基金会的“内部人士”前,外界似乎很难相信一个跨时区、跨文化、跨公司的组织能够严格按照这样的模式运作了20年。它详细到超乎想象,哪怕是针对一些意外情况,也多能在这些文档找到解决方案。
“ASF Member 想要退休怎么办?”、“决策投票的有效期在跨时区的情况下如何保证?”、“投出+0.9票的成员是怎么想的”……诸如此类。
Apache 基金会中的每个人、每个项目、每个社区,都并非固定一成不变的,它是一个极其动态的过程,每个人、项目和社区时刻都在成长,而这一切是透明的,作为一个普通用户,几乎不要花多少功夫,就能找到这个庞大的社区每天发生的一切变化:代码量的增减、提交者的变化、最新的 release 清单。Apache 基金会像是一个精密的齿轮,日夜不停地转动,开源这个概念自身的魅力正是其磨合剂。
作为社区中的人,只要你参与在 Apache 基金会的项目中,你就肯定能找到一个对应角色:
-
用户(User):开始使用一个或多个 Apache 基金会的开源项目。
-
贡献者(Contributor):提交代码或文档的 patches,在官方渠道(邮件列表与 IRC 等)支持其他用户。
-
提交者(Committer):持续贡献,坚持贡献,被提名、投票通过后,拥有直接访问并提交代码的权限。
-
项目管理成员(PMC Member):做了更多不局限于代码的贡献,进入单个项目管理委员会,通过投票影响这个项目的发展方向。
-
Apache 基金会成员(ASF Member):对 Apache 基金会直接负责,在多个项目中做出贡献,拥有董事会的投票权。
如果你已经在维护一个开源项目,想让它进入 Apache 基金会,那你则需要充分了解项目在社区不断演进的过程,“提名→进入孵化器→成为顶级项目”,每一步都有迹可循。
(图为一个开源项目进入孵化器的过程)
从 Apache Way 到 Tencent Way —— 以 TOSA 加速力行开源实践
Apache 之道影响了包括腾讯在内的众多中国公司,近几年,中国的开源爱好者们在大会演讲中终于不是只会讲系统是如何设计的、代码是如何实现的,“开源社区”成为业内一个有点抽象的流行词。
“社区”到底是什么?其实就是多人+互动关系,开源社区就是指大家的互动关系围绕着开源项目而产生。不过这种关系并不会凭空产生,原始开发者需要站在一个完全陌生的开发者角度去思考“我为什么要加入你?”
这里有很多方法已经在 Apache 之道中得到总结:首先这应该是一个创新的项目,简单易懂的上手指南、详细全面的项目文档、统一规范的代码格式都能够降低其他开发者的门槛,吸纳贡献者之前要先想清楚项目需要哪方面的帮助,贡献者加入之前也要明确如何协调工作。
对于自由开发者来说,践行以上方法,可能只需要多一点点决心而已,但对于公司体制下的开源开发者,得到公司和所在团队的支持也许更加实际。
18年中旬,腾讯正式成立了开源管理办公室,腾讯BG相对独立、自下而上的管理模式其实和 Apache 软件基金会颇有类似之处,因此这个办公室的组织架构也设计成类似于 Apache 软件基金会的模式。
开源合规组应对开源的法律风险,TPMC 聚集了每个项目的内外部开发者,而略带江湖气息的腾讯开源联盟 TOSA 则是整个组织的大脑,负责思考腾讯开源要向哪个方向前行。
堵俊平现任腾讯开源联盟的主席,除了负责 Apache 基金会的各项事宜外,他还主动承担起管理和治理腾讯开源工作的职责。“我非常高兴能看到腾讯开源选择 Apache 的模式,这奠定了一个项目不断壮大的基础,对于发展中遇到的问题,我会坚持开放透明的方式去解决”,堵俊平提出了三点目标:
1、改进腾讯开源的审核流程。
发布统一的审核平台,能让大家看到自己及其它正在审核中的项目的进程,尽量从内部开始,就把流程透明化。此外,目前开源前的审核大多是法律方面的流程,很少有针对项目本身代码质量、文档建设的考量,开源后会不会被骂谁也没有把握,我希望腾讯也能有个的导师制度,导师深度参与到一个新的开源项目中,给予帮助。
我们甚至可以建立一个 tencent-incubator 的仓库,放置一些不那么成熟的项目,这样外部开发者使用的时候也更容易选择:选择成熟的、成本低;选择孵化中的,有机会一起改变。
2、帮助项目构建外部的生态。
对于构建开源项目的外部生态,堵俊平表示这对腾讯来说并不是一个轻松的过程,除了他个人可以作为 Mentor 推荐腾讯的开源项目在 Apache 基金会中孵化成顶级项目以外,腾讯云也在持续为开源 Hadoop 等项目贡献 patch 和 feature,包括验证 release 用于生产环境。
他表示腾讯云愿意为开源项目提供支持,可能有很多方式,帮助开源项目打包成商业级服务在腾讯云上便捷地提供给用户,或者组织技术大会给开源提供更多的曝光窗口等。
3、建立腾讯对开源的评估体系。
“国内有一些有关各大公司开源水平的评价新闻我认为并不够确切,纯粹去比拼数量和 Star 其实是个简单粗暴的行为”,堵俊平谈到:“就像 Apache 基金会对孵化的项目提出的要求 —— 至少有来自三家公司以上的贡献者才能毕业,这个行为其实是在保护用户,我希望腾讯对于自己的开源项目也能有一些更加细致、更加专业的评估体系,这样无论在任何场合,面对任何报道,我们都让外界对腾讯的开源、腾讯的技术充满信心。”
关于腾讯开源
腾讯开源始于2010年。在开放战略背景下,腾讯在内部开始推行“开放、共享、合力开发”的研发模式。如今,腾讯已有超过8000个内部开源的开发项目(组件)在公司跨团队、跨部门、跨业务地运用。从2016年起,腾讯开始将内部优质项目对外发布,进行开源项目经营,腾讯对外开源开始进入了快节奏时代。
目前,腾讯已将三个广受社区认可的开源项目 TARS、TSeer 和 Angel 分别捐赠 Linux 基金会和 Linux 深度学习基金会长期运作。同时,腾讯已成为 Linux 基金会、Apache 基金会、Openstack 基金会、MariaDB 基金会及 LF 深度学习基金会的白金会员,还加入 GPL 合作承诺,坚持以专业、合规的方式推进开源工作。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
已开源|码上用它开始Flutter混合开发——FlutterBoost
为什么需要混合方案 具有一定规模的App通常有一套成熟通用的基础库,尤其是阿里系App,一般需要依赖很多体系内的基础库。那么使用Flutter重新从头开发App的成本和风险都较高。所以在Native App进行渐进式迁移是Flutter技术在现有Native App进行应用的稳健型方式。闲鱼在实践中沉淀出一套自己的混合技术方案。在此过程中,我们跟Google Flutter团队进行着密切的沟通,听取了官方的一些建议,同时也针对我们业务具体情况进行方案的选型以及具体的实现。 官方提出的混合方案 基本原理 Flutter技术链主要由C++实现的Flutter Engine和Dart实现的Framework组成(其配套的编译和构建工具我们这里不参与讨论)。Flutter Engine负责线程管理,Dart VM状态管理和Dart代码加载等工作。而Dart代码所实现的Framework则是业务接触到的主要API,诸如Widget等概念就是在Dart层面Framework内容。 一个进程里面最多只会初始化一个Dart VM。然而一个进程可以有多个Flutter Engine,多个Engine实例...
- 下一篇
NEXT社区小课堂 | 第四课:dBFT 2.0详解 | 委托拜占庭容错:技术细节、挑战和前景
NEXT社区 | 小课堂 由于近期NEXT社区加入很多新的小伙伴,有在校大学生,有对区块链感兴趣的传统企业从业者。为了更方便、更系统的让NEXT社区的伙伴们了解NEO的技术知识,因此我们开设了小课堂,每周3节,向大家普及NEO相关的知识要点! NEXT社区小课堂 | 第四课 dBFT 2.0详解 委托拜占庭容错:技术细节、挑战和前景 针对部分同步和完全异步的拜占庭容错系统 的相关研究文献有很多; 但是能真正应用于真实的不同种类的去中心化应用智能合约(SC)场景的研究却很少。值得注意的是,与涉及状态机复制(Schneider 1990)的智能合约交易持久化需求相比,更新存储状态的应用程序会带来不一样的挑战。 此外,要考虑的第二个重要事实与账本信息更新后的确定性有关。终端用户、商家和交易所都希望能明确地知悉他们的交易是否已得到处理或者是否有可能被回退。与先前文献中的大部分研究不同,NEO区块链在第一层网络上提出了一种具有一区块最终确认性的共识机制 。除了在实际案例应用中广为人知的优势之外,这个特性也带来了一些额外的限制、漏洞和挑战。 本技术材料的目的是强调从经典的实用拜占庭容错机制(p...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题