在圈內,開源一度被稱為“集市”。相對封閉嚴格的傳統企業 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 分鐘世界紀錄縮短了一多半。結果很明顯,阿里云成為了國內第一家擁有完整云計算能力的企業。
全面進擊
2017 年至今:開源所幸,云之爆發
2017 年,阿里巴巴雙 11 第一次啟用交易大屏,并面向全球直播,看著屏幕上不停滾動的數字,莫問整個團隊的工程師都緊張到不行,因為這是 Flink 第一次支撐阿里巴巴雙 11 幾乎所有的核心業務。

“雙 11 之前,我們沒有大肆宣揚這件事情,因為不知道結果如何。雙 11 剛開始,各種戰報就出來了,到一百億用了多長時間,全球交易量是如何分布的,哪個類目排名第一等等,這些排名都是基于 Flink 做的,這就相當于我們的第一次大考。”莫問回憶起當時的場景說道。
在雙 11 之前的那個國慶節,整個團隊的工程師七天都沒有休假,自發來到公司,即便在家里也是各種調試,各種修改,這樣的狀態一直持續到雙 11 的倒計時開始,整個團隊才覺得已經達到穩定狀態,不需要再調整了。
當平穩度過雙 11 時,那一刻覺得一切都值了。——莫問
后面的故事,大家都知道了,阿里巴巴收購了 Flink 的母公司 Data Artisans,并決定將所有改動逐一推回到社區。
就在 Flink 整個團隊為了雙 11 奮戰的同時,出身江南卻自帶東北大漢氣質的北緯帶著團隊決定重啟 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 日,賈揚清正式成為 阿里巴巴開源技術委員會負責人。賈揚清在采訪中說表示,過去,這些開源項目的成長更多是依靠阿里巴巴內部員工與開源社區的溝通和交流。如今,阿里巴巴意識到這不能僅僅依靠開發者的一腔熱血,而需要一套成熟的方法論幫助開發者更多地參與開源,貢獻開源,并從組織上提供一系列支持與保障,這就是阿里巴巴成立開源委員會的初心。
如今,阿里巴巴已經明確將開源升級為集團的技術戰略之一,從擁抱開源、貢獻開源、自主開源升級為持續賦能開源。開源所幸,云之爆發,開源的這波高潮也得益于云計算的全面發展。就像當初沒有幾個人堅信阿里云可以成功一樣,也沒有多少人想到了云計算會對開源有何影響。
云計算的爆發,讓科技公司意識到生態和開發者的重要性,而與開發者打交道最好的方式也許就是開源,一個優秀的開源項目必然會存在一個優秀的社區,而社區可以輕易地將優秀的開發者聚集在一起;此外,開源也會增加開發者對項目的信任度...... 種種原因讓開源成為現階段各大云計算公司想做的事情。
這些科技公司的加入也讓開源項目有了最好的落地場景,像雙 11 這樣的交易量和流量峰值是很難遇到的,經歷了雙 11 場景洗禮愈加成熟可靠的 Flink 充分驗證了科技公司在推動開源上的重要作用。
但是,將一批真正有開源情懷并愿意為之堅持的開發者聚到一起是不容易的。高鐵在采訪最后說道:“我經常在晚上和周末花時間在解決社區 issue。Fastjson 和 Druid 就像我的兩個小孩,養了快 10 年,有幸得到很多人的支持和使用,這是大家對我的信任,我必須維護好。”
走到現在,開源陪伴著阿里這群工程師度過了十年之久。想到當初霸面進入阿里,孤盡還記得當時說了一句:“你們錯過了我,就錯過了一個時代。”孤盡特別感激那個笑得好看的 HR 大哥,并沒有因為他的不知天高地厚而生氣,相反,他破例給了一次面試的機會。“雖然到現在,我還是沒能改變一個時代,但我很開心,我給世界帶來了一點點改變。”
是啊,一個“趕集人”給世界帶來了一點點改變,一群“趕集人”又會給世界帶來多大的能量呢?這是阿里開源史的重要縮影,這也是中國開源史不可或缺的一筆。幸運的是,一切正在進行中,結局還值得期待。
特別聲明:
文章來源:AI前線 (ai-front)
RPA中國推薦閱讀,轉載此文是出于傳遞更多信息之目的。如有來源標注錯誤或侵權,請聯系更正或刪除,謝謝。
未經允許不得轉載:RPA中國 | RPA全球生態 | 數字化勞動力 | RPA新聞 | 推動中國RPA生態發展 | 流 > 阿里開源十年
熱門信息
閱讀 (14728)
1 2023第三屆中國RPA+AI開發者大賽圓滿收官&獲獎名單公示閱讀 (13753)
2 《Market Insight:中國RPA市場發展洞察(2022)》報告正式發布 | RPA中國閱讀 (13055)
3 「RPA中國杯 · 第五屆RPA極客挑戰賽」成功舉辦及獲獎名單公示閱讀 (12964)
4 與科技共贏,與產業共進,第四屆ISIG中國產業智能大會成功召開閱讀 (11567)
5 《2022年中國流程挖掘行業研究報告》正式發布 | RPA中國