我是如何成为Apache Kudu committer & PMC的?

小米从2012年开始正式涉足开源,不光积极参与开源社区,修复bug、提交代码,同时逐渐将自研的系统或框架进行开源,前后开源了企业级、高可用、可扩展的监控系统Open-Falcon、分布式 Key-Value存储系统Pegasus、移动端深度学习框架MACE以及智能SQL优化与改写工具SOAR。
编程

小米内部倡导开源、拥抱开源,而开源也是小米工程文化的一个重要组成部分。小米在发展过程当中,也为开源生态作了不少贡献。以HBase为例,小米过去共培养了9位committer和2位PMC member,单2018年,小米就为HBase贡献了306个patch,占HBase全部patch贡献量的23%。Kudu方面,小米前后培养了2名committer。微信

今天咱们就跟最近成为Apache Kudu committer and PMC的赖迎春近距离对话。架构


小编:咱们对Kudu了解很少,方便给咱们普及一下关于Kudu社区及其committer/PMC评选标准吗?

赖迎春:Kudu项目最早是由Cloudera公司发起的一个开源项目,2016年7月成为Apache软件基金会顶级项目。框架


Kudu的定位是提供一个既有媲美HDFS顺序扫描的性能,也同时具备HBase随机读写特性的存储系统,在与Spark SQL或impala结合后,可以提供高性能的OLAP服务。另外一方面,相比HBase、HDFS等Apache项目,目前Kudu项目还算是比较年轻,使用场景也相对小一些。Kudu项目的用户来自全球各地,活跃的项目贡献者主要集中在Cloudera公司内部,国内的小米、蚂蚁金服、网易等公司也有一些活跃贡献者。分布式

同其余Apache项目同样,Kudu项目PMC会不按期评估项目contributor所提交patch的数量和质量、社区建设的参与度,达到必定标准后[pz2] 会在PMC内部发起投票,投票要求至少有数个+1,而且不能有-1,经过后就能够向contributor发起加入committer的邀请了。加入PMC的流程相似,不过有更严格的要求。工具

小编:你是如何成为Kudu committer and PMC member的,小米在开源项目高产 committer/PMC,是有什么培养体系吗?

赖迎春:在Kudu项目进入Apache孵化器以前的2014年,小米就参与到Kudu项目的核心开发了,是Kudu的最先期的支持者之一。小米的常冰琳就是Kudu项目的早期贡献者之一,也是项目元老级committer and PMC member,最近他还翻译了一本介绍Kudu的英文书籍。oop

小米的开源文化是很浓厚的,仅咱们存储平台的HBase项目组就前后培养了9位committer和2位PMC member。我所在的KV系统组的Pegasus项目也在2017年末开源,目前在GitHub上已有1000多个star,咱们也计划争取明年可以进入Apache孵化器。而在我去年第三季度刚开始接手Kudu时,团队leader覃左言就给我设定了中长期目标---成为Kudu项目committer。在这样的团队氛围下,拥抱开源、回馈社区就是天然而然的了。性能

其实当我收到Kudu PMC邀请加入committer的邮件时,是感到很意外的,我本来的计划是至少须要1年的持续贡献。我向社区提的第一个patch是在去年的12月,开始提的bugfix和feature都还比较简单,也是经过由易到难的过程,逐步摸清流程,也逐步体验到这种Apache项目的参与感。后面随着提的patch数量的增多,质量和份量也跟着提高,也可以在开源社区参与一些问题分析和讨论,帮助一些Kudu新用户解决问题。咱们所提的patch都是针对小米公司生产环境中遇到的问题提出的一些改进和解决方案。能将这些心得和经验分享给更多人,同时避免本身踩过的坑别人再踩一遍,这自己就是一种成就感。学习

小编:刚才您提到Kudu比较年轻,现阶段Kudu社区发展的情况怎样?

赖迎春:成为Apache顶级项目后,Kudu社区热度愈加提高,也不断有新特性和性能提高的patch合入,目前每1~2个季度都会有一个次级版本发布。Kudu社区也很活跃,Slack、邮件列表上有来自全球各地的开发者和使用者在上面讨论交流。
大数据

Kudu全球当前一共有22名committer,这些人同时也都是PMC member。

小编:小米是基于什么缘由选用Kudu项目的?有具体的实践案例吗?

赖迎春:Kudu是一个分布式存储系统,采用列式存储格式,使用针对顺序扫描优化的LSM存储架构,使用RAFT来保证高可用。结合计算引擎后,能对外提供类SQL的查询,可以提供快速插入/更新和高效的扫描,很是适合做为须要实时查询的数据仓库。

此外,Kudu支持实时更新和删除行,以支持延迟到达的数据的写入和更新。同时也提供官方的Hadoop套件支持,能很好地融入Hadoop生态圈。

小米对Kudu的使用主要用于OLAP场景,Kudu是小米OLAP服务底层存储系统之一,Kudu在小米的发展也得益于咱们云平台部门存储平台和计算平台的紧密合做。

咱们小米公司做为Kudu项目的早期贡献者,从2015年开始就在生产环境中使用Kudu,通过几年的磨炼,这些宝贵的经验和心得也都传承下来。目前的业务量、数据量、查询量也都稳步增加,是小米最重要的存储系统之一。其中比较大的业务有大数据部的增加分析项目,信息部的数据市集项目等,他们有数千张表,天天有百亿行数据的写入,Kudu给他们提供了稳定可靠的存储和分析服务。

小编:成为Kudu committer and PMC member对你我的有哪些成长?后期有哪些挑战么?

赖迎春:参与Kudu项目的过程当中,除了代码、系统架构之外,还学习到开源项目开发、管理、规范化建设的不少知识和经验,后续也能将这些经验平移到其余开源项目的建设上去,好比咱们本身开源的KV存储系统Pegasus。


成为committer and PMC member是Kudu PMC对我以前工做的确定,是一种激励,也是一种对我将来工做的期许。我本身的感受是有了更强的责任感,是一个开源项目新角色的开始,从此的工做和对社区的贡献也不能由于取得了这一点小成就而有所懈怠。

小编:你给想要成为Kudu committer and PMC member的工程师或者开源项目爱好者有哪些建议吗?

赖迎春:开源项目的思路是相通的,不光适用于Kudu,也适合其余开源项目,个人理解是有三方面:

一、多阅读官方文档和paper,没有涉及和深刻的部分能够阅读代码。

二、多跟社区交流沟通,能够向社区邮件列表发信,或者在官方Slack上提问交流,国内也有比较活跃的微信群。

三、分享精神。有项目经验的能够多提交Patch,数量上来的同时也要保证质量和份量,也能够贡献相关的技术文章,坚持下去,社区会看到你的工做和贡献的。

总之,但愿有更多的使用者和开发者,可以将本身遇到的问题和使用经验分享贡献出来,一块儿把Kudu建设得更美好。

写在最后

小米为何要积极拥抱开源、贡献开源?小米集团技术委员会主席崔宝秋博士曾经表示:

除了要站在巨人肩膀上,还要为巨人指方向。好多开源项目能够拿来即用,不必单独再开发。

此外,拥抱开源有助于提升工程师编程能力。提高一个工程师代码水平和编程能力很好的方法就是读大量代码,大量的开源代码能够迅速提高工程师技术水平,也能够提高工程师文化,让你们喜欢技术、喜欢开放。在这个过程当中,业务上的代码质量和工程文化也会获得提高。最重要的是,当整个工程文化为公司发展、工程师我的成长带来便利时,更多的人才会加入咱们。

最后,小米还在招各类工程师,想要加入咱们,点击了解☞☞来小米,一块儿搞大事!


本文首发于公众号“小米云技术”,点击阅读原文

相关文章
相关标签/搜索