近两年,在Apache等顶尖开源基金会中涌现出很多像SeaTunnel这样的国产开源项目。但由于起步较晚,中国开源与海外还存在明显差距。那么中国开源该如何追赶?本期《开源访谈录》邀请到了Apache孵化器导师代立冬来分享他的见解。
本期受访嘉宾:
代立冬,白鲸开源联合创始人、Apache DolphinScheduler PMCChair & Apache SeaTunnel PPMC & Apache孵化器导师。
专注于大数据调度技术,主导开发的Apache DolphinScheduler成为中国最流行的大数据调度项目,在多家知名互联网企业部署,获得了2021中国开源云联盟优秀开源项目奖、2021 OSC最受欢迎项目等奖项,并入选可信开源社区共同体预备成员。代立冬作为10多年的开源贡献者,不遗余力地在中国推广Apache开源文化,负责出品ApacheCon Asia等顶级开源会议,多次在各媒体组织的活动中分享开源之道。也作为Apache孵化器导师,帮助包括SeaTunnel在内的多个开源项目的孵化,推广Apache成功之道,致力于让开源文化更好地在中国开发者群体传播。
“我是个开源积极分子”,代立冬如此评价自己。确实,作为Apache基金会的孵化器导师,代立冬一直致力于在中国推广Apache文化,利用Apache多年沉淀下来的开源实践经验来帮助国内开源社区的发展。2021年12月19日,在一众mentor的帮助下,SeaTunnel成功加入了Apache孵化器,成为了Apache中首个诞生自中国的数据集成平台。对于SeaTunnel来说,除了代表着SeaTunnel目前的代码和社区受到了初步认可之外,更是一个新的起点。
其实,不仅仅是SeaTunnel,近两年中国的开源领域整体有所起色,但现在国内的开源领域仍然处在一个早期阶段,尤其是开源文化的建设还有所欠缺,包括一些开源应该遵循的方法论目前还没有形成。在谈到这些问题时,代立冬说:“我知道国内很多开源项目的作者们只是把代码放在GitHub上,但这并不代表他们会玩开源。”在这方面,SeaTunnel更像是中国成千上万开源项目的一个缩影,虽然近期的发展可喜可贺,但是今后还有很长的路要走。
那么参与开源的价值是什么?新手开源应该怎么玩?Apache是如何帮助项目成长的?国内开源领域的短板在哪?以下是代立冬对这些问题的见解。
“从开源使用者到开源贡献者是自然而然的事情”
CSDN:您是如何与开源结缘的?又是如何加入Apache基金会,走上开源生态建设之路?
代立冬:我是个开源积极分子,也算是国内最早一批接触到开源项目的人。从2009年开始,我逐渐接触到MongoDB,Hadoop等一些开源项目,当时大家对开源的理解仅仅在如何使用这些技术,因而在使用过程中难免会遇到bug。还记得2013年,我发现了HBase的一个小bug,顺手修复并提交给了社区,这可以算是我第一次为开源社区做的贡献,后来慢慢从一个开源使用者变成了开源贡献者,这是个自然而然的过程。
加入Apache基金会的契机,要从2017年我们在实践应用中发现的广泛存在的大数据调度需求说起。这些需求包括对稳定性和应用性的要求,以及大数据经常会用到的多租户能力等等,但那时市面上没有一款能满足我们生产需求的平台,因此,自己研发一个大数据工作流调度技术的念头蹦了出来。后来选择将技术开源是因为开源其实是埋在程序员基因里的东西,如果我写的代码能为成千上万的用户和公司所用,无疑是件非常有成就感的事。当时开发出的调度系统EasyScheduler在加入Apache孵化器之后,已更名为今天的DophinScheduler。
CSDN:您认为开发者能从开源中获得最大的价值是什么?
代立冬:我认为大家喜欢参与开源的,是因为每个角色都可以从开源的里获得成就感,它是个真正以技术驱动并且属于技术人的方式。如今也是个真正属于技术人的时代。
另外,开源还是一种很优秀的开发协作模式,它能极大地推动创新和个人进步。例如Apache基金会崇尚精英领导社区,在参与开源的过程中可以结识很多技术水平超高的小伙伴。而开源社区也不同于一般公司,这里聚集了全球顶尖精英们,和他们一起玩开源的过程中,开发者的技术水平和思考问题的深度将会不断提升。在互相Review代码的过程中,也会驱使我们学习像大佬们一样去考虑问题。不仅仅是写代码,写文档的逻辑和团队协作能力也非常重要。如何把现有的任务拆分成更小的任务,然后督促别的小伙伴们完成这些Task,同样非常能锻炼个人的软技能,这些对开源参与者个人技术的提升效果非常明显。
更实际一点,参与开源也与开发者自身的利益密切相关。对很多公司来说,参与开源、为开源的贡献过代码都是加分项。当你想跳槽到另外一家公司时,如果你是某个知名开源项目的Committer或PMC,你的机会更大。
新手开源应该怎么玩?
CSDN:作为一名想参与开源贡献的学生或是技术新人,可以从哪里入手?
代立冬:贡献的定义非常广泛,只要促进了开源社区的发展,都是贡献。参与社区的时候,提交的第一个PR其实是用来熟悉社区提交流程和协作方式的,所以越简单越好,可以尝试修复一些简单的bug或者是修改文档里的错别字。很多社区都会给一些Issue贴上Good First Issue的标签,这些问题就是给新人去练手的。
对社区的贡献也不仅限于代码,还有文档建设、参与meet up,以及给大家分享某个开源技术是如何被应用的,例如你将某个技术用在了什么场景、遇到了哪些问题、是怎么解决的?这些都是新人参与社区贡献很好的方式。人人都贡献一点,开源社区就会变得越来越好。
CSDN:目前,文档建设成为了许多开源项目发展的痛点,您在文档建设方面有哪些心得可以分享给大家?
代立冬:以DophinScheduler为例,它的文档其实借鉴了一些Apache项目,例如Spark等一些海外社区的文档建设经验。我认为文档建设最重要的是关注大家上手的难易度,这其中最关键的是,你要脱离开发者的角色,站在用户的角度去考虑他们会如何使用这些文档。很多新用户可能是这个领域的小白,他们能不能凭借文档非常简单地上手,完成操作?这就要求我们要关注文档的覆盖面是否全面,有没有丰富的任务类型和架构文档。这些方面的考虑在国内大部分社区的文档建设中比较欠缺,尤其是英文文档的建设就更加欠缺了。
CSDN:对于如何运营好开源社区并形成良好的社区氛围,让大家积极贡献代码,您有什么见解?
代立冬:个人的力量是有限的,我希望有更多的贡献者一起review项目代码,只有把社区的贡献者激活,才能做到对问题的及时响应。因此,要做好一个开源社区,开发者运营的角色非常重要,通常由一个PMC来承担。PMC往往对项目非常了解,并且在社区中有一定号召力,由他来安排一些日常活动,比如Meet up和会议。在社区中,对任务的分配和协调也很关键,每个贡献者参与到社区以后,通常只关注于某一个模块,要尽可能让大家各司其职。对API感兴趣,就维护API的模块,对文档感兴趣,就维护文档。
开源不是拿来主义,开发者要积极回馈社区,开源才能够健康持续的发展,希望大家能积极参与到开源社区贡献中来,保持社区的活跃。这是我认为非常重要的经验。
佛系Apache如何强力助推世界开源发展?
CSDN:如今SeaTunnel全票通过,正式成为Apache的孵化项目之一,开源项目加入Apache或其它基金会的孵化器意味着什么?Apache筛选优秀项目来孵化的标准是什么?
代立冬:加入Apache孵化器,意味着这个项目已经积累了基本的用户、社区和贡献者。加入以后,项目会以Apache的文化或者Apache Way的方式发展,避免项目孵化走弯路。只是把代码放在GitHub上,这并不代表你会玩开源。开源项目的数量动辄大几千万,你无法知道自己的项目是否能脱颖而出。怎么实现你的目标?加入一个优秀的基金会作为项目起点是个不错的选择,比如Apache孵化器、Linux基金会、或者是国内的一些基金会,但这仅仅是个开始,还有很多需要学习,例如License相关的内容,License在国外就是法律。
Apache筛选孵化项目的标准主要看Mentor们是否对此项目感兴趣、此项目是否有个初步成型的社区,以及此项目解决问题的方式是否原创。开源崇尚创新,所以当基金会判断项目是否属于优秀的项目时,会考虑它是否能以自己的方式解决某些痛点问题,它的定位是否足够清晰,以及它能否发展成一个不仅是为中国小伙伴所用,而且在海外也形成一定影响力的项目。
CSDN:在Apache基金会里有各种各样的角色,作为SeaTunnel的Mentor之一,您的职责是什么?您认为一个优秀的Mentor应该是怎样的?
代立冬:Apache其实是个比较佛系的基金会,所有的Mentor也都是根据各自的时间来指导项目的发展。Mentor能够帮助项目进入孵化器,但只有在非常看好某个项目潜力的情况下,才会这样去做。我最主要的职责是让SeaTunnel项目遵循着Apache Way的方式来推进,不能偏离Apache Way。
所谓Apache Way,其实有很多原则,比如社区大于代码、邮件沟通、人人平等,这些方式是Apache的文化所倡导的,项目孵化的过程,也是学习Apache文化的过程。Apache有20年的成功经验,优秀的Apache Mentor要努力将这些经验传授给更多的中国开源圈的伙伴们,让大家能更多的学习到Apache的优秀文化,使中国的开源能立足全球并做出一定贡献。
CSDN:The Apache Way可以看做Apache基金会的“行为准则”,业界对它的理解各自不同,您是如何理解的?
代立冬:The Apache Way包含了Apache最关注的几点。
第一,要有一个繁荣的社区,社区大于代码。Apache更关注的是社区中是否积累了足够的精英来治理这个社区。哪怕现在代码做得不太好,但是有足够的精英愿意参与贡献,这个项目的代码早晚会变成高质量的代码。
第二,倡导邮件沟通。Apache有一句名言,“没有发生在邮件里的事情就没有发生”。使用邮件来沟通这点是中国小伙伴们所欠缺的,大家普遍偏向于通过微信私聊的方式来解决问题,会觉得邮件浪费时间,而且也鼓励使用英语书写邮件,这对中国开源社区而言更具挑战。Apache是个全球化的社区,其中的项目也是全球化的项目,假如所有的交流只局限在微信群里的几个人,就无法形成公开透明的交流氛围。强调邮件沟通是因为,邮件是不可更改的,所有后来的参与者都可以通过邮件追溯到当时发生的情况,直接定位到问题,去理解为何当时要做如此决策。
第三,人人平等。这一点在Apache Way里被反复提及,也是我认为非常重要的一点。在社区中,不会仅仅因为某个人是Committer或PMC,就比别人有更高的话语权,“人人平等”强调的是哪怕是个新人在社区中也有自己的发言权,也可以表达自己的观点。不会因为某个人担任重要的角色就可以阻止别人发言,这是Apache所禁止的一种行为。一个贡献者在社区中的权威是通过不断给社区做贡献来赢得的,这点我认为也是中国开源中会遇到的一个挑战。
以上是我认为最重要的一些Apache Way,Apache文化里还有很多优秀的理念大家可以通过它的官网去学习这些,然后更好地引导自己项目的发展。
补足短板,未来十年世界开源发展还看中国
CSDN:中国开源领域目前有哪些发展瓶颈呢?我们该如何突破?
代立冬:我认为目前中国开源社区的发展有三个重要的瓶颈:
第一个是英语。目前国内开源社区中的会议、周报、Issue、邮件基本都使用的是中文。但是想要成为一个全球化的项目,只用中文是行不通的。中文使用者范围较小,而英语目前是世界通用的语言,当中国的开发者们使用英语时,可以看到大家的英语能力普遍比较弱。因此,语言是目前中国开源社区发展最大的障碍。
第二个是沟通工具。国内大家常用的沟通工具是微信,我们不习惯使用Slack这种全球化的交流工具。微信又是个比较封闭的生态,不利于社区的全球化沟通。社区成员间的交流可以维系相互的情感,而交流的缺失会阻碍项目的发展。
第三个是邮件。不爱发邮件是中国开源圈非常致命的缺点,但邮件的重要性在前文我已经有所强调,只用一对一的微信聊天或者语音无法完整地解决问题。虽然这两年大家对Issue的接受度有所提高,但还是很不愿意发邮件。
我认为,中国的开源社区只有把这几个方面做好之后,才能成为一个真正全球化的社区,中国的开源项目才能成为真正全球化的项目。做了三年的开源,我一直在思考一个问题:为什么中国的开源只能在中国流行?最后得到的前面几点结论,这几个方面确实是中国人做开源的短板。
CSDN:对目前中国的一些开源技术、产品以及开源领域整体现状,您如何看待?
代立冬:现在国内的开源领域仍然处在早期阶段,尤其是文化建设还没有跟上。一些开源的方法论目前还没有形成,类似Apache的Apache Way,这是Apache积淀了20年经验的产物,中国的大部分小伙伴对这些还是比较陌生。我们需要有更多的布道师站出来,推动开源文化的建设。
开源技术方面,中国在底层的创新上与海外还是有差距的。主要原因是海外开源的发展起步较早,中国的开源这两三年才有起色,所以这方面也需要更加努力,但我相信中国的开源有巨大潜力,我非常看好国内开源的后续发展,未来十年,世界的开源要看中国。我们做过统计,去年Apache的5个孵化项目全部来自于中国,这是个非常好的发展势头,国内的开源需要再接再厉。
《开源访谈录》是一档聚焦开源发展的访谈类栏目,每周将邀请1位具代表性及影响力的开源专家,探讨大家广泛关注的开源话题,从不同角度还原开源圈真实面貌。