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 的模式,这奠定了一个项目不断壮大的基础,对于发展中遇到的问题,我会坚持开放透明的方式去解决”,堵俊平提出了三点目标:
改进腾讯开源的审核流程。发布统一的审核平台,能让大家看到自己及其它正在审核中的项目的进程,尽量从内部开始,就把流程透明化。此外,目前开源前的审核大多是法律方面的流程,很少有针对项目本身代码质量、文档建设的考量,开源后会不会被骂谁也没有把握,我希望腾讯也能有个的导师制度,导师深度参与到一个新的开源项目中,给予帮助。我们甚至可以建立一个 tencent-incubator 的仓库,放置一些不那么成熟的项目,这样外部开发者使用的时候也更容易选择:选择成熟的,成本低;选择孵化中的,有机会一起改变。
帮助项目构建外部的生态。对于构建开源项目的外部生态,堵俊平表示这对腾讯来说并不是一个轻松的过程,除了他个人可以作为 Mentor 推荐腾讯的开源项目在 Apache 基金会中孵化成顶级项目以外,腾讯云也在持续为开源 Hadoop 等项目贡献 patch 和 feature, 包括验证 release 用于生产环境。他表示腾讯云愿意为开源项目提供支持,可能有很多方式,帮助开源项目打包成商业级服务在腾讯云上便捷的提供给用户,或者组织技术大会给开源提供更多的曝光窗口等。
建立腾讯对开源的评估体系。“国内有一些有关各大公司开源水平的评价新闻我认为并不够确切,纯粹去比拼数量和 Star 其实是个简单粗暴的行为”,堵俊平谈到:“就像 Apache 基金会对孵化的项目提出的要求——至少有来自三家公司以上的贡献者才能毕业,这个行为其实是在保护用户,我希望腾讯对于自己的开源项目也能有一些更加细致、更加专业的评估体系,这样无论在任何场合,面对任何报道,我们都让外界对腾讯的开源、腾讯的技术充满信心。”
关于腾讯开源
腾讯开源始于 2010 年。在开放战略背景下,腾讯在内部开始推行“开放、共享、合力开发”的研发模式。如今,腾讯已有超过 8000 个内部开源的开发项目(组件)在公司跨团队、跨部门、跨业务地运用。从 2016 年起,腾讯开始将内部优质项目对外发布,以 Github 为主要阵地进行开源项目经营,腾讯对外开源开始进入了快节奏时代。
目前,腾讯已将三个广受社区的认可的开源项目 TARS、TSeer 和 Angel 分别捐赠 Linux 基金会和 Linux 深度学习基金会长期运作。同时,腾讯已成为 Linux 基金会、Apache 基金会、Openstack 基金会、MariaDB 基金会及 LF 深度学习基金会的白金会员,还加入 GPL 合作承诺,坚持以专业、合规的方式推进开源工作。