你所不知道的阿里開源那些事兒
破土而出的生命力,源自理想主義者心底對技術的信念。
云原生技術正席卷全球,云原生基金會在去年 KubeCon +CloudNativeCon NA 的現(xiàn)場宣布:
其正在孵化的項目已達 14 個,入駐的廠家或產品已超過 300 家,并吸引了 2.2 萬開發(fā)者參與項目代碼貢獻,其明星產品 Kubenetes 的 GitHub 上 Authors 和 Issues 量已排行開源領域的第二名。
今年,KubeCon + CloudNativeCon 首次來到中國。
在 2018 KubeCon + CloudNativeCon 的現(xiàn)場,阿里云研究員伯瑜向在場的開發(fā)者們宣布,CNCF 已將阿里巴巴云原生鏡像分發(fā)系統(tǒng) Dragonfly 接納為其沙箱項目(Sandbox),并有機會成為國內首個從 CNCF 畢業(yè)的開源項目。目前已經畢業(yè)的兩個項目,一個是 Kubernetes,另一個是 Prometheus。
據悉,目前阿里巴巴已經有 8 個項目進入 CNCF 云原生全景圖,分別是分布式服務治理框架 Dubbo、分布式消息引擎 RocketMQ、流量控制組件 Sentinel、企業(yè)級富容器技術 PouchContainer、服務發(fā)現(xiàn)和管理 Nacos、分布式消息標準 OpenMessaging、云原生鏡像分發(fā)系統(tǒng) Dragonfly 和高可用服務 AHAS。
時間回到 2016 年。
2016 年的那屆雙 11,RocketMQ 創(chuàng)始人馮嘉和他的團隊首次將低延遲存儲解決方案應用于雙 11 的支撐,經受住了流量的大考,整個大促期間,99.996% 的延遲落在了 10ms 以內,完成了保障交易穩(wěn)定的既定目標。
對于讀寫比例幾乎均衡的分布式消息引擎來說,這一技術上的突破,即便是放在全球范圍內,也絕對是值得稱贊的。
RocketMQ 團隊和社區(qū)開發(fā)者們
另一邊,在歷時 3 個月的開源重塑后,馮嘉和他的團隊啟動了 RocketMQ 向 Apache 軟件基金會的捐贈之路,但邁出這一步并不容易。
“當時國內的開源氛圍還沒有現(xiàn)在那么活躍,開源之后,很多設計、源碼和文檔的維護工作還不夠理想,但我們就是想證明國內的開源項目和開源社區(qū)也可以在世界的開源舞臺上發(fā)揮價值。”
經過近一年的努力,在 2017 年 9 月 25 日,Apache 軟件基金會官方宣布,阿里巴巴捐贈給 Apache 社區(qū)的開源項目 RocketMQ 從 Apache 社區(qū)正式畢業(yè),成為 Apache 頂級項目(TLP),這是國內首個非 Hadoop 生態(tài)體系的 Apache 社區(qū)頂級項目?! ?/p>
值得一提的是,根據項目畢業(yè)前的統(tǒng)計,RocketMQ 有百分八十的新特性與生態(tài)集成來自于社區(qū)的貢獻。
2017 年,消息領域出現(xiàn)一件里程碑事件。
分布式消息領域的國際標準 OpenMessaging 開源項目正式入駐 Linux 基金會,這是國內首個在全球范圍發(fā)起的分布式計算領域的國際標準。
消息通訊已經成為現(xiàn)代數(shù)據驅動架構的關鍵環(huán)節(jié),但在全球范圍內,消息領域仍然存在兩大問題:
一是缺乏供應商中立的行業(yè)標準,導致各種消息中間件的高復雜性和不兼容性,相應地造成了公司的產品低效、混亂和供應商鎖定等問題。
二是目前已有的方案框架并不能很好地適配云架構,即非云原生架構,因此無法有效地對大數(shù)據、流計算和物聯(lián)網等新興業(yè)務需求提供技術支持。
這也是馮嘉和他的團隊在開源 RocketMQ 過程中,開發(fā)者和合作伙伴經常會提到的問題:“在消息領域,市場上出現(xiàn)了各類不同的開源解決方案,這導致了用戶更高的接入和維護成本,為了確保各個消息引擎間能正常通信,還要投入大量的精力去做兼容。”
這時候,建立一套供應商中立,和語言無關的消息領域的事實標準,成為各社區(qū)成員共同的訴求。
感謝大家,是馮嘉參加社區(qū)獲得最常說的一句話
此后,在 2017 年 9 月,阿里巴巴發(fā)起 OpenMessaging 項目,并邀請了雅虎、滴滴出行、Streamlio 共同參與,一年后,參與 OpenMessaging 開源標準社區(qū)的企業(yè)達 10 家之多,包括阿里巴巴、Datapipeline、滴滴出行、浩鯨科技、京東商城、青云 QingCloud、Streamlio、微眾銀行、Yahoo、中國移動蘇州研發(fā)中心(按首字母排序),此外,還獲得了 RocketMQ、RabbitMQ 和 Pulsar 3 個頂級消息開源廠商的支持。
相比于開源一個分布式消息項目,一套開源標準能被各家廠商所接受,對整個國內開源領域而言,是更具有里程碑意義的事件。
2017 年 9 月,Dubbo 重啟開源。
Dubbo 是阿里巴巴于 2012 年開源的分布式服務治理框架,是國內影響力最大、使用最廣泛的開源服務框架之一,在 2016 年、2017 年開源中國發(fā)起的最受歡迎的中國開源軟件評選中,連續(xù)兩年進入 Top10 名單。2017 年 9 月 7 日,在 Github 將版本更新至 2.5.4,重點升級所依賴的 JDK 及其組件,隨后連續(xù)發(fā)布了 11 個版本。
并于 2018 年 2 月捐獻給 Apache 軟件基金會,希望借助社區(qū)的力量來發(fā)展 Dubbo,打消大家對于 Dubbo 未來的顧慮。
Dubbo 團隊和社區(qū)開發(fā)者們
項目重啟半年后,Dubbo 項目負責人阿里巴巴高級技術專家北緯在接受媒體采訪的時候,從戰(zhàn)略、社區(qū)、生態(tài)和回饋四個方面談了 Dubbo 重啟開源背后的原因。
“集團近幾年開始將開源提到了新的戰(zhàn)略高度,這次投入資源重啟開源,核心是希望讓開源發(fā)揮更大的社會價值,并和廣大開發(fā)者一起,建立一個繁榮的 Dubbo 生態(tài),普惠所有使用 Dubbo 的人和 Dubbo 本身。”
Dubbo 項目組成員朱勇在今年上海的技術沙龍上分享 Dubbo 未來發(fā)展的過程中提到,其后續(xù)的規(guī)劃是要解決好兩個問題。
第一個問題是重點關注技術趨勢,例如云原生對 Dubbo 開源現(xiàn)狀的影響。
第二個問題是 Dubbo 本身定位的問題,除了保持技術上的領先性,還需要圍繞 Dubbo 核心發(fā)展生態(tài),和社區(qū)成員一起將 Dubbo 發(fā)展成一個服務化改造的整體解決方案。
2017 年 11 月,阿里自研容器技術 PouchContainer 開源。
在開源不到一年的時間里,PouchContainer 1.0 GA 版本發(fā)布,達到可生產級別。今年 8 月,PouchContainer 被納入開源社區(qū)開放容器計劃 OCI;9 月,被收錄進高校教材《云計算導論》;11 月,Pouch 團隊攜螞蟻金服容器團隊、阿里云 ACS 團隊,與容器生態(tài) Containerd 社區(qū) Maintainer 進行技術交流,有望發(fā)展成 Containerd 社區(qū) Maintainer 席位,代表國內企業(yè)在世界容器技術領域發(fā)聲。
PouchContainer 發(fā)展速度之快,超出了宏亮的想象。
宏亮是 Docker Swarm 容器集群項目的核心代碼維護者(Maintainer),并于 2015 年 8 月出版了《Docker 源碼分析》一書,對 Docker 架構和源代碼進行了深入的講解,該書在 Docker 領域迅速成為暢銷書籍。2017 年,宏亮承擔起阿里自有容器技術的對內支持和對外推廣工作,秉承初心,希望在競爭激烈的容器開源領域能搶下屬于國內容器技術的一席之地?! ?/p>
在他和團隊的努力下,阿里集團內部已實現(xiàn) 100% 的容器化,并已經開始涉及離線業(yè)務,實現(xiàn)在、離線業(yè)務的混合調度與部署。
整個集團能實現(xiàn) 100% 的容器化,離不開阿里內部自研的 P2P 分發(fā)技術,該項目取名為蜻蜓 Dragonfly,寓意點與點之間的文件分發(fā)能如蜻蜓般輕盈和迅速,解決傳統(tǒng)文件發(fā)布系統(tǒng)中的大規(guī)模下載、遠距離傳輸、帶寬成本和安全傳輸?shù)膯栴}。
日前,Dragonfly 正式進入 CNCF, 并成為國內第三個被列為沙箱級別(Sandbox Level Project)的開源項目,可見,CNCF 在其云原生的技術版圖中正希望借助蜻蜓等優(yōu)秀的鏡像分發(fā)技術,以提升企業(yè)微服務架構下應用的交付效率。
始于阿里,回歸社區(qū)。
今年夏天,國內開源領域,迎來了兩位新成員。
作為微服務和云原生生態(tài)下的兩款重要開源框架/組件,Nacos 主打云原生應用中的動態(tài)服務發(fā)現(xiàn)、配置和服務管理,Sentinle 則是聚焦在限流和降級兩個方面。
Nacos 和 Sentinel 均是在阿里近 10 年的核心業(yè)務場景下沉淀所產生的,他們的開源是對微服務和元原生領域開源技術方案的有效補充,同時也非常強調融入開源生態(tài),除了兼容 Dubbo 和 Sentinel,也支持對 Spring Cloud 和 Kubenetes 等生態(tài),以增強自身的生命力。
“阿里巴巴早在 2007 年進行從 IOE 集中式應用架構升級為互聯(lián)網分布式服務化架構的時候,就意識到在分布式環(huán)境中,諸如分布式服務治理,數(shù)據源容災切換、異地多活、預案和限流規(guī)則等場景下的配置變更難題,因為在一個大型的分布式系統(tǒng)中,你沒有辦法把整個分布式系統(tǒng)停下來,去做一個軟件、硬件或者系統(tǒng)的升級。”阿里巴巴高級技術專家坤宇在 2017 QCon 的現(xiàn)場分享到。
Nacos 團隊成員在雙 11 支持現(xiàn)場
在配置變更領域,我們從 2008 年的無 ConfigServer 時代,借用硬件負載設備 F5 提供的 VIP 功能,通過域名方式來實現(xiàn)服務提供方和調用方之間的通信,逐步經歷了 ConfigServer 單機版、集群版的多次迭代,不斷提高其穩(wěn)定性。
曾寫下支付寶錢包服務端第一行代碼的阿里高級技術專家慕義,在今年深圳的技術沙龍現(xiàn)場回憶了阿里注冊中心自研的 10 年路:
“這期間,集團業(yè)務經歷了跨越式的發(fā)展,每年翻番的服務規(guī)模,不斷的給 ConfigServer 的技術架構演進帶來更高的要求和挑戰(zhàn),使得我們有更多的機會在生產環(huán)境發(fā)現(xiàn)和解決一個個問題的過程中,實現(xiàn)架構的一代代升級。Nacos 便是在這樣的背景下,經過幾代技術人的技術攻堅所產生的。”
我們希望 Nacos 可以幫助開發(fā)者獲得有別于原生或其他第三方服務發(fā)現(xiàn)和動態(tài)配置管理解決方案所提供的能力,滿足開發(fā)者們在微服務落地過程當中對工業(yè)級注冊中心的訴求,縮短想法到實現(xiàn)的路徑。
巧的是,一邊是 Nacos 宣布開源,另一邊是 Spring Cloud 生態(tài)下的服務注冊和發(fā)現(xiàn)組件 Netflix Eureka 宣布閉源,勇敢者的游戲充滿了變數(shù),但在坤宇和他的團隊看來,這場游戲自己可以走到最后,因為我們并不是一個人在戰(zhàn)斗,Nacos 只是阿里眾多開源項目中的一員,隨后還會有更多的開源項目反哺給社區(qū),形成生態(tài),例如輕量級限流降級組件 Sentinel。
Aliware Open Source·深圳站現(xiàn)場
7 月 29 日,Aliware Open Source·深圳站現(xiàn)場,只能容納 400 人的場地,來了 700 多位開發(fā)者。阿里巴巴高級技術專家子矜在現(xiàn)場宣布了輕量級限流降級組件 Sentinel 的開源。
作為阿里巴巴“大中臺、小前臺”架構中的基礎模塊,Sentinel 經歷了 10 年雙 11 的考驗覆蓋了阿里的所有核心場景,也因此積累了大量的流量歸整場景以及生產實踐。
Sentinel 的出現(xiàn),離不開阿里歷屆高可用架構團隊的共同努力。
“在雙 11 備戰(zhàn)中,容量規(guī)劃是最重要也是最具挑戰(zhàn)的環(huán)節(jié)之一。從第一年開始,雙 11 的 0 點時刻就代表了我們的歷史最高業(yè)務訪問量,它通常是日常流量的幾十倍甚至上百倍。因此,如何讓一個技術和業(yè)務持續(xù)復雜的分布式站點去更平穩(wěn)支撐好這突如其來的流量沖擊,是我們這 10 年來一直在解的題。”阿里巴巴高可用架構團隊資深技術專家游驥在今年的雙 11 結束后分享道。
這 10 年,容量規(guī)劃經歷了人工估算、線下壓測、線上壓測、全鏈路壓測、全鏈路壓測和隔離環(huán)境、彈性伸縮相結合的 5 個階段。2013 年雙 11 結束后,全鏈路壓測的誕生解決了容量的確定性問題。
作為一項劃時代的技術,全鏈路壓測的實現(xiàn),對整個集團而言,都是一件里程碑事件。
2014 年,高可用架構團隊獲得集團 CTO 大獎
隨后,基于全鏈路壓測為核心,打造了一系列容量規(guī)劃相關的配套生態(tài),提升能力的同時,降低了整個環(huán)節(jié)的成本、提升效率。隨著容量規(guī)劃技術的不斷演進,2018 年起,高可用架構團隊希望可以把這些年在生成環(huán)境下的實踐,貢獻給社區(qū),之后便有了 Sentinel 的開源。
一邊是作為發(fā)起者。
將自己生產環(huán)境實踐下沉淀出來的架構和技術貢獻給社區(qū)。
另一邊是作為參與者。
基于一些開源項目或云平臺,輸出可以解決開發(fā)者當前工作中存在的痛點的解決方案,例如近期新開源的項目 Spring Cloud Alibaba 和 開發(fā)者工具 Alibaba Cloud Toolkit。
相同的是,技術理想主義者都希望技術可以為讓世界變得更好,這才是技術人的興奮點。
“讓世界的技術因為阿里巴巴而變得更美好一點點”。
這是畢玄郵件簽名中的一句話。他正和一群技術理想主義者,與太平洋另一邊的技術高手們正面 PK,在這場躲不開的戰(zhàn)役中,一起認真一把。
目前,阿里巴巴的開源項目已超過 430 多個(含 SDK 類的開源項目),Github.com 的 star 數(shù)超 25 萬,是目前唯一一家入圍 Github 頂尖貢獻名單的中國公司。
了解更多阿里開源項目: