
我是2007年的最後一天加入阿裡巴巴的,這十多年以來一直是一位開發者。當然我也承認這幾年寫代碼确實已經很少了,但過去很多年中,開發的工作仍然一直伴随着我。這十多年裡,我和開源有了很多的接觸,阿裡巴巴和開源生态也有了很多的互動。
在阿裡巴巴,我接觸最多的三個項目
第一個項目是HSF,是阿裡巴巴内部自用的微服務架構,另一個實作類似功能的是Dubbo,相信在場很多開發者都接觸過Dubbo。HSF和Dubbo都是阿裡巴巴非常重要,用來實作微服務的産品。
在HSF之後,我在阿裡巴巴做了第二個開源産品,叫HBase。當時,我們把海外的HBase引入到阿裡巴巴,并支援了阿裡巴巴大量的業務,同時也培養了多位committer,共同推進HBase的發展。
2011年,阿裡巴巴開始啟動容器項目,當時内部代号叫T4,去年開始把這個項目開源出來了,命名為Pouch Container,我們希望Pouch Container的開源能更好的推進整個容器技術的發展。
阿裡在使用業内的各類開源産品,同時也把阿裡積累的技術開源出去,貢獻給整個生态,讓開源生态能夠在技術層面加速創新。對于我們來講,開源的意義在于:可以讓所有的開發者們一起參與進來,共同來定義整個軟體的架構。
不管是阿裡巴巴還是其他公司,自己開源出去的項目最早都是來源于自身的需求以及對未來技術發展趨勢的判斷。但這個層面相對比較狹窄,如果有更多來自不同行業的開發者可以共同參與到開源工作中來,那麼,整個開源生态的産品就可以更好的适用于各個行業。同時,因為有來自各個行業的需求,開源項目在創新和實用性上就會大幅度增強。是以,開源是讓所有的開發者們共同參與進來,一同加速軟體和架構的更新。
分享兩個在開源世界比較有名的故事
第一個是很多人都知道的Linux,在作業系統領域,之前隻有微軟在Windows上擁有了大量的使用者,但Windows是閉源體系,是以大部分人無法根據自己的需求和創新點來對作業系統進行改造。但Linux的開源讓開發者們有機會參與、設計出一個更适用于自己所在行業、所在企業、所在業務的作業系統,這是Linux對整個社會的意義。
從過去的一些資料可以看到,Linux已經獲得了超級計算機領域99%的市場佔有率,它已經擁有2000多萬行代碼,有1500多家企業在基于Linux進行二次開發。顯然,這些不是僅靠一家公司就可以實作的,更多的是因為它背後擁有的這1萬5千多位開發者。當然,阿裡巴巴也參與了Linux的演進,這将為底層的軟體創新帶來很大的機會。
另一個是這幾年特别火,相信很多開發者也都接觸過,它在短短一兩年時間,就成為了大部分開發者在容器領域的第一選擇,他就是Kubernetes。Google在Kubernetes的基礎上建立了CNCF基金會,目的是讓更多的開發者參與到CNCF的工作中,共同定義Cloud Native的标準。有了這個标準以後,所有的企業可以和雲有很好的結合,同時不需要綁定,可以更好的做切換,這對所有公司來講是非常巨大的幫助。
CNCF招募了很多企業一同參與軟體定義,阿裡巴巴也參與了其中的很多工作。我們提出了OpenMessaging的标準,希望借助标準讓開發者更好的使用消息引擎,背後所有的産品不用綁定任何的廠家,也不需要綁定任何一個産品。我想,這也是CNCF希望社群成員推進的事情,讓開發者所開發的應用,都具備Cloud Native的特征。
開源産品逐漸成為技術架構選型主流
其實回過頭看,現在開發者在選擇一個技術架構時會發現,開源産品成為技術架構選型的主流選擇的趨勢越來越明顯。我們在所有的場景中都越來越多的使用開源。阿裡巴巴在2007年做系統架構改造的時候,雖然外部有一些優秀的開源産品,但是要滿足阿裡自身的大規模業務需求、高性能需求和高穩定性需求,會發現,很多開源産品非常難适應。那個階段,很多企業雖然也會用開源,但到最後,仍然會自己去開發一個産品。原因也是因為當時的一些開源産品确實存在當面對比較複雜的業務場景時,不太好應對的情況。
但從近幾年的發展趨勢來看,我們認為開源産品的品質已經越來越高了,很多開源産品都已經不僅僅像以前那樣隻能用來支援很小的場景,而是在比較複雜的場景中都可以提供非常大的幫助。是以,這也使得現在開發者群體選擇技術架構的時候,會更多的考慮使用開源産品,通過開源把整個業務的實作過程加速起來。
舉三個例子
比如說現在業界比較火的微服務解決方案Dubbo,我們在Dubbo項目上投入了十幾個工程師,在經曆多次故障反複演進後,最終打磨成一個健康、穩定的産品。現在,随着Dubbo的開源,很多公司可以在很短的時間走過阿裡巴巴過去花幾年時間走過的路,避免重複造輪子,而且還不用投入那麼多人。
在消息流轉領域,以往,很多開發者都會使用Kafka消息訂閱的傳輸方式以及簡單的實時資料的處理方式,自阿裡巴巴開源RocketMQ,并于去年成為Apache的頂級項目後,越來越多的開發者開始使用RocketMQ作為他們的消息引擎,讓開發者有了更多的選擇。
此外,由阿裡巴巴牽頭發起,和Yahoo、滴滴、Streamlio、微衆銀行、Datapipeline 等公司共同建立的分布式消息規範OpenMessaging,于去年正式入駐Linux基金會,這也是國内首個在全球範圍發起的分布式計算領域的國際标準,幫助開發者在跨異構系統和平台間更高效的開發消息分發和流應用。
最後像更加火爆的大資料領域,可以看到像很多年前的Hadoop,現在的Spark和Flink都是用來滿足大資料領域各類需求非常重要的開源産品。其實還有很多都沒有列,例如AI領域的TensorFlow等等。現在,越來越多的企業不再使用純商業化産品,而是使用通過各類開源産品來建構自己的軟體架構。因為越來越多的開源産品具備類似商業化産品的企業級能力,同時又在被不斷的打磨和演進,以滿足企業的各類業務場景。
開發者定義軟體未來
峰會的主題叫開發者定義軟體的未來。這意味着什麼呢?
當有越來越多的開發者加入開源生态後,開源産品将會在各行各業更好的解決各類通用的技術需求。當它可以解決越來越多的技術需求,就可以讓企業聚焦業務,将資源集中投入到業務的開發上,這對整個業務的創新将會有非常好的加速作用。
現在阿裡巴巴開源了400多個産品,希望阿裡巴巴未來可以開源更多的産品,也希望有更多的開發者可以參與進來,和我們一起更好的定義整個軟體的未來,讓所有的開發者都能夠更加聚焦業務,加速整個業務創新的程序。
原文釋出時間為:2018-10-9
本文作者:畢玄
本文來自雲栖社群合作夥伴“
中生代架構”,了解相關資訊可以關注“
”。