我于10月20号,接受Apache HBase社区邀请,成为HBase Committer。 由于我在小米就是专门负责维护内部HBase分支以及线上集群,再加上之前小米已经有6位HBase Committer,其中一位PMC(项目委员会成员), 所以在这样的环境之下,成为Committer其实是一件特别顺理成章的事情,并没有特别值得骄傲的地方。相比一个在公司做HBase方向但是公司缺乏HBase Committer的同学来说,成为HBase Committer需要付出更多的时间和努力。
下面来谈谈我对社区的一些观察:
首先HBase的PMC成员大部分都是极其活跃的,活跃到什么程度呢,就是一年365天,基本上每天都在为社区贡献,甚至度假的时候只要能连上网,他们也在不遗余力的回复JIRA和邮件。 当然对大部分PMC而言,为HBase社区贡献并推动社区的进步,跟他们所在公司的目标是一致的,但从日活跃时长以及一年的活跃天数来看,他们相比普通的敬业码农,却都称得上是不折不扣的工作狂。
Apache相关社区具有提升机制,例如当一个Contributor提及的代码超过一定量时,就会有PMC成员推荐这位Contributor去当Committer,当一个Committer的贡献达到一定程度的时候,又会被PMC推荐加入项目管理委员会,也就是PMC。同时,Committer和PMC在业界都是能得到广泛认可的,无论从个人职业层面,还是从项目发展方面,这都是一个很好的机制。而Github上的大部分开源项目可能都没有类似的提升机制,所以一个Contributor可能贡献了很多代码,但还是Contributor,这很可能会打消积极性。
HBase社区的代码贡献者来自全球的各个地方,有的人在美国,有的人在印度,有的人在中国。各位贡献者分布在不同的时区内,所以跟进一个问题,可能是今天中国人说了一句话,等到明天美国人才能回句话,接着印度人又提了一些意见,最后中国人觉得不错可以做就开始做了。整个任务的跟进时间可能特别长,所以,做社区的事情一定要有长期跟进的准备。有一些同学跟我聊过,说在公司里面跟进社区问题会不会很耽误时间,其实具体每一天来说,并不需要花特别多的时间用来跟进社区,我工作时间一般还是好好在公司搬砖,下班后会花一些时间用来写社区代码之类的,反正社区跟进也比较慢。
公司和社区关系。小米相对来说比较开放一点,公司管理层面非常鼓励员工积极参与到开源社区,HBase就不用多说,除了HBase之外,贵米也自主研发并开源的一些项目,例如分布式KV存储Pegasus,业界知名的监控系统Falcon等等。这其实是一个好现象,一方面能为公司塑造较好的技术品牌,另外一方面,开源能激发码农的工作积极性,因为码农有一个很好的平台和世界上该领域最优秀的程序员们一起合作,精神层面能到极大的满足。相对应的问题就是社区做的这些工作是否对公司有用,如果是fix bug,必然有用。如果是用不上的新功能,这个确实没有必要花太多精力,因为你觉得用不上的,别人也会觉得用不上。所以,修复Bug加上开发有用的Feature,才是正道。