公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

这就是阿里那群嚷嚷要做开源的 “赶集人”。

在圈内,开源一度被称为 “集市”。相对封闭严格的传统企业 IT 文化,开源更强调自由开放的社区文化。InfoQ 追踪阿里巴巴多年,找到了阿里巴巴整个开源发展过程中的数位关键” 赶集人 “,试图了解这一中国近十年极具代表性的科技公司的开源历史。

过去十年,阿里巴巴经历了淘宝的壮大,阿里云计算的成立,上市,双 11 节节攀升的流量,每一个阶段都有其存在的意义和目标,开源也随着这些变化而在不同的时期表现出不一样的状态。不变的是,阿里这群 “赶集人” 探索出了一条自主开源的道路,一走就是十个年头。

开源的拓荒者们

2008 年 ——2010 年:Dubbo 初出茅庐,Fastjson 还在酝酿,一众有着开源精神的开发者加入

2008 年对中国人来说是复杂的一年,冰灾,大地震,奥运会接踵而至。这一年,Dubbo 项目诞生了,只是当时还没有叫 Dubbo 这个名字,还是阿里内部的一个系统,所有人恐怕都想象不到,这个项目日后可以成为阿里巴巴整个开源历史最好的 “见证者”,并在十年后得到了如此多开发者的欢迎。

Dubbo 初创团队

这一年,Ant Design 项目的核心推动者玉伯赶在奥运会排查临时人口之前,从北京中科院软件所离开,凭着自己几年来在程序开发上的经历和对新兴前端行业的看好,来到杭州加入了淘宝 UED —— 彼时中国最好的前端团队。

这一年,Fastjson 和 Druid 项目的核心推动者高铁还在金蝶用 Java 开发一些基础组件;而如今 Flink 项目的核心推动者莫问早已因为马云在校招宣讲会上一场激情满满的演讲而热血沸腾,随后选择加入这家在北京还没有多少人的公司;《Java 开发手册》的主要作者孤尽也还不知道自己会在毕业之时依靠 “霸面” 进入阿里巴巴。

2009 年,Dubbo 团队的主要工作就是修复 Bug。2010 年,整个团队觉得这套架构实在是不堪重负,于是决定重写。

行业技术领袖章文嵩博士的到来,为阿里带来了他深耕多年的开源理想。他认为开源不仅能让技术本身受益,也会帮助让技术人成长。在章文嵩博士的大力倡导和支持下,开源文化在阿里这片土壤上逐渐萌芽,并有了健壮的生命力。当时的淘宝和阿里 B2B,已经有很多团队在推动开源。阿里 B2B 决定先将 Dubbo 项目开源出去,于是在 2011 年,整个团队陆续对文档做了系统化的梳理,但并没有进行大规模的强推广。

总体来看,这一时期,阿里巴巴的整个开源还处于朦胧状态,但已经有了初步探索,一批有着开源精神的工程师陆续加入。马云也把王坚从微软亚洲研究院常务副院长的位置挖来,开始计划如何解决计算力的问题,这是当时整个公司面临的重大危机,而阿里云就在这个契机诞生了。

2009 年 9 月 10 日,阿里巴巴集团庆祝创立十周年,同时成立阿里云计算。这一年,还没有多少人认为云计算可以搞得起来,更别提推动开源的发展了。

一众开源项目涌现

2011 年 ——2012 年:Dubbo 的用户越来越多,Fastjson 正式开源,开始基于 Hadoop 和 HBase 构建大数据体系

“阿里云成立之后,我感受最深的就是自研技术体系(飞天)的建立,这是我第一次强烈感觉到阿里非常重视技术,这个阶段也培养了很多技术实力很强的人才,也让我感受到阿里的技术体系越来越开放”,大数据实时计算引擎 Flink 带头人的莫问如是说道。

玉伯、高铁、孤尽、莫问...... 这群有着技术实力的开发者,同时有着强烈的开源情怀,他们的加入让阿里巴巴内部自发掀起了一波开源的高潮。这段时间,阿里巴巴内部出现了一众不错的开源项目,Fastjson、Druid、Sea.js、Arale 等。

“最开始进行软件开发时,我没有参与到太多的开源工作中,但一直对 Linux 有所接触,受到开源精神的影响,当时就觉得开源是一件非常伟大的事情,阿里内部当时的开源项目主要来自于淘宝系和 B2B 系。当时的淘宝系选用 GPL 协议居多,而 B2B 系选用 Apache 协议的比较多,我当时也就给 Fastjson 选了 Apache 的协议,而做 Druid 的时候其实没想开源,刚好当时 B2B 平台有一个开源计划,就一起开源出去了。” 高铁如是说。

阿里第一代开源人、FastJson&Druid 创始人高铁

这个时期,另一边的支付宝也在试图逃离闭门造轮子的怪圈。技术环境的割裂造就了前端基础技术的风潮和大量岗位,与当时国内大多数的前端团队一样,支付宝也在闭门造自己的前端轮子,大量借鉴了 YUI 的组件架构体系,底层使用了 Java 生态里的 MVN 进行依赖管理和构建,所有的轮子和钉子都要内部自造,和前端社区越来越远,而解决方法就是开源。

2012 年 4 月 29 日,玉伯发了条微博,宣布要用开源的方式打造支付宝下一代前端框架,这在当时是非常激进的。

后来,Sea.js/Arale/spm 套件开始在支付宝内部和国内开源界发展起来。

与此同时,Dubbo 也迎来了发展的小高峰,用户越来越多,包括做汽车的、做证券的、搞水泥、电器,甚至有公司愿意为 Dubbo 付钱,希望出现问题可以请团队的开发人员帮忙。

这一时期不仅出现了很多优秀的开源项目,阿里巴巴的开发者也开始积极贡献开源。莫问回忆道:“最开始,我们整个团队做开源并不是从 Flink 才开始的,早在 2010 年,我们就开始用开源的 Hadoop 和 HBase 搭建大数据体系,用于处理搜索场景中的数据,并把我们实践成果贡献给社区。”

相较于开源事业进展得如火如荼,阿里云的进展却并不顺利。从 2010 年到 2012 年,阿里云经过了最艰苦的三年。由于没有成绩进展,阿里云整个部门连续几年都在集团拿最低分,辞职信和转岗书陆续出现在王坚的邮箱里,几乎所有人都认定阿里云不可能做出一套云计算系统。

整个国内此时对云计算都没有太多感觉,对移动互联网的发展倒是颇为上心。

2012 年的双 11,天猫淘宝的总交易额从 2011 年的 52 亿人民币上升到 191 亿,打破了全球网购单日交易额记录,阿里坐稳了中国电商时代的霸主位置。

这时,移动化的浪潮来了。

在很多人还没有回过神的时候,微信在 2013 年 3 月份实现了用户过亿。当时的淘宝也做了手机端,但定位更多是 “多端”,意思是主要在电脑上,只是附加了手机端可以实现一些简单的功能。所有人都感受到了移动化将带来的巨变,阿里也开始寻求改变。

2013 年,整个支付宝乃至阿里的所有业务平台都走到了十字路口,集团宣布:ALL IN 无线。

一场变革就此拉开序幕......

巨变来临

2013 年 ——2016 年 :支付宝前端解体,集团强化 One Company 开始进行架构调整,不少项目合并,开源进展缓慢。

在 “ALL IN 无线” 战略宣布之前,前端和业务的结合非常紧密,UED 和设计在公司拥有很高的话语权,每半年搞一次前端性能优化战役。在《那些年的体验设计部》系列文章中对这一时期的描述是:

这是个一行 JS 代码的错误就可以造成全站交易下跌的时代,也是 PC 前端们最后的黄金时代。

在 “ALL IN 无线” 战略宣布之后,很多人被从原有部门放到战场最前线,有人不适应走掉了,后续的再补上。60 个人左右的支付宝前端开发部面临解体,一半以上的人被抽调支持支付宝无线业务。面对巨大的变化,整个团队人心涣散,所有人都面对非常艰难的抉择:留下还是离开?

Ant Design、AntV、Egg 等前端开源项目带头人玉伯

最终,玉伯还是决定和剩下的 17 个人一起留在了这个团队,支持主要迭代是给各种页面加二维码的 PC 端业务和进入死胡同的自研前端技术体系。调整完的第一次周会,所有人都很沉默,比起鼓起勇气做抉择离开的人,留下的人的心态更多是未知和拥抱变化。

除了人员调整,当时的阿里巴巴集团要强化 One Company,开始进行架构调整。技术层面,整个公司大统一,就希望不要重复建设,但凡相同的项目都要合并。以 Dubbo 为例,当时的淘宝有一个项目叫做 HSF,也是一个中间件服务框架,跟 Dubbo 做的事情高度重合。

HSF 项目的作者林昊(毕玄),也是当时国内 Java 领域的知名技术领袖。在 OSGi 非常流行的时候,毕玄可能是国内能够把 OSGi 解释的最清楚的人之一。HSF 和 Dubbo,虽然做的事情高度重合,但是设计理念不怎么一样,虽然有些碰撞,但最终目的还是为了 “强强联合”。

不久之后,Dubbo 团队调整,去到了各个地方。从外面看来,Dubbo 项目从 2014 年之后就再也没有更新过。

整个公司的变动让很多开源项目的维护人员发生变化,有些项目在这个过程中进展缓慢,有些则停滞不前。

在这些调整之后,阿里巴巴迎来了里程碑式的一年。

2014 年 9 月 19 日,阿里巴巴集团于纽约证券交易所正式挂牌上市,股票代码 “BABA”。

在这之后的几年时间内,阿里巴巴的业务进入高速发展阶段:与蚂蚁金服集团完成重组,蚂蚁金服成为支付宝的母公司;阿里健康成为阿里巴巴集团的子公司;阿里巴巴集团与蚂蚁金融服务集团联合宣布成立 “口碑”;宣布成立阿里音乐集团;收购优酷土豆集团;正式成立阿里大文娱...... 大量开发者开始将精力投入到业务发展中,很难有时间和精力来做开源,尤其是当这个项目和个人的 KPI 毫无关系时。

与此同时,一直在北京办公的莫问也遇到了问题,业务做得不甚理想,于是决定拉上另一个小伙伴一起研究 Flink。当时,莫问身在阿里最核心的前线战场 —— 搜索团队,因为觉得 “快” 是未来很重要的趋势,所以坚定地投入到实时计算的研究中。如上文言,Flink 项目最早启动时,只有两个人。

莫问说道:“一个项目肯定要有资源,也就是人,但那会儿想在阿里找几个有实力还有时间的人实在太难了。阿里内部的竞争也非常激烈,业务发展很快,从写下 Blink(Flink 在阿里的内部版本)第一行代码开始算,也只有大半年的时间准备,然后就需要支持第二年的双 11。”

在 Flink 整个团队逐渐迭代,慢慢发展的过程中,孤尽也开始了《Java 开发手册》的漫漫推广路。

《JAVA 开发手册》主要作者孤尽

“2016 年 3 月,我在 ATA(注:阿里内部技术论坛)上发表了第一版《阿里巴巴集团 JAVA 技术规范》。觉得好的人有之,觉得不好的也很多。还有人觉得我胆子太大了,去知乎发帖,问孤尽是谁,怎么敢给整个阿里集团写技术规范?

每次被群嘲,晚饭我就让食堂阿姨多给我打两个鸡腿,安慰一下自己。有批评,证明有关注,有关注,就有希望。

那个时候,一个部门一个部门的去游说,失败了一次,就试第二次。失败了 99 次,那也还要再试一次,没别的,凑个整数呗。”

在这个过程中,阿里巴巴将开源从最早期的个人行为逐渐发展成组织行为,但还未在集团层面推出统一的规划。很多开源项目也在与商业价值的碰撞中渐渐迷失,找不到继续下去的动力。

与开源的低沉相对的,是阿里云的沸腾。2015 年,在计算界的奥运会 Sort Benchmark 中,阿里云计算 100TB 数据排序只用了不到 7 分钟,把 ApacheSpark 之前创造的 23 分钟世界纪录缩短了一多半。结果很明显,阿里云成为了国内第一家拥有完整云计算能力的企业。

全面进击

2017 年至今:开源所幸,云之爆发

2017 年,阿里巴巴双 11 第一次启用交易大屏,并面向全球直播,看着屏幕上不停滚动的数字,莫问整个团队的工程师都紧张到不行,因为这是 Flink 第一次支撑阿里巴巴双 11 几乎所有的核心业务。

“双 11 之前,我们没有大肆宣扬这件事情,因为不知道结果如何。双 11 刚开始,各种战报就出来了,到一百亿用了多长时间,全球交易量是如何分布的,哪个类目排名第一等等,这些排名都是基于 Flink 做的,这就相当于我们的第一次大考。” 莫问回忆起当时的场景说道。

在双 11 之前的那个国庆节,整个团队的工程师七天都没有休假,自发来到公司,即便在家里也是各种调试,各种修改,这样的状态一直持续到双 11 的倒计时开始,整个团队才觉得已经达到稳定状态,不需要再调整了。

当平稳度过双 11 时,那一刻觉得一切都值了。—— 莫问

后面的故事,大家都知道了,阿里巴巴收购了 Flink 的母公司 Data Artisans,并决定将所有改动逐一推回到社区。

就在 Flink 整个团队为了双 11 奋战的同时,出身江南却自带东北大汉气质的北纬带着团队决定重启 Dubbo 项目,而 Dubbo 的转机在于阿里云的爆发。

唤醒沉睡狮子 “Dubbo” 的北纬

2017 年,阿里云发现有一批客户上云之后,想要用 Dubbo。因为他们 Dubbo 已经用的很熟了,不想因为上云而被迫改变自己的使用习惯。真正的客户提出要求了,提升客户对 Dubbo 的信心,成为了一件在公司层面有价值的事情。

吸取了之前的教训:开源这条路,一个人走得很好,一群人可以走的很远,必须依靠社区的力量共同维护。北纬整个团队下了一个重大决定:将 Dubbo 捐献给 Apache 基金会。

理想是丰满的,现实是骨感的。在孵化期间,整个团队遇到了很多问题:以往,团队成员习惯了通过钉钉沟通,而按照规定在基金会中需要通过邮件交流;对于新的功能和特性的加入,团队成员需要考虑并询问广大社区参与者的意见,而不是自行决定。这背后,本质上是从追求效率第一,转为以共识、透明、公开为重。

所幸,这不是阿里与 Apache 基金会的第一次触电。2016 年,分布式消息中间件 RocketMQ 首次顺利从 Apache 毕业,积累了丰富的经验。沿着” 前辈 “探出来的路,最终 Dubbo 仅仅用了 15 个月就成功毕业。

经过长时间的人员调整,玉伯所在的团队在 Ant Design 的推广上也迎来了曙光。Ant Design 的中后台设计语言的定位和推出时机是非常合适的,它开始在公司外部收获大量关注,GitHub 的 Star 数直线上升,2017 年 3 月突破了一万 Star,2018 年 3 月达到了两万的 Star 数。

玉伯回忆道,有次 Ant Design 团队在西湖边开了一场开发者沙龙,来了位高高帅帅的德国小哥,操着一口不甚流利的普通话。原来,在社区浸泡许久的他,不仅毕业论文选择了 Ant Design 做主题,更吭哧吭哧学起中文,毕业后一口气从德国跑到杭州来工作,爱上了这个千年古城。

另一方面,2017 年春天,《Java 开发手册》正式发布,已有超过 260 万位工程师下载及查阅手册,在数以千计的企业应用中,手册成为受业界认可的开发规范,配套的 P3C 插件在 GitHub 上的 Star 数接近两万。

今年初,InfoQ 统计了国内在 GitHub 上较活跃的 7 家一线互联网公司的 2800 多个项目。在 Star 数最多的项目前十名中,六个项目均由阿里巴巴贡献,所有项目的 Star 数更超过 66w,单从数字上来看,阿里也无愧是对开源贡献最大的中国公司之一。即便已经取得了很不错的开源成果,但依旧是靠开发者的自驱动。幸运的是,这些开发者在开源和商业价值之间找到了平衡,就像 Dubbo、Ant Design 一样。

2019 年 9 月 27 日,贾扬清正式成为阿里巴巴开源技术委员会负责人。贾扬清在采访中说表示,过去,这些开源项目的成长更多是依靠阿里巴巴内部员工与开源社区的沟通和交流。如今,阿里巴巴意识到这不能仅仅依靠开发者的一腔热血,而需要一套成熟的方法论帮助开发者更多地参与开源,贡献开源,并从组织上提供一系列支持与保障,这就是阿里巴巴成立开源委员会的初心。

Caffe 之父,TensorFlow、Tytorch 作者之一贾扬清

如今,阿里巴巴已经明确将开源升级为集团的技术战略之一,从拥抱开源、贡献开源、自主开源升级为持续赋能开源。开源所幸,云之爆发,开源的这波高潮也得益于云计算的全面发展。就像当初没有几个人坚信阿里云可以成功一样,也没有多少人想到了云计算会对开源有何影响。

云计算的爆发,让科技公司意识到生态和开发者的重要性,而与开发者打交道最好的方式也许就是开源,一个优秀的开源项目必然会存在一个优秀的社区,而社区可以轻易地将优秀的开发者聚集在一起;此外,开源也会增加开发者对项目的信任度...... 种种原因让开源成为现阶段各大云计算公司想做的事情。

这些科技公司的加入也让开源项目有了最好的落地场景,像双 11 这样的交易量和流量峰值是很难遇到的,经历了双 11 场景洗礼愈加成熟可靠的 Flink 充分验证了科技公司在推动开源上的重要作用。

但是,将一批真正有开源情怀并愿意为之坚持的开发者聚到一起是不容易的。高铁在采访最后说道:" 我经常在晚上和周末花时间在解决社区 issue。Fastjson 和 Druid 就像我的两个小孩,养了快 10 年,有幸得到很多人的支持和使用,这是大家对我的信任,我必须维护好。“

走到现在,开源陪伴着阿里这群工程师度过了十年之久。想到当初霸面进入阿里,孤尽还记得当时说了一句:“你们错过了我,就错过了一个时代。” 孤尽特别感激那个笑得好看的 HR 大哥,并没有因为他的不知天高地厚而生气,相反,他破例给了一次面试的机会。“虽然到现在,我还是没能改变一个时代,但我很开心,我给世界带来了一点点改变。”

是啊,一个 “赶集人” 给世界带来了一点点改变,一群 “赶集人” 又会给世界带来多大的能量呢?这是阿里开源史的重要缩影,这也是中国开源史不可或缺的一笔。幸运的是,一切正在进行中,结局还值得期待。

---

以上便是今天的分享,觉得内容不错,还请点个在看,谢谢。

推荐阅读:

盘点下阿里开源的 29 个开源项目

互联网人的健身,只是为了保命

假如有人把支付宝存储服务器炸了

3 门“老而不死”的编程语言

程序员真的是太太太太太太太太难了!

「GitHub 交流群」已开放

想入群的可在公众号后台回复「入群」

过去 10 年,阿里在开源圈做了什么?相关推荐

  1. 10 万阿里人都爱用的网红工具,语雀如何“用保护钱包的技术在保护文档安全​”?...

    受访者 | 袁锋(花名:苏千) 采访者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在新型冠状病毒疫情下,国内不少企业选择了远程办公的模式.上班族们感叹终于可以"一台电脑.一部 ...

  2. 收藏|2021年阿里云开源镜像站最热门镜像王全梳理(附下载链接和Top20镜像王排名)

    阿里云开源镜像站的初衷在于宣传自由软件的价值,提高大家的开发效率,帮助大家更快地进行应用创建. 全面.快速.稳定.可信 作为程序员肯定要和开源软件打交道,很多情况需要用到相关的代码库,而依赖和软件包的 ...

  3. 阿里云开源的Blink,计算能力很疯狂:一眨眼,全部都算好!

    全世界只有3.14 % 的人关注了 数据与算法之美 前两天,阿里云宣布开源"计算王牌"--实时计算平台Blink,回馈给ApacheFlink社区.官方称,计算延迟已经降到毫秒级: ...

  4. 阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架

    阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架 原文链接:https://zhuanlan.zhihu.com/p/267392773 阿里云正式开源了深度迁移学习框架 E ...

  5. 致敬各位10年阿里的前端开发

    很巧合,我在认识了两位同是10年工作经验的阿里前端开发小伙伴,不但要向前辈学习,我有时候还会选择另一种方法逗逗他们,拿了网上一道经典面试题,可能我连去阿里面试的机会都没有,但是我感受到了一次面试10年 ...

  6. “关起门来搞开源,做不了开源世界的Leader”

    回顾自己职业布道的这一路,适兕有过心酸,也有欣喜.近两年国内对开源的认知度有所提高,这件事可喜可贺,但开源的含义却远比大家所认识的要更加广泛.深刻.那我们该如何理解开源?本期<开源访谈录> ...

  7. 微软、阿里抢占开源一线,JavaScript、Python 备受热捧,GitHub 2020 数字洞察报告揭晓!...

    作者 | Allumos 来源 | 源光闪烁 开源软件已经成为人类数字社会的基石,是全人类共同努力的结晶,开源协作对人类数字文明的发展起到了巨大的推动作用.GitHub 作为全球范围内最主要的开源协作 ...

  8. 开源商业化未来究竟如何?国际开源圈网红这样说

    [CSDN 编者按]Joseph Jacks 是国际开源圈网红,他作为 OCS 峰会创始人.早年KubeCon的发起人.CNCF 顾问,本文是他回顾这些年来他在开源的全部经历,他表示在未来几十年仍投身 ...

  9. 阿里将开源进行到底!

    作者 | 马超 责编 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 如果要问两年前中国最大的文化输出是什么,那这可能是刘慈欣的科幻,也可能是莫言的小说:而如果现在要问这个问题,那它的答案应 ...

最新文章

  1. 关联关系和依赖关系的区别
  2. POJ1679 Luogu4180 次小生成树
  3. 代码量减少90%,Java程序员必会的工具库
  4. 阿里云服务器发送邮件失败?连接超时?25端口被封?
  5. python中plot是什么意思_python中的plot函数是什么?
  6. 自学python能找到工作吗-学完python能找到工作么
  7. unity找到特定一个物体的子物体,多个子物体有相同的名称
  8. 怎么用c51语言写正弦波,单片机入门-C51语言用DAC0832实现正弦波的波形发生器第二节...
  9. 初了解IsPostBack
  10. 一种防止拍摄屏幕的新技术
  11. c++学习笔记-------《c++自学通》第六章 基本类
  12. EasyPoi Excel简单导出导入
  13. [蓝桥杯单片机 八位共阳数码管](4)
  14. Unified Functional Testing(UFT)15.0.2入门保姆级教程(二),图文详解。QTP
  15. 【干货分享】前端面试知识点锦集01(HTML+CSS篇)—— 附答案
  16. C# asp.net 条形码 code39条码 生成 扫描枪能识别(好东西转载...)
  17. python web前端后端页面详解
  18. 日均5亿查询量的京东到家订单中心,为什么舍MySQL用ES?
  19. 如何用 RapidMiner 6.4 进行中文分词
  20. Linux文件搜索命令

热门文章

  1. 数据字典的作用/用途:是数据流程图的补充!4个主要条目:数据项,数据处理(逻辑功能及其算法),数据存储,数据流条目
  2. 利用Java反射机制降低代码圈复杂度
  3. 日语学习之——长音促音
  4. 【数字图像处理】直方图均衡化与规定化
  5. ios模拟器 - Simulator录制视频
  6. java 姓名_java 随机生成中文姓名人名
  7. 使用Python和YOLO检测车牌
  8. Android - TextView Ellipsize属性
  9. System.Data.OleDb.OleDbException错误
  10. 2019-2020年催化类专业期刊的影响因子