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

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

image

梁飞在 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 重启仅过一年有余。

原文发布时间为:2019-01-02
本文作者:二叉树
本文来自云栖社区合作伙伴“ InfoQ”,了解相关信息可以关注“infoqchina”微信公众号

相关文章
|
1月前
|
XML 安全 Java
深入实践springboot实战 蓄势待发 我不是雷锋 我是知识搬运工
springboot,说白了就是一个集合了功能的大类库,包括springMVC,spring,spring data,spring security等等,并且提供了很多和可以和其他常用框架,插件完美整合的接口(只能说是一些常用框架,基本在github上能排上名次的都有完美整合,但如果是自己写的一个框架就无法实现快速整合)。
|
2天前
|
监控 Java API
Java日志框架的纷争演进与传奇故事
Java日志框架的纷争演进与传奇故事
|
前端开发 安全 Java
从萌芽到巨人: 揭秘Rod Johnson与Spring框架的故事
在这个充满创意和技术追求的世界中,有一个名为 Spring 的框架,它孕育了无数创新和成功的故事。这是一个关于持续进化和超越自我的故事,一个激励人心的旅程,由一位富有远见的程序员和他的团队引领着。
崮德好文连载 - 方法比决心重要
我们很多工程师,平时不喜欢读书,突然有一天,听到某几个行业领袖说读书怎么怎么好,本着对行业领袖的绝对信任,这些工程师就急冲冲的跑去买来一堆推荐的书,然后也就试着每天阅读起来,但是不到一周时间,他们就慢慢放弃了。然后他们下次在听到有人推荐书,就会说,瞧,又是一个卖心灵鸡汤的人来了。
崮德好文连载 - 个人如何成长?
毕业后刚开始工作的工程师,对技术一定是充满热情的,也是非常专注的投入工作。但是工作3,4年然后跳槽一两家公司后,渐渐的就迷失了,感觉技术有了一定提升,比刚毕业的大学生,确实有点优越感,但是比下有余,比上不足,感觉差距很大,关键是单纯提高技术能力,似乎永远赶不上优秀的前辈,这样的困惑完全可以理解。我想聊聊这个阶段的工程师,该如何成长。
|
Java Linux
初见阿里
初见 部署 Java
|
消息中间件 中间件 物联网
云栖掠影|回首开源十年,RocketMQ 焕发新生
RocketMQ 作为 2011 年诞生的消息中间件,也见证了中国开源领域的十年发展。成为阿里巴巴众多开源项目中最为要耀眼的代表项目之一。这不仅仅是指 RocketMQ 是首个进入 Apache 顶级项目的国内互联网中间件,也包括 RocketMQ 在物联网、大数据等领域发挥着巨大作用,让数以百万的企业以及开发者真真切切的受益,推动社会经济以及互联网技术的发展。
|
物联网 大数据 开发者
专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好
在事业刚刚起步的时候,王俊杰毅然决定支教半年。支教归来后,他先后参加了扶贫智能平台、污水处理智能系统等等项目,并利用业余时间完成了未来幼儿园的公益项目。在他的身上,正是验证着那句话:用技术让世界更美好,这就是开发者拥有的超能力。
3606 0
|
Dubbo Java 中间件
1500+开发者直呼过瘾,这场Dubbo首秀引爆了朋友圈
近日,北京的开发者们经历了一个热闹非凡的下午。400多名开发者和全网开源爱好者们共同参与了Dubbo的首场沙龙。
3275 0
|
中间件 Go 流计算
为“程序媛”点赞 “阿里中间件性能挑战赛”完美收官
由阿里巴巴集团主办,阿里云天池大数据平台承办的第二届“阿里中间件性能挑战赛”吸引了1946支队伍报名参加,不但有来自413所知名高校的学生和科研人员,还有来自40余家企业的社会选手,这表明,“阿里中间件性能挑战赛”已经成为影响力巨大的重要技术赛事。
5234 0