首页 > 科技 > 正文

阿里开源十年间激荡历史

来源:东方头条编辑:中经财讯网2019-11-23 15:48:32分享
摘要:这就是阿里那群嚷嚷要做开源的“赶集人”。在圈内,开源一度被称为“集市”。相对封闭严格的传统企业 IT 文化,开源更强调自

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

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

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

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

2008 年对中国人来说是复杂的一年,冰灾,大地震,奥运会接踵而至。这一年,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 平台有一个开源计划,就一起开源出去了。”高铁如是说。

这个时期,另一边的支付宝也在试图逃离闭门造轮子的怪圈。技术环境的割裂造就了前端基础技术的风潮和大量岗位,与当时国内大多数的前端团队一样,支付宝也在闭门造自己的前端轮子,大量借鉴了 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 个人左右的支付宝前端开发部面临解体,一半以上的人被抽调支持支付宝无线业务。面对巨大的变化,整个团队人心涣散,所有人都面对非常艰难的抉择:留下还是离开?

最终,玉伯还是决定和剩下的 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 开发手册》的漫漫推广路。“2016 年 3 月,我在 ATA(注:阿里内部技术论坛)上发表了第一版《阿里巴巴集团 JAVA 技术规范》。觉得好的人有之,觉得不好的也很多。还有人觉得我胆子太大了,去知乎发帖,问孤尽是谁,怎么敢给整个阿里集团写技术规范?每次被群嘲,晚饭我就让食堂阿姨多给我打两个鸡腿,安慰一下自己。有批评,证明有关注,有关注,就有希望。那个时候,一个部门一个部门的去游说,失败了一次,就试第二次。失败了 99 次,那也还要再试一次,没别的,凑个整数呗。”

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

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

相关阅读

新闻总排行

图片新闻

本月排行

@copyright 2016 - 2019 http://www.fhcjwa.com/ 丰和财经网 版权所有