0
点赞
收藏
分享

微信扫一扫

投身开源,需要持之以恒的热爱与贡献 —— Apache Spark Committer 姜逸坤

本期访谈阵容

嘉宾:姜逸坤,华为计算开源团队高级软件工程师,Apache Spark Committer,openEuler Infra SIG Maintainer,Volcano Reviewer,OpenStack 存储项目 Committer,目前致力于大数据、云计算领域开源项目的开发与设计。

主持:郑振宇,openEuler 社区布道师,8+年开源从业经验。

b9d283d43451386e32fa772fab626bd.png

郑振宇: 从逸坤的个人简介中可以看出,逸坤有着非常丰富的开源社区贡献的经验,能否给大家介绍下你是因为什么和开源结缘的?

姜逸坤:最早接触开源,还是在上学的时候。通过浏览技术博客、阅读相关书籍,参考上游代码等,实现自己项目组所需要的东西,当时在做的二层网络驱动项目,就是参考了 Linux、Nginx 的定时器管理机制。

我有将一些效率提升、调试的小工具开源。和大多数人一样,最开始并没有什么人理会。过了好长一段时间,才突然有人 star,有人提 issue,这些人就是属于我自己的用户。我会很认真的回顾大家提的 issue,帮助他们解决遇到的问题,让我感觉到开源并不仅仅是开放源码那么简单,对开源项目的维护也是一种责任。当然,我也会因为项目不断的有用户(开发者、企业)使用而感到兴奋,持续地从中获得成就感,从而更加热爱开源。

郑振宇:从学生时代到现在也有十多年了,可以说是开源“老炮”了。能否分享一下,你认为当选 Spark Committer 最重要的因素是什么?

姜逸坤:从个人视角看,热爱是一个非常重要的因素。起初,兴趣、能力能帮我们走的很快,但热爱可以让我们走的更远,只有真正的热爱才能让一个人发自内心的对一件事进行持续投入。

举个例子,某社区的开发者访谈,有一个问题是:“你的本职工作是开源相关的开发,那么你会在工作之余占用自己的时间去参与开源吗?” 我很诧异地回答并反问访谈者,“当然会啊!为什么这么问?” 她说因为只有少部分人回答了会。所以我认为,只有你自己真正的感兴趣,才会愿意投入时间,我想这也是我成为 Spark Committer 的重要原因之一。

从角色视角看,我觉得我成为 Apache Spark Committer 的过程也是一样的。通常来说,每个开源社区的参与者都是多重身份:企业雇员、社区开发者、对开源热爱的个体。只有将雇主对你的期望(商业价值)、你对自己的期待(个人成长)、社区期望你的贡献(有价值的贡献)都兼顾到,才能促使你在工作和自己的时间里,花更多的时间参与开源,做出更多有价值的贡献。

从社区视角看,Committer 需要为项目的成功做有价值的贡献。Apache 在官网上明确表示,成为 Committer 背后的主要思想是成为导师并且具备和同行合作的能力。此外,Apache 社区也有“community over code”的说法。所以技术并不是唯一的因素,基础设施、运营、测试、文档等方面的参与也非常关键。

f991938ab0d42eb13a29a8609a0e070.png 截图内容来源于:https://community.apache.org/contributors/

郑振宇:刚才你提到了开源社区对开发者的期望,也说了技术并不是唯一的。但对于大多数开发者来说,可能最初参与开源社区还是比较单纯的。如果单从技术方面看,你认为开源社区中和技术相关的关键贡献点有哪些?

姜逸坤:在我看来,最核心的有两点。第一点,也是大家比较容易忽视的一点,是高质量代码的 Review。最开始的时候,Review 代码能学到很多东西,在逐渐成为某个领域的专家时,你的 Review 会帮助更多的新开发者高效地合入代码并且保证项目的质量。

第二点是持续、有价值的贡献。当你具备了能力之后,你会不断地在这个领域做贡献。持续代表能够长时间投入,价值指对社区的贡献能力。对于新手来说,社区不排斥简单的贡献,但一直这样是不能做到关键技术贡献的。

郑振宇:非常有用的分享。我了解到,作为大数据的明星项目,成为 Apache Spark 项目关键决策的难度还是很高的,相信在这个过程中你也经历了很大的挑战。你是如何克服这些挑战并最终成功的?

姜逸坤:有句老话说得好:万事开头难。相对于其他项目来说,Apache Spark 的门槛会较高些,从 0 到 1 的过程也是比较有挑战性的。从技术角度来说,产品中的技术和参与开源开发,其实是两种模式,而且每个开源社区会有各自不同的风格和规则。

作为技术开发者,从舒适区走到挑战区,在开源社区提的第一个 PR,第一个合入,以及第一个设计提案,在动作上是会有一定的不熟悉的,但其实,每个过程最关键的都是要获得社区的信任。我觉得这是第一个挑战吧!

社区成员是非常多元化的,所以达成共识往往是社区中最重要的事情,同时,促成多方达成共识也很有挑战,这是第二个挑战。

郑振宇:真的是非常有价值的分享,我相信这些经验对于想要从事开源社区贡献或者正在冲击 Committer 席位的开发者们有着非常好的参考价值。那么,成为 Committer 之后,你对未来有什么样的目标和计划?

姜逸坤:第一,说直白一点,企业在给雇员发工资,那么帮助自己企业的客户,是非常重要的。所以,我还是会从客户角度出发,了解用户的痛点,作为一个桥梁,将问题转化为需求,并最终在社区达成共识,对社区和企业客户都产生价值。

第二,从社区角度,我也会更积极的参与社区的工作,帮助新的贡献者能够更好的将他们的想法、代码、设计提案合入到社区中,帮助社区成功。

郑振宇:看来成为 Committer 之后,肩负的责任更多了。从你的经历看到,你参与过多个不同的社区,比如 Apache、OpenInfra、CNCF、开放原子基金会、FSF 等,你觉得它们有什么共同点?

姜逸坤:开放、共识。无论是 Apache 的“APACHE IS OPEN”,还是 OpenInfra 社区的“The Four Opens”,它们的开放表现在开源的各种形式、多个方面,包括参与开源的整个过程。而一个成熟的开源社区,社区成员一定是多元化的,共识的思想也一定会让社区走得更远。

Apache:APACHE IS OPEN https://news.apache.org/foundation/entry/apache-is-open

OpenInfra:The Four Opens https://openinfra.dev/four-opens/

郑振宇:那这些社区中对你影响最深的社区是哪些?你从中得到最大的收获是什么?

姜逸坤:对我影响比较深的像最早参与的 OpenInfra 社区,社区的四个 open:Open Source、Open Desigin、Open Development、Open Community,让我无论在代码开发、设计、讨论、分享等环节都能保持一个开放的心态。这样的理念和氛围,也让我更敢于分享自己的想法、表达自己的观点。我认为这点对于刚参与社区的新手来说还是非常重要的,尤其是在国际化社区。

第二个是 Apache 的 Community over code,让我的眼界更加广阔。由于我是技术出身,所以最开始的时候,我总是认为合入代码才是最厉害、最能体现自己价值的。而现在,我的认识更加的多元化,像社区治理、社区运营等等也都是社区成功的关键因素。

郑振宇:嗯,确实是这样,那么以你参与开源的经验来看,对于企业和个人开发者加入开源社区进行贡献,有哪些建议呢?

姜逸坤:参与开源社区时,可以从小事做起,做出对社区、企业,或者对个人成长有意义的贡献,贡献不用局限于技术,反馈自己需求、参与讨论等都是很好的起点。

郑振宇:都是非常中肯的建议,我相信对于想要加入开源的企业和开发者都非常有价值,那么最后,想听听你对开源雨林的建议有哪些?

姜逸坤:开源雨林是一个很好的平台,能够帮助企业更加了解开源,建立开源和企业之间的桥梁。我觉得可以借助开源雨林这个平台,帮助企业了解开源,挖掘出企业对开源社区的需求,链接好企业和开源,从而更好地服务企业,让开源能够发挥更大的价值。

举报

相关推荐

0 条评论