第446期|做出一个Apache开源项目是种什么样的体验?
卖桃者说
讲述:李佳大小:10.15M时长:11:07
你好,这里是卖桃者说。今天想跟你分享一个关于开源的故事。
2019 年 8 月 29 日,ETL 调度工具 Dolphin Scheduler 正式加入 Apache 孵化器。在这之前,中国一共有 16 个开源项目在 Apache 中,但成功的都是 BAT 级别的大厂,或者清华等知名院校,只有 Dolphin Scheduler 出自一家不是以技术起家的中型公司易观。
今天,我们就跟你分享一下易观 CTO,也是 Dolphin Scheduler 的发起人和 PPMC 郭炜,是如何带领团队把一个开源项目申请进入 Apache 的,以及他在这个过程中的收获。这是一个“屡战屡败,屡败屡战”的故事。
实际上,Dolphin Scheduler 不是易观第一个开源的项目,易观第一个开源的项目叫 Backquarter,是一个跨云的 Kafka 同步的程序。
当时,完成这个程序开源以后,郭炜和他的团队都很得意,甚至还特意给它起了一个名字叫“Backquarter”(四分卫),寓意是希望这个工具就像是橄榄球赛场上的四分卫一样,可以抢到球,并快速带着球稳定地传送给前锋。除此之外,还专门为了它去 QCon、CIO 论坛等地方大肆宣传了一番,结果“一顿宣传猛如虎”,最后只带来了 13 个赞,12 个 fork。
问题是直到现在已经过去 5 年多了,仍然还是当年那 13 个赞,12 个 fork。
于是郭炜就开始反思,“我们一腔热血,每行代码都付出努力,还把它开源了,为什么没人用呢?问题到底出在哪里?”为此请教了无数人。
有一次,他请了几位大咖边吃火锅边探讨,一个产品大咖指着火锅说,“你知道为什么火锅可以流传 1700 多年么?它就是一个产品,有自己的核心理念和调性,热气腾腾锅子,精髓的羊肉、麻酱,还方便易做。而你的东西只是一炉子炭,就不是一个产品,你的产品理念是什么?没有明确的产品理念,谁会一直用你这个东西?虽然开源不付费,但是同样需要别人付出努力来使用你的产品,没有产品理念,你就用炭炉子烤个手就算啦。”
这一番话让郭炜恍然大悟:“原来,开源不光是贡献代码,更需要具有产品的核心理念和‘调性’。”
GitHub 上有成千上万个开源项目,如果大家关注项目的最新更新时间,你会发现大部分项目都“烂尾”了。实际上,开源不是只把代码放上去就可以了,开源要有产品的调性,才可以有生命力,像火锅一样有号召力,就像 Clickhouse 社区的宣传语一样——“Clickhouse 引擎就是快”,或者是像 Dolphin Scheduler 的口号“工具选得好,下班回家早;调度用得对,半夜安心睡”一样,永远要有一个有明确的产品核心理念和“调性”,让它可以一直传播、召唤同道者加入你的阵营。
开源,产品也是基础。
吸取了这次教训,半年后,郭炜和他的团队基于自己的使用场景,精心打磨了一个 API-Gateway 开源组件 Kong-plus。它是基于 Kong 二次开发,具有良好的功能和操作界面,可以帮助小白用户迅速地建立起一套高并发的 API Gateway。立意明确,调性也是更贴近小白用户,界面都专门找 UX 设计了一下。
之后,他们又传播了一下,结果还是只有 9 个 star,7 个 fork。
这让郭炜非常失望,一度怀疑自己没有做开源的基因,用了公司这么多资源,却什么都没做出来,感觉都可以“洗洗回家睡”了。
于是,他找到了自己的好朋友——Apache Kylin 的创始人 Luke 聊天。Luke 对他说:“开源是什么?你没有开发者,怎么能叫开源呢?开发者是土壤,开源代码是小芽,没有土壤,芽也会枯萎的。你的代码别人是读不懂的,你需要做好文档,做好社群运营,有土壤了,你的芽长大了才可以长成参天大树。”
这一番话再次让郭炜恍然大悟:“开源,不是代码开源,真正的开源,是你找到你的第一个开发者,而我们从来没有运营过开发者。”
这也和后来 Apache 的宗旨“Community Over Code”一脉相承,代码烂了可以重写,社区太差,再好代码也会付之东流。
于是,为了让自己的“芽”有好土壤,他开始带着一群程序员做了各种各样的社群、Meetup、Clickhouse、Presto、Hbase……他回忆道,“当时圈里的小伙伴一度都觉得我是不是疯了,是不是要做个大数据峰会跟 QCon 分杯羹。”
这一做就是 3 年,有些很成功,有些不成功。回顾这 3 年,一边给社区做贡献的同时,郭炜也收获了 3 个重要认知:
第一个就是社区贡献,真的可以不懂代码,但是你要持续贡献。像 Clickhouse,用郭炜的话来说就是,“我真的看不懂俄罗斯黑科技 CPU 指令集的那些代码,但并不妨碍我作为 Clickhouse 中国社区组织者的和推进人。现在连 Linus 大神,都说他已经不是程序员,而是激励他人开发的鼓励师了。”
第二个就是运营社区,你要尊重给你社区扔臭鸡蛋的人,因为他们正是需要你,才会在社区里有不同的意见和声音,爱和恨都是强烈的情感,而冷漠不是。开源社区最怕的是,邮件列表和微信讨论群没有人说话,所有人都很冷漠。没错,就是“9 个 star,7 个 fork”的那种状态。
第三个就是开源社区可以看做是土壤,它需要产品经理、开发者持续加料,持续地贡献,开源这颗小树苗才可以长成参天大树,凝结出果实,让更多的人可以分享。
有人说,“在中国,只有免费,没有开源。” 中国只有 16 个项目在 Apache,而且都是大厂在支撑的,民间没有开源精神。很多人来了把树就锯走了而不去耕,所以在中国做开源都只有“雾霾天”。
郭炜并不相信这个说法,他相信的是这一代年轻人,不仅仅是程序员,而是越来越多的人,愿意参加到各行各业的非盈利团体当中去,贡献自己的想法、代码、知识,让这个世界变得更加美好。
带着这个信念,他想要去挑战一下世界顶尖的开源社区——Apache 社区。2017 年,郭炜在招聘公司核心架构师高俊时,和他立下宏愿说,“我会持续支持开源,总有一天我们的开源项目也会进入 Apache 的。”说得很美好,但是要进 Apache,谈何容易?
它不仅对项目理念、架构要求很高,更要“Community Over Code”,在中国这个“开源雾霾天”下,究竟能有多少个蓝天呢?
郭炜和他的团队筹备了 1 年才把这个 ETL 调度工具 Dolphin Scheduler 开源出来,Luke 知道后就问了他一句话:“顶级的开源项目可能是一辈子的事情,他需要你持续贡献,而不是你一时兴起,你准备好了么?”
你参与主导的开源项目,它不像是比赛,赢了 Apache 就完事了;更不像是工作,还能跳槽,退休一说。
听完之后,郭炜思考了很久,最终确定自己准备好了。他相信哪怕这一代人看不到开源的蓝天,下一代看到的也不应是开源的“雾霾天”。
于是,他带着小伙伴们一起奋力拼搏,找到种子用户,用心服务,用心呵护这颗小树苗。让用户用上这个开源调度工具之后,真的可以安心睡觉,然后心存感激地去 GitHub 上去点一个 star。就这样,终于 Dolphin Scheduler 的 star 涨到了 2500 多,也有 20 多个开发者愿意加入他们。
就在郭炜以为这样就可以达到 Apache 标准的时候,前方又出现了一只拦路虎。
进入 Apache 最重要的是找到一个 Apache 的 Champion,他是一个 Apache 的 Member,你需要让他相信你这个项目的团队有 Apache 的基因,以此用他的信誉为你背书。
这个难度非常大,为什么人家能够相信你能把这个项目一直坚持下去呢?过去,你的公司没有一个成功的 Apache 项目。而你的公司也不是像那种大厂的公司,凭什么说你的项目不会因为公司战略要求而被废掉呢?连续三个月,郭炜都没有找到合适的 Champion。
就在他以为又要失败的时候,过去 3 年对各种社区的持续开源运营,给他们带来了社区大咖的认可,最终找到了相信他们的 Champion,带着做好计划书,开始进入 Apache 社区投票程序。
现在回忆起来,给郭炜印象最深刻的就是这个投票程序。“电影《美丽心灵》中有一个场景,就是纳什在诺贝尔奖投票的时候,在瑞典的国家会堂,有一个科学家邀请他走进会议室,让他坐这里,看着全球顶级的科学家们走过来给他投票。第一个科学家,拿着一支钢笔,放到他的面前,对他说‘Congratulations’,接着第二个顶级的科学家走过来,把自己的钢笔放在他的面前,也对他说‘Congratulations’一样的,Dolphin Scheduler 进入 Apache 投票的那一天,我看到全球顶级的架构师、工程师和大咖们,在看了我们的 Proposal 和项目之后,用邮件里面不断地在回复‘+1’‘+1’‘+1’‘+1’……在那一刻,我觉得以前所有经历都值了。我们拨开了这一片雾霾,看了一小片晴天。”
兴奋过后,其实更多的是责任。郭炜表示,开源,那是一辈子的事情,进入 Apache 社区,只是一个开始。
听了这个 Dolphin Scheduler 屡战屡败,屡败屡战的故事,你能想到什么呢?简单总结一下:
开源,产品是基础,要像火锅一样来凝聚你的开发者;
开源,社区优先,“Open Source Starts With Your 1st Contributor” ;
开源,它是一种精神,它是一个一辈子的事情,它不需要你灵光一现的天才代码,而是需要你不断地坚持和迭代。
开源,它本就不是天才的甜点,而是勤奋者的盛宴。
在中国,开源的时代正在觉醒,它需要大家,我们这一代开源人的不懈努力,才可以让开源精神,在中国,拨云见日,遍地生花。
以上就是郭炜带着他的团队,把 Dophin Scheduler 送进 Apache 的故事,希望能对你有所触动。
卖桃者说,明天见。
(策划:TGO 鲲鹏会;编辑:夏天)
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- 张浩_house看到这里参与开源社区,也是之后自己的方向,从star项目开参与社区邮件回复,提交相关优化翻译等开始,在大厂还是很看重社区贡献了,做为apache z之类的committer 本身就是一张很好的名片值得我们参与,与全世界优秀程序员一起工作一起学习,更重要的是带给你从代码规范,项目架构,英语能力的提高,对个人成长是非常有利的事情10
- 古娜拉黑暗之神工具选得好,下班回家早;调度用得对,半夜安心睡4
- bendan0927做为DolphinScheduler的初始贡献者和ppmc,我为能找到这样一群志同道合的朋友而高兴。
- 蓝蓝长见识了
收起评论