這十年,阿里開發者畢玄的日常
阿里妹導讀:“他始終以開發者自居,是因為對技術愛得深沉。”
本文整理自2018杭州雲棲大會開發者生態峰會的現場速記,阿里巴巴中介軟體負責人、 開發者畢玄,分享了他在阿里十多年來對軟體開發的感悟,希望對你有所啟發。
我是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多個產品,希望阿里巴巴未來可以開源更多的產品,也希望有更多的開發者可以參與進來,和我們一起更好的定義整個軟體的未來,讓所有的開發者都能夠更加聚焦業務,加速整個業務創新的程式。
你可能還喜歡
點選下方圖片即可閱讀
關注「阿里技術」
把握前沿技術脈搏
相關文章
- 畢玄:我在阿里這十年,關於開源不得不說的事阿里
- 阿里雲畢玄:與開發者群體共建雲原生軟體技術棧阿里
- 阿里畢玄:程式設計師的成長路線阿里程式設計師
- 阿里畢玄:技術人應如何選擇職業發展路線?阿里
- 阿里畢玄:程式設計師如何提升自己的硬實力阿里程式設計師
- 阿里十年,只剩下這套Java開發體系了阿里Java
- 大資料老兵的“回憶殺”:我做開發者這十年大資料
- 阿里畢玄:程式設計師應如何選擇職業成長路線?阿里程式設計師
- 開發日常
- 阿里畢玄:從生物系學生,到技術團隊 leader,他是如何完成自我蛻變的阿里
- 十年開發的程式設計師,總結出了這些開發經驗程式設計師
- 阿里雲算力的十年更迭史,重點都在這了!阿里
- 阿里雲開發者工具上手體驗阿里
- PHP 日常開發備忘PHP
- Idea日常開發外掛Idea
- 與《肯塔基 0 號公路》開發者們暢談十年開發的酸甜苦辣
- 聊聊開發日常的效率提升工具(全)
- 開發十年,就只剩下這套架構體系了!架構
- 主流開源開發者工具落地阿里雲,進一步提升開發者體驗阿里
- 分享阿里巴巴 8 款開發者工具阿里
- 開發者不騙開發者,你跟我說這隻要100塊?
- 阿里雲:開發者是數字文明的建築師阿里
- 開發十年,部落格園十年
- 記錄ABAP開發的日常——SAP_PO開發同步介面案例
- 十年再出發:阿里雲智慧戰略加速的“四級火箭”阿里
- Android 日常開發問題總結Android
- MySQL Ruler mysql 日常開發規範MySql
- 重磅 | 阿里開源首個 Serverless 開發者平臺 Serverless Devs阿里Serverdev
- 記錄一次日常開發中基於阻塞佇列的生產者和消費者模型佇列模型
- 想入職阿里的Java開發者必看,阿里巴巴面試官實戰經驗分享!阿里Java面試
- 阿里巴巴程式設計師常用的 15 款開發者工具阿里程式設計師
- 阿里玄難:面向不確定性的軟體設計幾點思考阿里
- 一個值得學習的專案—可用於應用開發者畢業答辯
- 求救信:救下園子,保住這塊開發者的天地
- 這座暗藏玄機的“智慧島”,竟然出自華為之手
- 上雲十年:阿里雲的奇幻漂流阿里
- 如何做好卡牌遊戲? 這些開發者是這麼說的遊戲
- iOS-日常開發常用巨集定義iOS