摘要: Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注、一百多人参与贡献的超级项目。

梁飞在 2011 年开源 Dubbo 这个项目的时候,完全没有想过,Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注、一百多人参与贡献的超级项目。在自己退出这个项目多年后,Dubbo 仍在野蛮生长,并焕发新机。

从商业公司开源出去的产品会变成什么样?开源是否一定要按照某种既定的方式去生长?还是说开源的世界有足够的包容性、开放性,能够允许各种各样的创作在其中成长?且看本次二叉树——Dubbo 项目的故事。

嘉宾简介

梁飞(虚极),2009 年加入阿里巴巴,负责中间件的开发,Dubbo 开源分布式服务框架作者,HTTL 开源模板引擎作者,QCon 优秀出品人。 2012 年加入天猫,负责手机天猫 APP 的技术团队,见证了天猫双 11 无线化全过程。热衷参与开源社区建设,传播服务化,SOA,框架设计,移动应用等架构设计理念。

Dubbo 项目诞生于 2008 年。梁飞最早进入阿里的时候,Dubbo 项目还没有 Dubbo 这个名字,那时的 Dubbo 还是一个阿里内部的系统。2010 年,Dubbo 项目进行了重构。

“2009 年下半年主要在修 bug,到了 2010 年初的时候觉得这个架构实在是不堪重负,觉得改起来太痛苦了,于是就重写了。”

从 1.0 进入 2.0,梁飞推动了大量的工作,同时继续在 JavaEye 写着他的博客。

“写博客对你有什么影响?”

“在社区里面看别人的博客,他们也在写一些开源软件,大家互相看博客,然后就认识了。推荐我来阿里的朋友就是当时圈子里认识的。”

2011 年的阿里,憋了一股劲儿要成为一家技术人向往的企业。那个时候,开发者刚刚成为国内各大厂商争相夺取的宝贵资产。靠什么吸引最顶尖的开发者?黑客文化。工程师文化。开源文化。

“那时候公司觉得要做一些开源的事情,一个是反哺开源界,同时也希望通过开源来提升公司的影响力。”

当时在淘宝、在阿里 B2B,都有团队在推动开源。阿里 B2B 这边决定先拿 Dubbo 项目开源出去。

“大概在 2011 年初做了很多剥离的工作,也把文档做了梳理。我们并没有做很强的推广,我们自己在技术群里发了一些文章,就有人开始在用了。”

“那个时候的团队多少人?我看到你们有一张六个人团队的照片。”

“人员的变化还是挺多的,六个人是顶峰时期,是我们知名度上来之后加入我们的。我们平时开发基本上就是一到两个为主。”

“有外面的人来贡献代码吗?”

“有很多人给我们贡献代码。还有很多公司请我们来跟他们讲。”

“还有公司问说能不能我们付一点钱,这样的话他们觉得出了问题可以找我们。”

“但是我们当时没有这种机制。”

一年时间很快过去了,Dubbo 的用户越来越多,有知名汽车厂商、证券厂商、水泥厂商、电器厂商、电商厂商。

“当时来这么多公司,在你的预期之内吗?”

“超出我的预期。”

就在这个时候,发生了一件大事:阿里巴巴集团要强化 One Company,开始进行架构调整。技术层面,整个公司大统一,就希望不要重复建设,但凡相同的项目都要合并。

当时的淘宝有一个项目叫做 HSF,也是一个中间件服务框架,跟 Dubbo 做的事情高度重合。

“一开始说可以让 HSF 合并到 Dubbo 里面来,给了我们三个月时间要把它们整合起来。”

HSF 项目的作者林昊(毕玄),也是当时国内 Java 领域的知名技术领袖。在 OSGi 非常流行的时候,毕玄可能是国内能够把 OSGi 解释的最清楚的人之一。

HSF 和 Dubbo,虽然做的事情高度重合,但是设计理念不怎么一样,虽然有些碰撞,但最终目的还是为了“强强联合”。

“合并的时候,整个淘系都在用 HSF,而阿里金融、集团、B2B 都在用 Dubbo。”

“时间没有达到预期,还是没合并起来。但其实我们把两边的协议都兼容好了。”

“后来就决定反向合并,把 Dubbo 合并到 HSF 里面去。”

“你当时觉得应该合并吗?”

“我觉得协议能互通是有好处的,并不是坏事。我觉得他们做的挺好,把两边的设计理念全部整合在一起了。”

不久之后,Dubbo 团队调整,去到了各个地方。从外面看来,Dubbo 项目从 2014 年之后就再也没有更新过。倒是当当网开发的扩展版本 Dubbox 后来持续发展,被圈内人评价为“墙内开花墙外香”。

“你会不会觉得建立共识是一个特别困难的事情?”

“我觉得任何东西必须要有一个主导,但这个东西其实没有对错。一个设计是没有对错的,有些人可能就是不会认同你这个共识,但你总是能找到认同你共识的人。”

“我就是认为越简单越好,我的设计原则就是一定要实用。增加的复杂度越小,能带来更大的收益,我觉得就值得。”

“那么,你要怎么吸引那些能够认同你的人到你的身边来?在他们还不知道你的时候。”

“我会去其他团队认识人,或者在圈子里面认识人,我会跟他去聊我的理念,我会去分享。有人特别认同的话,他就会来。”

就在所有人都以为 Dubbo 项目已经没有未来的时候,事情又出现了变化。

2017 年 9 月,就在项目已经将近 3 年没动静的时候,Dubbo 连续发布了好几个新版本,并且开始在内部招募对 Dubbo 感兴趣的同事。新版本背后的主力开发团队是阿里巴巴中间件团队,其中一个重要的人名叫北纬,他从 2017 年 7 月开始接手 Dubbo。在一次对外公开的采访中,北纬说到:

“我对 Dubbo 的了解主要来自梁飞在 JavaEye 的系列文章,再通过自己阅读源码,以及在内部 RPC 框架对 Dubbo 兼容的工作中学习所得。”

梁飞曾经在 2015 年写过一个继续推动 Dubbo 的规划,找了很多人聊过:找过开源委员会,找过内部的朋友,找过外面的朋友,希望能共同把这个事情继续推起来。但是,梁飞已经没有那么多时间可以投入到 Dubbo 上。他当时在做天猫客户端。

“不管是谁,靠一腔热血都很容易凉掉。”

有的开源项目,通过志愿者们投入各自的业余时间活下去。但我们应该要求所有的开源项目都能做到这一点吗?事实上,用户也不会愿意将自己重要的东西跑在单纯靠志愿者们的业余时间堆砌起来的项目上——尤其是企业用户。

Dubbo 是中间件项目,用户一定是企业。企业用户宁愿花钱,有人给他提供服务,而不是搞来一堆免费而没有保障的东西,自己为所有的问题负责。

Dubbo 的转机,在于阿里云的流行。

2017 年的阿里云,发现有一批客户上云之后,想要用 Dubbo。因为他们 Dubbo 已经用的很熟了,不想因为上云而被迫改变自己的使用习惯。

于是,阿里云就把 Dubbo 服务作为自己的一个产品,卖给了这些客户。

但是,客户们又提出了一个问题:

“你看你们 Dubbo 都不怎么更新代码了是吧?你们自己都不维护了,我们用你的框架就觉得特别不放心。”

这下好了,真正的客户提出要求了。提升客户对 Dubbo 的信心,成为了一件在公司层面有价值的事情。

“怎样提升客户对 Dubbo 的信心?”

“让它进一步升级。”

“最好的办法是什么?”

“捐给 Apache。”

北纬带动着他的团队,将 Dubbo 项目捐给了 Apache。2018 年初,Dubbo 项目正式进入了 Apache 的孵化器。

一边是 Apache Dubbo 重启后的第一个里程碑版本 2.7.0 进入社区投票阶段,并将作为社区的毕业版本;另一边,Dubbo 正在从一个微服务领域的高性能 Java RPC 框架,演进到微服务框架 Dubbo Ecosystem,打造出一个完整的微服务生态。而此时,距离去年 Dubbo 重启仅过一年有余。

我们去找到北纬,希望他聊聊 Dubbo 的未来。北纬说,还是让梁飞跟我们多讲讲。

“你觉得什么是开源的精神?”

“开源的精神,就是大家的智慧能共同成长。”

“你觉得中国的开源现在有哪些做得好的地方和不足的地方?”

“我觉得中国的开源最缺对社区的重视,很多都只是把代码 push 出来,有些甚至连文档都不完善,好像人家爱用不用,出了问题也不是我的事。但这可能是一个初级阶段,慢慢会成熟起来。但我觉得好的地方就是,大家都相信开源的力量。”

“您会不会觉得中国企业做开源,功利心特别重,光去看这个东西是不是有用?”

“输出技术影响力是吧?我觉得一个开源社区要能够一直运作下去,而且能跟上时代的潮流,其实是要与时俱进的。我觉得做开源,就是期望这个东西一直有生命力,这个作品能够活多久应该作为它的核心目标。”

“那您觉得 Dubbo 还能活多久?”

“我觉得技术的革新其实挺快的,不革新的话,就有淘汰的危险。但是在这个节点上进行一次革新的话,我觉得它还有很长的生命力。”

“那是什么样的革新?”

“任何技术一定是没有终点的。没有任何架构能解决现实中所有的问题,而任何一个架构去解决前面的问题的时候,一定会带来副作用,然后就需要下一个架构去治理。这个探索的方向是没有止境的,但只有你到达了一个阶段,你才能够去想下一个阶段的很多事情。”

“回到原点,十年前的选择一定是最正确的吗?就算当时是最正确的,现在也不一定正确对吧?因为时代在变化。如果我们今天从零开始,我们有没有更好的选择?有时候我们背了十年的包袱,反而不敢行动了。但我希望我们下一代演化的时候,我们能够提出一些颠覆式的理念,真正革新的解决我们现在面临的问题背后的那些问题,而不是头痛医头脚痛医脚。这是我们期望做的事情。”

如常,早上 9 点多,梁飞打开邮箱,关于 Apache Dubbo 重启后的第一个里程碑版本 2.7.0 的讨论邮件还在 mailing list 里热烈进行着;另一边,Dubbo 正在从一个微服务领域的高性能 Java RPC 框架,演进到微服务框架 Dubbo Ecosystem,打造出完整微服务生态。而此时,距离去年 Dubbo 重启仅过一年有余。



本文作者:二叉树

阅读原文

本文来自云栖社区合作伙伴“InfoQ”,如需转载请联系原作者。

Dubbo作者亲述:那些辉煌、沉寂与重生的故事相关推荐

  1. Dubbo作者亲述:那些辉煌、沉寂与重生的故事 1

    摘要: Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注.一百多人参与贡献的超级项目. 梁飞在 2011 年开源 Dubbo 这个项目的时候 ...

  2. 吴恩达亲述:如何高效阅读论文,开启一个新的领域!

    AI 圈的朋友应该都知道吴恩达的大名,为了防止一些萌新还不知道,本菌这里先做一个简要的介绍. ​ 吴恩达(英文名:Andrew Ng),是斯坦福大学计算机科学系和电子工程系教授,人工智能实验室主任,人 ...

  3. 被拒13次,博士五年未发论文是什么体验?美国计算机Top10大学博士亲述心路历程|然后,剧情反转了……...

    金磊 整理转载自 少十七  量子位 报道 | 公众号 QbitAI 不久前,量子位转载报道了<博士生学历真的很重要吗?>,引起了大量关注和热议. 不少盆友表示有被燃到,备受鼓舞. 然而,现 ...

  4. 万字长文 + 30min音频,缩编并亲述《启示录:打造用户喜爱的产品》

    今年早些时候,和在行分答合作,缩编并亲述了<启示录:打造用户喜爱的产品>,从豆瓣看,这绝对是目前国内产品领域最叫好也叫座的一本. 真正的产品经理会看<启示录>全书,所以音频更多 ...

  5. Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗?

    Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗? 朋友在某大型互联网公司担任架构师.刚毕业那年,他以外包的身份进入了某度,那个时候几乎每一天都很焦虑,大家技术能力没差太多,为何我是 ...

  6. 普华linux证书怎么样,来自一位普华二本学姐的亲述:“四大”真的看重证书么?...

    原标题:来自一位普华二本学姐的亲述:"四大"真的看重证书么? "四大"对于证书的看重,比你想象的要更多一些. "四大"真的看重证书么?那些所 ...

  7. 知乎价值59元私家课:雷军亲述创业心法

    知乎价值59元私家课:雷军亲述创业心法 https://mp.weixin.qq.com/s/DVohkF9QPKXyO4A3AZ6SXA

  8. 阿里平头哥科学家亲述 RISC-V 2019 Summit 十大心得!

    [CSDN编者按]RISC-V是RISC(Reduced Instruction Set Computing,精简指令集)的第五代版本.由图灵奖获得者.RISC的发明者David Patterson教 ...

  9. 博士学位真的那么重要吗?上交大博士亲述科研心路,获4万高赞~

    十三 转载整理自 时间规划局 量子位 报道 | 公众号 QbitAI 都说读博就像一场赌博,"一入红门深似海,从此半点不由人". 还时不时曝出博士生抑郁.甚至自杀等负面新闻. 但为 ...

最新文章

  1. Android 颜色Color(转)
  2. 人工智能听了很多遍,都应用在哪些领域了你知道吗?
  3. 手把手教你用jQuery实现手动自动轮播
  4. linux下tomcat服务器的启动和关闭以及查看实时打印日志
  5. java中怎么找类的路径_Java中获取类加载路径和项目根路径的5种方法
  6. Log4j的快速入门
  7. 【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)
  8. 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)
  9. 认识阿里云的产品逻辑:基础设施必须必业务跑得快
  10. iOS分析友盟错误报告
  11. 云在服务器上装系统,怎么在云服务器上安装系统
  12. 常见测试用例设计方法1---等价类划分
  13. java根据公历获得农历1921年到2050年
  14. 本人有51SAP培训机构全套SAP培训课程教材和视频, 欲转手
  15. 经济学原理笔记-微观CP12-税制的设计
  16. 手绘三相电压电流波形的方法
  17. Centos7 Samba Win10配置解决问题【全攻略】:你没有权限访问,请与管理员联系。。。
  18. matlab figure 虚线圆,flutter 画圆,虚线圆,渐变圆
  19. mumu血压计母亲节“拼团”盛大开幕,百度和厂家创造一个双赢的局面
  20. 制作一个简单的轮播图

热门文章

  1. html表格鼠标高亮行列,JS实现的表格行鼠标点击高亮效果代码
  2. php104.tmp,ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
  3. timer 公司内部用法
  4. 电脑磁盘空间不足怎么办_IT干货 丨 电脑C盘存储空间不足怎么办?
  5. android 字符串函数,Android JNI开发系列(六)字符串操作
  6. 通过一个端口读取多个按钮
  7. 制作测试MM32F3277-MicroPython最小电路板
  8. 智能车竞赛技术报告 | 智能车视觉 - 中国计量大学 - 赛博-10
  9. 可否使用串联LED(或者光敏LED)来制作光电检测板?
  10. 拆解多轴步进电机控制器