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

 

原文链接

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云提出“云+Fintech”新金融战略 已助上万家金融机构上云

“云是不可逆转的大战略。”12月3日,阿里云智能新金融事业部总经理刘伟光在2019阿里云广东峰会上表示,“云Fintech”将成为数字金融时代的新基础设施,阿里云已整合蚂蚁金服金融科技开放业务能力,利用全栈式金融级技术方案助力金融…

基于Kubernetes 的机器学习工作流

介绍 Pipeline是Kubeflow社区最近开源的一个端到端工作流项目,帮助我们来管理,部署端到端的机器学习工作流。Kubeflow 是一个谷歌的开源项目,它将机器学习的代码像构建应用一样打包,使其他人也能够重复使用。 kubeflow/pipeline…

puppet php,puppet入门实践

版本选择本来是要选择一个最新版本(当时最新版本是4.3),怎奈官方的yum仓库(https://yum.puppetlabs.com/)中没有最新版本;至少看起来没有4.3;有的是:facter-1.6........facter-2.4........hira-1......mcollective-2......mcollec…

Jmeter 使用脚本 生成html测试报告

每次都要删除jtl文件和report文件夹麻烦,可以写一个bat批处理文件,每次想输出测试报告时,执行下bat文件就可以了,新建一个2.txt文件,输入如下内容,然后将文件改为2.bat echo off REM 纽约约会接口性能测试…

Apache Flink,流计算?不仅仅是流计算!

阿里妹导读:2018年12月下旬,由阿里巴巴集团主办的Flink Forward China在北京国家会议中心举行。Flink Forward是由Apache软件基金会授权的全球范围内的Flink技术大会,2015年开始在德国柏林举办,今年第一次进入中国。 今天&#x…

阿里云数字政府市场份额第一,同比增速102.57%

12月3日,阿里云峰会广东期间,阿里巴巴副总裁、阿里云智能数字政府事业部总裁许诗军表示,目前阿里云已成为中国数字政府大数据整体市场第一,也是数字政府大数据基础平台软件市场第一。 近日,IDC发布了《中国数字政府大数…

oracle调整显示长宽,Oracle设置SQLPlus结果显示的宽度,ORACLE sqlplus提示符设置

一、SQLPlus查询的结果,可以根据自己的屏幕情况进行调节:我们知道sqlplus模式下,select查询的时候经常会遇到返回的记录折行,这时候我们往往会设置行宽,列宽和页面记录。设置行宽:set linesize 200 表示行宽被设置为20…

Jmeter 监控多台服务器CPU、内存、i/o等资源

文章目录1. 插件下载2. 移动插件3. 重启jmeter验证4. 选择监控参数5. 安插卧底6. 启动7. 连接远程1. 插件下载 链接JMeterPlugins-Standard-1.4.0.zip 提取码5utu 链接ServerAgent-2.2.1.rar提取码9ivy 2. 移动插件 解压JMeterPlugins-Standard-1.4.0.zip,将其中…

云栖专辑 | 阿里开发者们的第11个感悟:拥抱变化,用正确的方法对待工作

2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

一份关于kaggle特征构建技巧和心得

在很长的一段时间里,我们表现出缺乏创造力,所做出的工作被认为是山寨、借鉴,这一点是不可否认,但随着自身的积累,厚积薄发,完成了从借鉴到创造的突破。创造力是我们工作的基本要素之一,这点在各…

Jmeter 生成HTML性能测试报告

文章目录一、生成HTML测试报告的两种方式1.1. 利用已有.jtl文件生成报告1.2. 无.jtl文件生成测试报告二、图表信息详解2.1. Dashboard(概览仪表盘)2.2. Charts(详细信息图表)2.3. Over Time2.4. Throughput2.5. Response Times一、…

分区裁剪 oracle,[讨论]分区表并行和剪裁的困惑

d_fct是分区表,设了并行,字段time_day 按天分区。下列语句执行计划上看,确实走了并行,INDEX FAST FULL SCAN,这个是全扫了整个表呢?还是一个分区呢? Pstart和Pstop都是2711,是说第27…

阿里云再发两款混合云一体机 ,企业全面上云就像上车一样简单

12月3日,广州云峰会上,阿里云宣布推出面向混合云场景的CPFS一体机和视觉AI一体机,两款新品具备超高性能、开箱即用等特性,极大降低企业上云的周期和门槛。加上此前推出的POLARDB数据库一体机和蚂蚁mPaaS一体机,阿里云已…

专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好

【王俊杰:阿里云MVP,陕西创博网络科技有限公司总经理。大数据与物联网的爱好者与实践者。 8年以上互联网从业经验,曾从事军工相关仿真分析软件研发与集成、4年以上大数据系统开发经验。目前正与天水市秦州区政府配合建设智慧安监、智慧环保、…

阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年

2018年12月31日20:30分,以“时间的朋友”为主题的罗振宇2018跨年演讲在深圳正式召开,同时通过深圳卫视、优酷等平台进行全球直播。作为年度总结式演讲开创者,2018年跨年演讲与以往跨年演讲一样,依旧保持着超高的人气,据…

jmeter常用插件介绍

https://www.codercto.com/a/67098.html

oracle us7ascii 中文,US7ASCII字符集中汉字显示问题

前几天遇到一个US7ASCII字符集的数据库,无论在客户端如何设置字符集都无法通过程序正确读出数据库中的中文汉字,辛苦地查了很多资料,都说是ORACLE的一大BUG,如何解决这一问题呢?在不断的试验中发现,采用OLEDB方式设置…

广东农信迁移上阿里云:系统建设从按月缩短至按天

12月3日,广东省农村信用社联合社银信中心副总裁周丹在2019年阿里云广东峰会上透露,通过携手阿里云,广东农信实现了从传统架构向云化的转型升级,金融业务系统的搭建工期从按月计算缩短至按天计算,效率大幅提升。 周丹在…

阿里云容器服务DaemonSet实践

DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例,看下如何使用阿里云容器服务控制台创建DaemonSet。 准备Kubernetes环境 在阿里云容器服务控制台中创建Kubernetes…

GIF动画解析RNN,LSTM,GRU

循环神经网络是一类常用在序列数据上的人工神经网络。三种最常见的循环神经网络分别是: 1.维尼拉循环神经网络(vanilla RNN) 2.长短期记忆网络(LSTM),由Hochreiter和Schmidhuber于1997年提出 3.门控循环…