一名开源拓荒者的 Apache 之旅
作者:陈亮 | 编辑:舒敏
今年是 Apache 软件基金会20周年庆,作为一家全球性的以开发开源软件为公共利益的慈善组织,正在变得更加的多元化、日渐丰富与完善。从本土软件产业的角度而言,须以站在世界的角度来认识、参与、贡献,进而领导,让更多的人受益。从个人而言,就是要经历观察、学习、奋斗、参与的过程。
目前 ASF 全球活跃成员(Member)有700多名,其中华人约有28名,目前住址在中国的有 10 位(其中今年新当选 6 位华人里住址在中国的有 3 位)。这三位来自中国新当选的 ASF Member 分别是陈亮,堵俊平(请参考开源社公众号4月18日发布的文章),张乎兴。
今天为大家推荐的故事是新当选的 ASF Member - Apache CarbonData 项目委员会主席 - 陈亮,这是一个关于本土开发者成长的历程,一个让我们从中看出崛起与趋势的走向。
Apache CarbonData 作为本土企业里第一个捐赠给 ASF 的开源项目、第一个走入 ASF 孵化器、也是第一个从 ASF 孵化器顺利毕业成为顶级项目的本土开源项目。作为一个本土大企业内第一位开路先锋的筚路蓝缕、披荆斩棘正是点滴在心头,如今贡献社区成就自身,当选为 ASF Member ,可谓是实至名归。以下陈亮将为大家娓娓道来。
陈亮简介
2005年加入华为,一直从事大数据和 AI 相关的研发工作,对开源软件有深入理解。
“下面以华为云 EI 布道师身份给大家分享下我的 Apache 故事。”
01
—
很高兴2019年4月受邀成为全球最大开源社区 Apache 软件基金会的 Member ,
ASF member 与 Apache 项目 PMC/Committer 主要的区别是,前者是参与基金会层面的事务,后者是具体项目层面的事务。
今年也是 Apache 基金会成立20周年,为帮助中国更多的项目和个人参与到 Apache,社区朋友建议我抽空分享下我的 Apache 故事和经验。
我的 Apache 故事与华为的 Apache 相关的大数据开源历程几乎一样,在华为很难找出第2个人,像我这样全程参与了整个工作。
02
—
2011-2014年我被外派到华为印度研究所,负责软件平台工作,当时根据印度员工两个优势(语言+软件),公司将大数据开源相关业务交由我的团队负责。华为在 2012 年 HBase 峰会上,分享并开源了 HBase 二级索引方案 hindex
https://github.com/Huawei-Hadoop/hindex
这在业界引起极大的反响和关注,有人认为,如果华为早点公布这个方案,HBase 多列组合快速查询的问题早就解决了。
我是在 2012 年开启了 Apache 之旅,开始研究开源文化和 Apache Way 的精髓,下面这些理念,我个人比较认可,分享给大家,摘自艾里克.斯蒂芬.雷蒙《大教堂与集市》,“只要眼球足够多,所有臭虫都好捉”,开源软件和开放性内容兴起的背后是社会信息结构变革。技术和知识在公共领域的畅通促进发展、公平和机遇,破除与经济和政治权力绑结的知识垄断。然而草根能量需要一个健康的进化机制来真正推动社会的进步,其中核心是知识生产和传播的可靠性、可信度。
03
—
几乎所有知名的大数据开源软件全在 Apache 基金会下管理,每天社区都在发生很大的变化。华为是业界最早提供大数据套件发行版厂商之一,为了给客户提供稳定可靠的大数据软件,我们积极参与 Apache 大数据项目的内核特性开发,并贡献回馈到开源社区,多次在华为公司园区内组织 Apache 项目线下技术交流(2014年与陈超@七牛云技术总监,一起组织了杭州第一次 Apache Spark 技术 Meetup)
2016年华为将研究开发多年的大数据项目 CarbonData 开源,并捐赠给 Apache 软件基金会,进入 Apache Incubator(孵化器),经过来自华为、Intel 、Talend 、交通银行、上汽、携程等众多公司架构师和开发人员的努力,CarbonData 经过不到一年的时间,于2017年4月顺利地由孵化器毕业,正式成为 Apache 社区顶级项目,并由我本人担任此项目的 PMC Chair(项目委员会主席)。在此要特别感谢3位 Apache mentors(孵化项目导师 - 法国人 JB,印度人 UMA,印尼裔 Henry)对 Apache CarbonData 项目的贡献和帮助。同时也要感谢 Apache Kylin 项目负责人 Luke Han (韩卿),前期给了不少指导。这几年参与 Apache 项目,积累了大量经验,希望可以帮助到更多项目进入 Apache 孵化,回馈社区。
由于端到端负责过 Apache 孵化项目,且参与过多个 Apache 社区项目(Hadoop 、Spark 、Flink 、Hive等),我很快被 Apache Incubator(孵化器)接纳为 PMC 成员。除了未曾担任 Apache 基金会的 Board Member 和 Officers,基本上 Apache 其他所有的角色,我都担任过。
(User->Contributor->Committer->PMC->PMC Chair->Member->IPMC)
04
—
Apache Way 总结:
开源项目到 Apache 的关键路径:
Apache 、Linux 开源社区的对比分析:
本人总结的一套 Committer 脚本:
git clone
https://git-wip-us.apache.org/repos/asf/projectname
cd projectname
git remote rename origin apache
git remote add github
https://github.com/apache/projectname
git config --local --add remote.github.fetch '+refs/pull/*/head:refs/remotes/github/pr/*'
git fetch --all
git checkout -b pr-1062 github/pr/1062
git rebase -i apache/master (-i squash some commits.)
pick fda59df commit 1
squash x536897 commit 2
squash c01a668 commit 3
(This means, you take the first commit, and squash the following onto it)
git log -- get the commit info
git checkout apache/master
git cherry-pick 0e1c3b09ccc3493ca50a0a41ae993260a9a30493(To be merged PR's commit info)
git commit --amend -m "PR title" -m "PR description" -m "This closes #1062"
git push apache HEAD:master
05
—
早期国内有 Apache 孵化项目经验的人还比较少(2015年时只有 eBay 中国研究院的3个 Apache 孵化项目),不像现在这么多(目前源自中国的 Apache 顶级项目有8个,Apache 孵化项目有6个),有些问题可以直接问,少走弯路。当时 CarbonData 在孵化时,也碰到了很多问题和挑战,解决问题的办法就是去仔细阅读 Apache 官网的规定,以及去学习社区 Mailing list(邮件列表)大家曾经讨论过的问题。
在 Apache 社区绝大多数人都是很 OPEN 和 NICE 的,当有人对你的项目提出问题时,其实别人是在帮助你的项目,切记不能用带着情绪化的语言去回复和争吵,且回复时就在公共的 mailing list 里公开答复。(之前有一个例子,项目成员私信去和提问题的人确认问题,最后被人家拿出来说事,被质问为什么不在社区公开讨论,结果囧大了!)
参与 Apache 开源社区,确实要花很多时间去做贡献,但相比收获、学习到的知识、朋友、人脉等,一路走来,绝对值得!
下面有惊喜哦!!!
社区福利(数量有限,仅限前50名):如想获得华为云 ModelArts 免费云资源使用券,可以联系 chenliang613@apache.org 。(ModelArts 是面向AI开发者的一站式开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流)
社区福利