8月6日,騰訊開源聯盟主席、騰訊雲開源生態總經理單致豪在2021 ApacheCon Asia上分享了騰訊對Apache之道的思考、探索與實踐的歷程。數據庫
做爲開源界備受關注的會議之一,今年的ApacheCon Asia將持續3天,開設14+分論壇,內容覆蓋從大數據到搜索再到消息隊列等數十個不一樣類別。微信
Apache 軟件基金會成立於 1999 年,迄今爲止其管理着 2.27 億多行代碼,有着206個項目管理委員會,經過精英制領導了350多個 Apache 項目和計劃,有超過8,100+提交者。markdown
從最初的「Apache小組」到現在成長爲世界上最大的開源基金會之一,Apache經過其領導力、健全的社區、以及精英主義思路,鑄就了著名的「Apache之道」(Apache Way),造成了一套推動開源社區可持續發展、指導開源項目實踐的方法論。架構
騰訊開源自2010年起開始正式萌芽,在11年的發展歷程中,騰訊大批工程師經過參與、應用和貢獻等方式與Apache社區深度聯結,並基於Apache之道,踐行着騰訊的開源之道。框架
騰訊與Apache開源社區也持續深刻合做,成爲多個Apache項目的活躍貢獻者,以及國內首家Apache白金會員,並推進Apache基金會在開源領域的創新。目前,除了在Hadoop、Spark等衆多項目中擔任Committer外,騰訊的內部團隊還基於Apache中的如InLong、Ozone、Pulsar等項目實現了對業務的支撐和賦能,並造成了一套最佳實踐。運維
Apache之道是很難定義的,儘管Apache之道這些年修改了部份內容,但「高度透明性」的初心始終是未變的。在單致豪看來,騰訊從Apache之道中學習的經驗歸結爲五條:機器學習
一、全部我的都有機會參與,而且能夠成爲權威。全部人均可以經過對社區的貢獻得到屬於本身的影響力和我的成長,以及基於公開得到的功績和權威。異步
二、**Apache基金會是扁平的結構。**這意味着任何角色都是平等的,投票權重都相同,而且貢獻是在志願者的基礎上進行,騰訊鼓勵內部的工程師都積極參與Apache基金會的貢獻中。分佈式
三、**深知開放交流的重要性並踐行。**由於開源是全球分佈式社區的協做,騰訊工程師參與Apache開源項目都是經過郵件列表的異步協做機制——代碼、決策相關的交流都公開透明。函數
四、**鼓勵一塊兒達成共識的決策機制。**共識能夠保持項目前進動力和新的生產力。可是有時候不能創建徹底共識,那就須要進行投票或其餘協調以幫助刪除具備約束力的決定。
五、最重要的一點,**「社區高於代碼」的格言在 Apache 社區中常常獲得增強。**由於健康的社區比好的代碼更重要。強大健康的社區老是能夠糾正代碼的問題,而不健康的社區可能會努力以可持續的方式維護代碼庫。此外,靈活的重要性——這也是Apache 可持續開源成功不可或缺的一部分。
Apache 項目及其社區都是獨特但卻多樣化的。在社區主導的開發過程當中,Apahce成員將其得到經驗的總結體會凝聚爲了Apache 之道。
其實,騰訊不少開源實踐、成果都是在Apache之道的指導下進行的。經過長時間的開源文化基因的沉澱,造成了騰訊以「開放協做、開源向善」爲驅動的開源之道,同時這也是騰訊的價值觀及使命願景,連續影響着自身的開源實踐。
l 主導及捐贈開源項目,騰訊踐行 Apache Way之始
在大數據流計算、中間件等領域,騰訊工程師在 Apache 基金會中的多個開源項目參與了主導及貢獻,憑藉貢獻成果得到了來自基金會的承認。
1**)大數據領域**
例如,從4年前開始,騰訊就相繼主導了 Apache Hadoop 2.8.4/2.8.5版本的發佈,Apache Ozone 1.0.0版本在Hadoop社區的正式發佈,後者成爲了 Apache 基金會的頂級項目,同時也主導了Apache Spark 2.3.2版本的發佈,併成爲第一家在社區裏發佈Hadoop和Spark Release的中國公司。
在騰訊主導發佈的Hadoop多個版本中,就涉及20多個的特性和優化。在 Spark 、Flink、HBase、Hive、MXNet、Parquet等多個計算和 AI 框架中,騰訊都是主要的核心貢獻者。
此外,騰訊大數據還參與主導了Apache Ozone 的1.0.0版本,並在支持Append、truncate操做,container balancer 功能等問題上,騰訊持續在投入貢獻以提高Ozone的成熟度。
2**)中間件領域**
2019年,騰訊將自研的萬億級大數據組件 —— TubeMQ 項目捐贈給了Apache基金會,這也是騰訊第一個捐贈到Apache基金會的開源項目,今年其正式改名爲Apache InLong,目前正在Apache基金會進行孵化。
l 基於 Apache 優秀及成熟開源項目的深度應用
除了主導開源和捐贈項目,騰訊也在內部多個業務系統中應用了Apache基金會的開源項目。例如在微信、QQ、騰訊雲等業務版塊中,Apache的開源項目被普遍應用——既覆蓋了大數據生態,如數據傳輸、存儲、計算和分析等需求場景,也涉及 API 網關、可觀測等服務治理的技術領域。
尤爲是在大數據、API網關、可觀測三個領域,騰訊深度應用而且貢獻了Apache基金會的開源項目。
1**)大數據項目表明——Ozone和Pulsar應用**
騰訊大數據單日的接入消息量超過 55 萬億,實時計算量超過 65 萬億,平臺總體算力超過 500 萬核,日分析任務數量達到 1500 萬。
做爲日實時計算量最大的公司之一,騰訊須要強大的大數據平臺來支撐業務的開展,其能力也不斷被刷新。除自研工具外,充分應用外部優質且成熟的開源項目如Apache Ozone和Apache Pulsar ,爲騰訊須要大量數據和流量的業務場景提供了支撐。
Ozone 是當前 Apache Hadoop 生態圈中新一代分佈式文件對象存儲系統,於去年從Apache基金會畢業並正式成爲Apache頂級開源項目。它可以解決Hadoop分佈式文件系統HDFS的擴展性上限,知足千億級小文件的存儲需求。
做爲 Ozone的早期採用者,騰訊大數據平臺已經部署了一個超過1000個節點的Ozone集羣做爲大數據應用的後臺存儲。此外,騰訊還利用Ozone做爲一些私人數據倉庫項目的主要存儲解決方案。
目前,騰訊正將愈來愈多的業務接入Ozone,包括數據倉庫、機器學習平臺、K8S集羣掛載盤等等。通過長時間的反覆驗證改進後,內部Ozone可以以千臺以上的規模長時間穩定運行,且無須人工運維介入。在驗證改進過程當中,騰訊作了大量的優化工做來改進性能,提高穩定性。
做爲下一代雲原生分佈式消息流平臺,Pulsar 集消息、存儲和函數式計算爲一體,並採用存儲與計算分離的架構。Pulsar 目前在騰訊雲內部已經成功支持大量數據和流量業務場景,還有在雲原生環境上的一些實踐經驗,例如解決快速動態擴縮容,提高集羣資源的利用率、集羣形態等。
2**)API網關項目表明——APISIX的應用與貢獻**
隨着服務數量和複雜度上的不斷增加,愈來愈多企業採用了微服務的方式,API 網關也成爲不可或缺的一環——使用 API 網關完成統一的流量管理和調度。
APISIX 是 Apache 去年新增的一個頂級的 API 網關開源項目,從2019年進入Apache基金會的短短一年時間就完成了畢業。這也說明了它的活躍度、健康度,且在快速的迭代發展。
對比Kong,APISIX 具備高性能、友好的開發者體驗、豐富的插件能力等特徵,是騰訊內部業務選擇它的緣由。
在APISIX的基礎上,騰訊對內共享基於公司自研的雲系統組件的配套支持,解決業務痛點,提供高效的API網關服務;對外向Apache APISIX開源社區進行貢獻,擴大影響力,引領開源社區發展。
3**)可觀測領域項目表明——Skywalking在騰訊內部可觀測平臺的應用**
隨着微服務架構的流行,全鏈路性能監測成爲服務治理須要解決的一大問題,爲微服務、雲原生架構和基於容器(Docker、K8S、Mesos)架構而設計的可觀測工具成爲首選。
Skywalking是一個用於分佈式系統的應用程序性能監視工具,專爲微服務、雲原生架構和基於容器(Docker、K8S、Mesos)架構而設計,它具備多種監控手段,語言探針和Service Mesh多語言自動探針,輕量高效且支持告警,具有優秀的可視化方案。
Apache Skywalking是吳晟我的創始項目,項目目前很是活躍,有完善的項目發展全景圖和里程碑,主倉庫有17,000個星星數(Stars),350個貢獻者。
騰訊內部可觀測平臺全面兼容Apache Skywalking,Zipkin和Jaeger的客戶端上報,爲微服務體系的客戶端tracing上報選型提供了極大的便利。同時使用計算存儲分離和多層查詢的機制,提供了很是優秀的性能輸出。
此外,在可觀測領域,騰訊最近也在使用CNCF中很是熱門的OpenTelemetry項目。
固然,除了Apache基金會以外,騰訊目前以頂級會員的身份,活躍在全球超過十個基金會中。基金會提供知識產權管理的框架、代碼倉庫、問題跟蹤、技術指導、項目治理、財務和公關管理等服務,騰訊的工程師和全球開發者們在其中一塊兒協做。
經過在多個基金會中的實踐與貢獻,例如Linux基金會以及全球最大的雲原生開源組織CNCF基金會,騰訊吸收了比較成熟的開源組織治理模式及經驗,並用於指導內部項目的對外開源。
目前,騰訊累計對外開源了130多個自主項目,得到了超過37萬的Star數,貢獻者人數也超過了2000人。項目覆蓋了雲原生、大數據、人工智能、數據庫等多個技術領域,有對外專一人工智能領域的Angel開源項目和微服務領域的TARS開源項目,在KVM、OpenJDK,騰訊都位列其全球貢獻者榜單前列,包括在Kubernetes、Spring Cloud、MariaDB等開源社區中,騰訊也在大力推進開源項目、產品以及解決方案的落地。
基於內部的開源項目,活躍於開源社區的經驗歷程,以及開源人才培養的項目,騰訊開源生態已逐步創建並不斷完善。
在將來的一段時間內,騰訊雲將重點經過三大項目進一步壯大騰訊開源生態的建設:
1**)創建「騰源會」社區。**騰源會是騰訊雲成立的匯聚開源項目、開源愛好者、開源領導者的開放社區,致力於幫助開源項目健康成長、開源愛好者能交流協助、開源領導者能發揮領袖價值,讓全球開源生態變得更加繁榮。
將來,騰訊但願經過「騰源會」這一中立性組織爲開源交流和項目孵化搭建平臺,經過開源孵化器、共創社區、開源研討活動和實操類活動的舉辦,連接更多的開源項目,開源愛好者、實踐者和領導者,以及全球的開源基金會、開源文化。
2**)創建產業開源聯合實驗室。**開源實驗室是項目實戰的落地場所。將來,騰訊雲計劃陸續和國內多所知名高校以及開源企業一塊兒成立產業聯合開源實驗室,爲在校生、科研人員以及企業內的開發者提供實戰貢獻代碼平臺,以及開源項目落地產業的場景。
此外,騰訊今年也正式發佈了「犀牛鳥開源人才培養計劃」,經過打造面向高校學生的開源課程和開源實踐培養方案,培育開源人才、普及開源文化,助力開源人才生態的發展。
3**)發佈《雲原生開源白皮書》。**今年5月的「雲原生產業大會「上,騰訊雲聯合信通院宣佈正式啓動《雲原生開源白皮書》編寫工做,目前該白皮書還在編寫過程當中,預計將在年末正式發佈。
以上這些平臺和項目的建設,開源實踐者和企業均可以參與進來。
迄今Apache基金會已經運營了22年,事實證實它是將組織結構和靈活性平衡的開放性組織建設的最佳實踐之一。騰訊也在持續將Apache之道內化於其自身開源理念、開源方法論和開源生態建設的實操中。
將來,或許也會有愈來愈多的高校、企業或組織能在騰訊構建的開放性社區中,這是一條不遠的路。