近日,全球最大的开源基金会 Apache 基金会的大数据开源社区 Hadoop 公布了最新一批 Committer(核心贡献人),爱奇艺大数据团队的朱琦同学接受 Apache 社区邀请,正式成为了 Hadoop Committer 的一员。
朱琦从 2018 年开始为 Apache 社区贡献,被 merge(合并)过超万行代码,这也是爱奇艺首位 Hadoop Committer。
来自 Apache 的邀请邮件
成为一名 Hadoop Committer 需要哪些品质?又有哪些责任?如何在开源工作和日常工作中寻找平衡?就这些问题,我们和朱琦聊了聊,深入了解了在爱奇艺,一名年轻的 Hadoop Committer 如何炼成。
Apache Hadoop Committer 如何选出?
对于不太熟悉的同学,我们可能需要先解决几个问题。什么是 Apache Hadoop?Committer 又是怎样被选出来的?
了解大数据领域的读者对 Apache Hadoop 肯定不会陌生,这款开源软件的分布式应用程序根据谷歌公司发表的 MapReduce 和 Google 论文自行实现而成,目前已经是全球最受欢迎的的大数据开源软件框架之一。
Apache 每个项目会安排相关委员会(PMC)和若干 Committer。选举方式和组织结构都比较明确。Committer 的主要责任是维护项目持续发展,比如项目新功能的开发,提出新的功能作为发展趋势,除了可以直接提交代码,还可以一票否决任何一个 Patch。
Hadoop 作为全球最“数据中心的操作系统”,对代码质量要求比较高。因此要成为一名 Apache Hadoop Committer,你首先必须要对社区已有开源代码和结构设计有深刻理解。因为 Hadoop 涉及到不少分布式计算里相对复杂的概念,完全理解现有设计和代码已经是一件很不容易的事情了。
此外,成为 Committer 还要在至少一个大的 feature 方向上是主力贡献人,这一点主要是通过被项目合并的代码数量体现,也就是说,对 merged 代码数量上有一定硬性规定。
Hadoop 作为大数据底层的支撑项目,一般改代码量不会很多,这就意味着,贡献者不仅要有过硬的代码技能和专业知识,还得真实解决过社区的项目问题,才能被 PMC 提名,获得入选机会。朱琦告诉我们,他在当选 Committer 之前,目前已经有超过万行代码被社区合并。
目前,全球共有 230 多位 Hadoop Committer,其中来自中国的 Committer 有十余名。
从非计算机专业,到 Hadoop Committer
虽然还很年轻,但朱琦在开源社区的工作经验已经非常扎实了。朱琦本科主修化学材料,因为选修了一门程序语言设计课程对软件行业产生了浓厚的兴趣,于是在研究生阶段直接转到了计算机相关专业。虽然专业不是大数据方向,但他一直对大数据特别是 Hadoop 非常感兴趣。
工作后朱琦开始接触 Hadoop 项目,加入爱奇艺后在智能平台部门承担与大数据相关的工作,也因为工作原因,对一些大项目的底层源码研究很多,日积月累积累了看代码的能力。
图 2:朱琦生活照
“(代码)的输入非常重要,要输出必须要有输入。作为开源社区贡献者的前提是有输入,得理解了原先代码的逻辑,才能输入开发改造新的模块,才能有积累。”朱琦表示,“接触开源社区最开始是作为 Contributor 做一些贡献,从发现小问题、流程化的东西开始研究。慢慢把流程搞懂之后,就可以开始深入代码了。”
在积极参与开源社区的过程中,朱琦自己也收获了很多。从作为一个参与者可以了解一个顶级项目的发展触类旁通,到现在成为 Committer,为社区的其他成员和社区发展解决了不少问题,也研究了很多代码。“现在去其他项目也比较能了解代码逻辑,也可以为公司各个大数据项目做贡献。”
在公司中,朱琦也发现,越来越多的同学开始参与到了开源项目中,一起深入了解各个项目。“这一方面也能反馈给公司底层部门,比如大数据相关内容,维护能力就变强了,另一方面可以提升成本优化和性能优化,减少公司实在支出,提升用户体验,更有利于平台推广。”
爱奇艺持续建设开源文化,回馈社区
这些年,爱奇艺一直非常重视开源文化的发展,成立了开源工作组,发布了规范的开源项目流程,致力于建立规范、有序、安全的开源体系架构,鼓励项目内部、外部开源,增强技术交流,提高研发效率。
爱奇艺自己的一些业务实践探索,也会积极回馈到开源社区中,解决了不少开源社区中的项目问题。以朱琦所在的大数据团队为例,爱奇艺大数据架构和开源社区始终保持同步良性发展。
“比如爱奇艺最近紧跟社区对 Hadoop 相关的架构进行升级,针对新的 hadoop 项目去做测试,这个过程中就会出现一些问题,爱奇艺自己出现的问题就会回馈社区,一方面可以回馈社区,另一方面也解决了社区问题。”
基于 Hadoop 的开源内容,爱奇艺自己的业务改进已经有不少合入了社区,已经 Merge 了 Hadoop 相关的部分包括:CS 调度器统一 FS 的兼容性,全局调度优化,GPU 资源相关的优化,大规模集群事件驱动的优化,弹性伸缩队列,Proxy server 优化,Router Based Federation 问题修复和优化,等功能。
和朱琦一样,爱奇艺中不少员工也都是开源社区的积极参与者。他们在开源社区中贡献代码、解答其他社区参与者遇到的问题,维持社区的正常、有序运转。
朱琦对此深有感触,“Apache 发展十几年,就是因为有不同的用户和开发者,良性维护生态,共同交流互动。大家一方面在这里交流经验,解决自己遇到的问题,另一方面也可以从别的公司或者开发者提出的相关问题中吸收经验,防范于未然。”
从入门到终极,开源进阶攻略!
亲历了开源文化近些年在国内的发展,朱琦也颇为感慨。
“之前开源其实没有这么火热,大家对开源的理解就是借来用,不太愿意贡献和参与其中,但也存在不少问题。很多公司没有使用开源项目,是闭源的,相关研发人员离职,代码就有很多历史包袱。现在开源已经是一个大趋势,对公司来说,现在国内外各个互联网公司,特别是爱奇艺内部工程师文化建设中,都越来越重视开源文化了,通过开源,不仅公司的项目也会越来越好,贡献者本身也可以从中获得很多。
最后,朱琦也对想要入门开源文化的同学,给出了一些从入门、进阶到终极的建议。
入门
熟悉开源项目的贡献流程,各个项目都会有 how to contribute 的文档。
从小的问题着手开始贡献,例如代码中的拼写错误,项目文档的改进,小的 bug 的修复。
进阶
能够对项目在生产环境产生的问题,或者社区用户遇到的问题进行修复,性能优化等。
终极
对于项目的重大 feature 的设计文档进行理解,甚至参与设计文档,然后根据项目架构进行添加子任务进行开发贡献。
“总体来说,开源社区贡献是一件需要持续花费时间和精力的事情。从吃透一个模块开始,逐渐深入,多贡献,也多参与问题讨论和 review 代码,祝大家都能在开源社区走得更远更好。”
本文转载自:爱奇艺技术产品团队(ID:iQIYI-TP)
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论