摘要: Dubbo 這個名字,最後會變成一個 Apache 的商標,會成爲一個在 GitHub 上有 2 萬多人關注、一百多人蔘與貢獻的超級項目。
梁飛在 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 寫着他的博客。阿里雲
「寫博客對你有什麼影響?」spa
「在社區裏面看別人的博客,他們也在寫一些開源軟件,你們互相看博客,而後就認識了。推薦我來阿里的朋友就是當時圈子裏認識的。」架構設計
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」,如需轉載請聯繫原做者。