分享 | 如何成为Apache官方开源项目的Committer?

技术

picture.image

近几年开源在国内的热度越来越高。开源不仅仅是简单的代码开放,更多是有一套独特的理念和文化,有一套社区约定俗称的行为准则,有一套自运转的逻辑。

不少企业在技术选型中使用了开源技术,一方面,在探索内部版本与社区版本的互惠互利,另一方面,不断参与开源贡献、回馈社区,借助开源圈层打造自身企业影响力。

在字节 跳动,越来越多产品已经基于开源技术构建,大量工程师深入参与到开源社区工作,兆靖就是其中一位。 作为火山引擎湖仓一体分析服务LAS的工程师,他因项目原因与Apache Hudi社区结缘,短短10个月时间,就已经成为Apache Hudi社区Committer之一。

本期专访将对话数据湖研发工程师兆靖,他将 讲述作为一线技术人员如何从0到1参与到开源项目中,以及这些年开源经历带给他的思考和成长。

picture.image

picture.image

开源能解决重复造轮子的问题

开源是什么?开源社区的运作模式又是怎样的?

  1. 开源是一个很好的协作模式,国内开源氛围也日渐浓厚,你如何看待开源这件事?

每家公司对新技术、新组件等是保持一定需求的,但如果每家公司都自己研发一套,就会进入重复造轮子的情况。除此之外,不同公司对新技术投入也不一致,这种情况下就会白白消耗一个阶段的生产力,还可能出现各种各样良莠不齐的产品。

技术开源能够很好降低引入新技术的成本,并且可以让有该类需求的公司有一套统一的方案,也方便整体行业技术的统一。

  1. 能不能给大家介绍下开源社区的运作模式?

以Apache基金会为例,如果你有一个好的idea,那么可以聚集一批人做出基本实现,然后交给Apache审核。如果满足了基本条件,则进入Apache孵化器。在孵化期间,凭借项目自身的能力以及生态情况去吸引更多开发者参与开源建设,直到作为Apache顶级项目最终毕业。

picture.image

成为Committer就是要与项目共同成长

如何成为一位知名基金会的Committer?

  1. 开源社区涉及范围广泛,比如SIG小组、开源治理、开源贡献等等,在 Apache Hudi 社区中,你主要参与了哪些工作?

作为一名研发同学,我主要参与的工作是开源代码贡献。在Hudi项目中差不多贡献了40多个commit,排在十七、八名,在其他项目中大概也有10多个commit贡献。除此之外,还会参与一些Hudi项目中岛特性规划和开发。

  1. 要成为项目Committer,特别是这种知名社区Committer,要经历提名、投票等等流程,是非常不容易的事情,你是如何做到的呢?

首先,对开源要充满热情以及持续活跃度。 如果仅仅是以工作心态在参与,可能后期会缺少动力。要从内心里认可,开源的价值是开放使用,能够拓展开发的空间,让开发资源高效利用,造就一个最基本的形态变成百花盛放,争奇斗艳的效果。

其次,如果要成为Committer的话,还对开源项目保持高参与度以及对社区归属感。 不仅包括代码贡献,也包括技术方案讨论、用户社群答疑等。除此之外,还要对整个项目有深入了解,具备review其他开发者代码的能力。

最后就是成为一名Committer的流程, 以上都具备且在社区产生一定影响力之后,成为committer就是一个水到渠成的事情。项目对应模块负责人会在社区通过邮件发起提名,列举社区工作成绩包括翻译文档数量、解决用户问题数量、对代码的贡献程度等,最终由PMC投票。如果PMC投票一致通过,就可以成为项目Committer。

当然成为Committer也不是到达开源项目的尽头,如果对项目持续且深入的贡献和影响力,可以进一步成为 PMC,可以理解为开源社区自治下的管理者。每个开源有不同的模块,每个模块都有各自PMC对整体方向把关。

picture.image

个人也可以从开源中获得价值

参与开源对公司、项目、个人来说到底有何价值?

  1. LAS 项目工作中,需要深入学习和了解 Apache Hudi ,那么参与开源社区,对你的工作带来了什么帮助么?另外,对你个人提升有什么帮助,比如交流能力、个人技术影响力等等?

我觉得最主要帮助是可以从外部视角来观察项目中可能遇到的问题。其他公司对项目使用的经验、踩过的坑可以为我所有,有利于在前期避坑,同时也能提供解决问题的不同思路。

另外,对我个人来说,同行相互评审,促进交流能力提升,特别是英文表达能力,我个人也在社区获得一些认可和荣誉,实现自我价值。

  1. 很多开发者也想参与到开源社区里,作为一个有经验的开源人,能不能为大家介绍下,要怎么从0到1参与到一个开源社区里?

首先英文是参与社区的基本能力, 与PMC以及其他Committer沟通都需要具备基础读写说的能力。

其次,建议找一个切入点。 例如从文档角度切入,慢慢了解功能实现,完善开源项目文档、做文档翻译工作等;或者,接触一些bug fix以及一些简单开发工作,把自身在社区代码贡献度提上来。

最后,也可以考虑从项目issue切入。 开源项目中一定有非常多其他开发者提的bug修复或者期望实现的功能。如果找到对应项目模块负责人,主动和对方沟通,承担起这部分代码认领和开发工作,也是参与的方式之一。

  1. 能不能分享下,作为 LAS 项目参与开源社区代表,如何在开源社区里提升公司影响力?

我觉得可以包括两点: 第一点,经常在社区露出, 面向外界树立公司对该项目支持力度大、研究深入的印象。具体手段包括参与社区答疑和沟通、参与社区组织直播和大会等。 第二点,多参与重大特性规划和开发。 新发布的重磅项目由字节跳动主导并贡献社区也能很快提升社区影响力。

picture.image

数据湖 团队持续招人,欢迎加入我们!

字节跳动数据湖团队支撑内部所有业务线的数据仓库建设,致力于打造业界领先的 EB 级数据湖。目前大数据引擎、大数据查询、流式计算、大数据架构、数据湖分析等海量岗位招人中, 欢迎与数据湖同事(微信minihippo666)沟通或直接通过下述二维码进行投递!

picture.image

picture.image

产品介绍

火山引擎湖仓一体分析服务LAS

湖仓一体分析服务 LAS(Lakehouse Analytics Service)是面向湖仓一体架构的Serverless数据处理分析服务,提供一站式的海量数据存储计算和交互分析能力,完全兼容 Spark、Presto、Flink 生态,帮助企业轻松完成数据价值洞察。后台回复数字“4”了解产品

火山引擎 E-MapReduce

支持构建开源Hadoop生态的企业级大数据分析系统,完全兼容开源,提供 Hadoop、Spark、Hive、Flink集成和管理,帮助用户轻松完成企业大数据平台的构建,降低运维门槛,快速形成大数据分析能力。 后台回复数字“3”了解产品

picture.image

点击 阅读原文

,获取数据湖招聘岗位信息

picture.image

86
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论