池建强的公开课

讲讲咱互联网行业自己的故事

个人成长,观点,认知, 软技能

池建强 极客时间创始人、墨问西东创始人

第446期|做出一个Apache开源项目是种什么样的体验?

讲述:李佳 大小:10.64MB 时长:00:11:07
00:00
1.0×

你好,这里是卖桃者说。今天想跟你分享一个关于开源的故事。

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 鲲鹏会;编辑:夏天)