當前位置:
首頁 > 科技 > 阿里巴巴畢玄:我這十年對軟體開發的感悟

阿里巴巴畢玄:我這十年對軟體開發的感悟

作者 | 畢玄

出處 | 阿里巴巴中間件

本文整理自 2018 杭州雲棲大會首屆開發者生態峰會的現場速記,阿里巴巴中間件負責人 - 開發者畢玄,分享了他在阿里十多年來對軟體開發的感悟,InfoQ 經授權轉載。

我是 2007 年的最後一天加入阿里巴巴的,這十多年以來一直是一位開發者。當然我也承認這幾年寫代碼確實已經很少了,但過去很多年中,開發的工作仍然一直伴隨著我。這十多年裡,我和開源有了很多的接觸,阿里巴巴和開源生態也有了很多的互動。

1

在阿里巴巴,我接觸最多的三個項目

第一個項目是 HSF,是阿里巴巴內部自用的微服務框架,另一個實現類似功能的是 Dubbo,相信在場很多開發者都接觸過 Dubbo。HSF 和 Dubbo 都是阿里巴巴非常重要,用來實現微服務的產品。

在 HSF 之後,我在阿里巴巴做了第二個開源產品,叫 HBase。當時,我們把海外的 HBase 引入到阿里巴巴,並支持了阿里巴巴大量的業務,同時也培養了多位 committer,共同推進 HBase 的發展。

2011 年,阿里巴巴開始啟動容器項目,當時內部代號叫 T4,去年開始把這個項目開源出來了,命名為 Pouch Container,我們希望 Pouch Container 的開源能更好的推進整個容器技術的發展。

阿里在使用業內的各類開源產品,同時也把阿里積累的技術開源出去,貢獻給整個生態,讓開源生態能夠在技術層面加速創新。對於我們來講,開源的意義在於,可以讓所有的開發者們一起參與進來,共同來定義整個軟體的架構。

不管是阿里巴巴還是其他公司,自己開源出去的項目最早都是來源於自身的需求以及對未來技術發展趨勢的判斷。但這個層面相對比較狹窄,如果有更多來自不同行業的開發者可以共同參與到開源工作中來,那麼,整個開源生態的產品就可以更好的適用於各個行業。同時,因為有來自各個行業的需求,開源項目在創新和實用性上就會大幅度增強。所以,開源是讓所有的開發者們共同參與進來,一同加速軟體和架構的升級。

2

分享兩個在開源界比較有名的故事

第一個是很多人都知道的 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 的特徵。

3

開源產品逐漸成為技術架構選型主流

其實回過頭看,現在開發者在選擇一個技術架構時會發現,開源產品成為技術架構選型的主流選擇的趨勢越來越明顯。我們在所有的場景中都越來越多的使用開源。阿里巴巴在 2007 年做系統架構改造的時候,雖然外部有一些優秀的開源產品,但是要滿足阿里自身的大規模業務需求、高性能需求和高穩定性需求,會發現,很多開源產品非常難適應。那個階段,很多企業雖然也會用開源,但到最後,仍然會自己去開發一個產品。原因也是因為當時的一些開源產品確實存在當面對比較複雜的業務場景時,不太好應對的情況。

但從近幾年的發展趨勢來看,我們認為開源產品的質量已經越來越高了,很多開源產品都已經不僅僅像以前那樣只能用來支持很小的場景,而是在比較複雜的場景中都可以提供非常大的幫助。所以,這也使得現在開發者群體選擇技術架構的時候,會更多的考慮使用開源產品,通過開源把整個業務的實現過程加速起來。

4

舉三個例子

比如說現在業界比較火的微服務解決方案 Dubbo,我們在 Dubbo 項目上投入了十幾個工程師,在經歷多次故障反覆演進後,最終打磨成一個健康、穩定的產品。現在,隨著 Dubbo 的開源,很多公司可以在很短的時間走過阿里巴巴過去花幾年時間走過的路,避免重複造輪子,而且還不用投入那麼多人。

在消息流轉領域,以往,很多開發者都會使用 Kafka 消息訂閱的傳輸方式以及簡單的實時數據的處理方式,自阿里巴巴開源 RocketMQ,並於去年成為 Apache 的頂級項目後,越來越多的開發者開始使用 RocketMQ 作為他們的消息引擎,讓開發者有了更多的選擇。

此外,由阿里巴巴牽頭髮起,和 Yahoo、滴滴、Streamlio、微眾銀行、Datapipeline 等公司共同創建的分散式消息規範 OpenMessaging,於去年正式入駐 Linux 基金會,這也是國內首個在全球範圍發起的分散式計算領域的國際標準,幫助開發者在跨異構系統和平台間更高效的開發消息分發和流應用。

最後像更加火爆的大數據領域,可以看到像很多年前的 Hadoop,現在的 Spark 和 Flink 都是用來滿足大數據領域各類需求非常重要的開源產品。其實還有很多都沒有列,例如 AI 領域的 TensorFlow 等等。現在,越來越多的企業不再使用純商業化產品,而是使用通過各類開源產品來構建自己的軟體架構。因為越來越多的開源產品具備類似商業化產品的企業級能力,同時又在被不斷的打磨和演進,以滿足企業的各類業務場景。

5

開發者定義軟體未來

峰會的主題叫開發者定義軟體的未來。這意味著什麼呢?

當有越來越多的開發者加入開源生態後,開源產品將會在各行各業更好的解決各類通用的技術需求。當它可以解決越來越多的技術需求,就可以讓企業聚焦業務,將資源集中投入到業務的開發上,這對整個業務的創新將會有非常好的加速作用。

現在阿里巴巴開源了 400 多個產品,希望阿里巴巴未來可以開源更多的產品,也希望有更多的開發者可以參與進來,和我們一起更好的定義整個軟體的未來,讓所有的開發者都能夠更加聚焦業務,加速整個業務創新的進程。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

Kubernetes大熱,可你為什麼還是用不好?
2018年最新人工智慧書單,總有一本你愛的丨文末送書

TAG:InfoQ |