腾讯开源之道:基于Apache之道的开源实践与探索
8月6日,騰訊開源聯(lián)盟主席、騰訊云開源生態(tài)總經(jīng)理單致豪在2021 ApacheCon Asia上分享了騰訊對(duì)Apache之道的思考、探索與實(shí)踐的歷程。
作為開源界備受關(guān)注的會(huì)議之一,今年的ApacheCon Asia將持續(xù)3天,開設(shè)14+分論壇,內(nèi)容覆蓋從大數(shù)據(jù)到搜索再到消息隊(duì)列等數(shù)十個(gè)不同類別。
Apache 軟件基金會(huì)成立于 1999 年,迄今為止其管理著 2.27 億多行代碼,有著206個(gè)項(xiàng)目管理委員會(huì),通過精英制領(lǐng)導(dǎo)了350多個(gè) Apache 項(xiàng)目和計(jì)劃,有超過8,100+提交者。
從最初的“Apache小組”到如今成長(zhǎng)為世界上最大的開源基金會(huì)之一,Apache通過其領(lǐng)導(dǎo)力、健全的社區(qū)、以及精英主義思路,鑄就了著名的“Apache之道”(Apache Way),形成了一套推進(jìn)開源社區(qū)可持續(xù)發(fā)展、指導(dǎo)開源項(xiàng)目實(shí)踐的方法論。
騰訊開源自2010年起開始正式萌芽,在11年的發(fā)展歷程中,騰訊大批工程師通過參與、應(yīng)用和貢獻(xiàn)等方式與Apache社區(qū)深度聯(lián)結(jié),并基于Apache之道,踐行著騰訊的開源之道。
騰訊與Apache開源社區(qū)也持續(xù)深入合作,成為多個(gè)Apache項(xiàng)目的活躍貢獻(xiàn)者,以及國內(nèi)首家Apache白金會(huì)員,并推動(dòng)Apache基金會(huì)在開源領(lǐng)域的創(chuàng)新。目前,除了在Hadoop、Spark等眾多項(xiàng)目中擔(dān)任Committer外,騰訊的內(nèi)部團(tuán)隊(duì)還基于Apache中的如InLong、Ozone、Pulsar等項(xiàng)目實(shí)現(xiàn)了對(duì)業(yè)務(wù)的支撐和賦能,并形成了一套最佳實(shí)踐。
Apache 之道對(duì)社區(qū)的重要指導(dǎo)
Apache之道是很難定義的,盡管Apache之道這些年修改了部分內(nèi)容,但“高度透明性”的初心始終是未變的。在單致豪看來,騰訊從Apache之道中學(xué)習(xí)的經(jīng)驗(yàn)歸結(jié)為五條:
1、所有個(gè)人都有機(jī)會(huì)參與,并且可以成為權(quán)威。所有人都可以通過對(duì)社區(qū)的貢獻(xiàn)獲得屬于自己的影響力和個(gè)人成長(zhǎng),以及基于公開獲得的功績(jī)和權(quán)威。
2、Apache基金會(huì)是扁平的結(jié)構(gòu)。這意味著任何角色都是平等的,投票權(quán)重都相同,并且貢獻(xiàn)是在志愿者的基礎(chǔ)上進(jìn)行,騰訊鼓勵(lì)內(nèi)部的工程師都積極參與Apache基金會(huì)的貢獻(xiàn)中。
3、深知開放交流的重要性并踐行。因?yàn)殚_源是全球分布式社區(qū)的協(xié)作,騰訊工程師參與Apache開源項(xiàng)目都是通過郵件列表的異步協(xié)作機(jī)制——代碼、決策相關(guān)的交流都公開透明。
4、鼓勵(lì)一起達(dá)成共識(shí)的決策機(jī)制。共識(shí)可以保持項(xiàng)目前進(jìn)動(dòng)力和新的生產(chǎn)力。但是有時(shí)候不能建立完全共識(shí),那就需要進(jìn)行投票或其他協(xié)調(diào)以幫助刪除具有約束力的決定。
5、最重要的一點(diǎn),“社區(qū)高于代碼”的格言在 Apache 社區(qū)中經(jīng)常得到加強(qiáng)。因?yàn)榻】档纳鐓^(qū)比好的代碼更重要。強(qiáng)大健康的社區(qū)總是可以糾正代碼的問題,而不健康的社區(qū)可能會(huì)努力以可持續(xù)的方式維護(hù)代碼庫。此外,靈活的重要性——這也是Apache 可持續(xù)開源成功不可或缺的一部分。
Apache之道指導(dǎo)下的騰訊開源之道
Apache 項(xiàng)目及其社區(qū)都是獨(dú)特但卻多樣化的。在社區(qū)主導(dǎo)的開發(fā)過程中,Apahce成員將其獲得經(jīng)驗(yàn)的總結(jié)體會(huì)凝聚為了Apache 之道。
其實(shí),騰訊很多開源實(shí)踐、成果都是在Apache之道的指導(dǎo)下進(jìn)行的。通過長(zhǎng)時(shí)間的開源文化基因的沉淀,形成了騰訊以“開放協(xié)作、開源向善”為驅(qū)動(dòng)的開源之道,同時(shí)這也是騰訊的價(jià)值觀及使命愿景,連續(xù)影響著自身的開源實(shí)踐。
主導(dǎo)及捐贈(zèng)開源項(xiàng)目,騰訊踐行 Apache Way之始
在大數(shù)據(jù)流計(jì)算、中間件等領(lǐng)域,騰訊工程師在 Apache 基金會(huì)中的多個(gè)開源項(xiàng)目參與了主導(dǎo)及貢獻(xiàn),憑借貢獻(xiàn)成果獲得了來自基金會(huì)的認(rèn)可。
1)大數(shù)據(jù)領(lǐng)域
例如,從4年前開始,騰訊就相繼主導(dǎo)了 Apache Hadoop 2.8.4/2.8.5版本的發(fā)布,Apache Ozone 1.0.0版本在Hadoop社區(qū)的正式發(fā)布,后者成為了 Apache 基金會(huì)的頂級(jí)項(xiàng)目,同時(shí)也主導(dǎo)了Apache Spark 2.3.2版本的發(fā)布,并成為第一家在社區(qū)里發(fā)布Hadoop和Spark Release的中國公司。
在騰訊主導(dǎo)發(fā)布的Hadoop多個(gè)版本中,就涉及20多個(gè)的特性和優(yōu)化。在 Spark 、Flink、HBase、Hive、MXNet、Parquet等多個(gè)計(jì)算和 AI 框架中,騰訊都是主要的核心貢獻(xiàn)者。
此外,騰訊大數(shù)據(jù)還參與主導(dǎo)了Apache Ozone 的1.0.0版本,并在支持Append、truncate操作,container balancer 功能等問題上,騰訊持續(xù)在投入貢獻(xiàn)以提升Ozone的成熟度。
2)中間件領(lǐng)域
2019年,騰訊將自研的萬億級(jí)大數(shù)據(jù)組件 —— TubeMQ 項(xiàng)目捐贈(zèng)給了Apache基金會(huì),這也是騰訊第一個(gè)捐贈(zèng)到Apache基金會(huì)的開源項(xiàng)目,今年其正式更名為Apache InLong,目前正在Apache基金會(huì)進(jìn)行孵化。
l 基于 Apache 優(yōu)秀及成熟開源項(xiàng)目的深度應(yīng)用
除了主導(dǎo)開源和捐贈(zèng)項(xiàng)目,騰訊也在內(nèi)部多個(gè)業(yè)務(wù)系統(tǒng)中應(yīng)用了Apache基金會(huì)的開源項(xiàng)目。例如在微信、QQ、騰訊云等業(yè)務(wù)版塊中,Apache的開源項(xiàng)目被廣泛應(yīng)用——既覆蓋了大數(shù)據(jù)生態(tài),如數(shù)據(jù)傳輸、存儲(chǔ)、計(jì)算和分析等需求場(chǎng)景,也涉及 API 網(wǎng)關(guān)、可觀測(cè)等服務(wù)治理的技術(shù)領(lǐng)域。
尤其是在大數(shù)據(jù)、API網(wǎng)關(guān)、可觀測(cè)三個(gè)領(lǐng)域,騰訊深度應(yīng)用并且貢獻(xiàn)了Apache基金會(huì)的開源項(xiàng)目。
1)大數(shù)據(jù)項(xiàng)目代表——Ozone和Pulsar應(yīng)用
騰訊大數(shù)據(jù)單日的接入消息量超過 55 萬億,實(shí)時(shí)計(jì)算量超過 65 萬億,平臺(tái)整體算力超過 500 萬核,日分析任務(wù)數(shù)量達(dá)到 1500 萬。
作為日實(shí)時(shí)計(jì)算量最大的公司之一,騰訊需要強(qiáng)大的大數(shù)據(jù)平臺(tái)來支撐業(yè)務(wù)的開展,其能力也不斷被刷新。除自研工具外,充分應(yīng)用外部?jī)?yōu)質(zhì)且成熟的開源項(xiàng)目如Apache Ozone和Apache Pulsar ,為騰訊需要大量數(shù)據(jù)和流量的業(yè)務(wù)場(chǎng)景提供了支撐。
Ozone 是當(dāng)前 Apache Hadoop 生態(tài)圈中新一代分布式文件對(duì)象存儲(chǔ)系統(tǒng),于去年從Apache基金會(huì)畢業(yè)并正式成為Apache頂級(jí)開源項(xiàng)目。它能夠解決Hadoop分布式文件系統(tǒng)HDFS的擴(kuò)展性上限,滿足千億級(jí)小文件的存儲(chǔ)需求。
作為 Ozone的早期采用者,騰訊大數(shù)據(jù)平臺(tái)已經(jīng)部署了一個(gè)超過1000個(gè)節(jié)點(diǎn)的Ozone集群作為大數(shù)據(jù)應(yīng)用的后臺(tái)存儲(chǔ)。此外,騰訊還利用Ozone作為一些私人數(shù)據(jù)倉庫項(xiàng)目的主要存儲(chǔ)解決方案。
目前,騰訊正將越來越多的業(yè)務(wù)接入Ozone,包括數(shù)據(jù)倉庫、機(jī)器學(xué)習(xí)平臺(tái)、K8S集群掛載盤等等。經(jīng)過長(zhǎng)時(shí)間的反復(fù)驗(yàn)證改進(jìn)后,內(nèi)部Ozone能夠以千臺(tái)以上的規(guī)模長(zhǎng)時(shí)間穩(wěn)定運(yùn)行,且無須人工運(yùn)維介入。在驗(yàn)證改進(jìn)過程中,騰訊做了大量的優(yōu)化工作來改進(jìn)性能,提升穩(wěn)定性。
作為下一代云原生分布式消息流平臺(tái),Pulsar 集消息、存儲(chǔ)和函數(shù)式計(jì)算為一體,并采用存儲(chǔ)與計(jì)算分離的架構(gòu)。Pulsar 目前在騰訊云內(nèi)部已經(jīng)成功支持大量數(shù)據(jù)和流量業(yè)務(wù)場(chǎng)景,還有在云原生環(huán)境上的一些實(shí)踐經(jīng)驗(yàn),例如解決快速動(dòng)態(tài)擴(kuò)縮容,提升集群資源的利用率、集群形態(tài)等。
2)API網(wǎng)關(guān)項(xiàng)目代表——APISIX的應(yīng)用與貢獻(xiàn)
隨著服務(wù)數(shù)量和復(fù)雜度上的不斷增長(zhǎng),越來越多企業(yè)采用了微服務(wù)的方式,API 網(wǎng)關(guān)也成為不可或缺的一環(huán)——使用 API 網(wǎng)關(guān)完成統(tǒng)一的流量管理和調(diào)度。
APISIX 是 Apache 去年新增的一個(gè)頂級(jí)的 API 網(wǎng)關(guān)開源項(xiàng)目,從2019年進(jìn)入Apache基金會(huì)的短短一年時(shí)間就完成了畢業(yè)。這也說明了它的活躍度、健康度,且在快速的迭代發(fā)展。
對(duì)比Kong,APISIX 具有高性能、友好的開發(fā)者體驗(yàn)、豐富的插件能力等特征,是騰訊內(nèi)部業(yè)務(wù)選擇它的原因。
在APISIX的基礎(chǔ)上,騰訊對(duì)內(nèi)共享基于公司自研的云系統(tǒng)組件的配套支持,解決業(yè)務(wù)痛點(diǎn),提供高效的API網(wǎng)關(guān)服務(wù);對(duì)外向Apache APISIX開源社區(qū)進(jìn)行貢獻(xiàn),擴(kuò)大影響力,引領(lǐng)開源社區(qū)發(fā)展。
3)可觀測(cè)領(lǐng)域項(xiàng)目代表——Skywalking在騰訊內(nèi)部可觀測(cè)平臺(tái)的應(yīng)用
隨著微服務(wù)架構(gòu)的流行,全鏈路性能監(jiān)測(cè)成為服務(wù)治理需要解決的一大問題,為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8S、Mesos)架構(gòu)而設(shè)計(jì)的可觀測(cè)工具成為首選。
Skywalking是一個(gè)用于分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8S、Mesos)架構(gòu)而設(shè)計(jì),它具有多種監(jiān)控手段,語言探針和Service Mesh多語言自動(dòng)探針,輕量高效且支持告警,具備優(yōu)秀的可視化方案。
Apache Skywalking是吳晟個(gè)人創(chuàng)始項(xiàng)目,項(xiàng)目目前非常活躍,有完善的項(xiàng)目發(fā)展全景圖和里程碑,主倉庫有17,000個(gè)星星數(shù)(Stars),350個(gè)貢獻(xiàn)者。
騰訊內(nèi)部可觀測(cè)平臺(tái)全面兼容Apache Skywalking,Zipkin和Jaeger的客戶端上報(bào),為微服務(wù)體系的客戶端tracing上報(bào)選型提供了極大的便利。同時(shí)使用計(jì)算存儲(chǔ)分離和多層查詢的機(jī)制,提供了非常優(yōu)秀的性能輸出。
此外,在可觀測(cè)領(lǐng)域,騰訊最近也在使用CNCF中非常熱門的OpenTelemetry項(xiàng)目。
三大項(xiàng)目,助力騰訊開源生態(tài)的建設(shè)
當(dāng)然,除了Apache基金會(huì)之外,騰訊目前以頂級(jí)會(huì)員的身份,活躍在全球超過十個(gè)基金會(huì)中。基金會(huì)提供知識(shí)產(chǎn)權(quán)管理的框架、代碼倉庫、問題跟蹤、技術(shù)指導(dǎo)、項(xiàng)目治理、財(cái)務(wù)和公關(guān)管理等服務(wù),騰訊的工程師和全球開發(fā)者們?cè)谄渲幸黄饏f(xié)作。
通過在多個(gè)基金會(huì)中的實(shí)踐與貢獻(xiàn),例如Linux基金會(huì)以及全球最大的云原生開源組織CNCF基金會(huì),騰訊吸取了比較成熟的開源組織治理模式及經(jīng)驗(yàn),并用于指導(dǎo)內(nèi)部項(xiàng)目的對(duì)外開源。
目前,騰訊累計(jì)對(duì)外開源了130多個(gè)自主項(xiàng)目,獲得了超過37萬的Star數(shù),貢獻(xiàn)者人數(shù)也超過了2000人。項(xiàng)目覆蓋了云原生、大數(shù)據(jù)、人工智能、數(shù)據(jù)庫等多個(gè)技術(shù)領(lǐng)域,有對(duì)外專注人工智能領(lǐng)域的Angel開源項(xiàng)目和微服務(wù)領(lǐng)域的TARS開源項(xiàng)目,在KVM、OpenJDK,騰訊都位列其全球貢獻(xiàn)者榜單前列,包括在Kubernetes、Spring Cloud、MariaDB等開源社區(qū)中,騰訊也在大力推動(dòng)開源項(xiàng)目、產(chǎn)品以及解決方案的落地。
基于內(nèi)部的開源項(xiàng)目,活躍于開源社區(qū)的經(jīng)驗(yàn)歷程,以及開源人才培養(yǎng)的項(xiàng)目,騰訊開源生態(tài)已逐步建立并不斷完善。
在未來的一段時(shí)間內(nèi),騰訊云將重點(diǎn)通過三大項(xiàng)目進(jìn)一步壯大騰訊開源生態(tài)的建設(shè):
1)建立“騰源會(huì)”社區(qū)。騰源會(huì)是騰訊云成立的匯聚開源項(xiàng)目、開源愛好者、開源領(lǐng)導(dǎo)者的開放社區(qū),致力于幫助開源項(xiàng)目健康成長(zhǎng)、開源愛好者能交流協(xié)助、開源領(lǐng)導(dǎo)者能發(fā)揮領(lǐng)袖價(jià)值,讓全球開源生態(tài)變得更加繁榮。
未來,騰訊希望通過“騰源會(huì)”這一中立性組織為開源交流和項(xiàng)目孵化搭建平臺(tái),通過開源孵化器、共創(chuàng)社區(qū)、開源研討活動(dòng)和實(shí)操類活動(dòng)的舉辦,鏈接更多的開源項(xiàng)目,開源愛好者、實(shí)踐者和領(lǐng)導(dǎo)者,以及全球的開源基金會(huì)、開源文化。
2)建立產(chǎn)業(yè)開源聯(lián)合實(shí)驗(yàn)室。開源實(shí)驗(yàn)室是項(xiàng)目實(shí)戰(zhàn)的落地場(chǎng)所。未來,騰訊云計(jì)劃陸續(xù)和國內(nèi)多所知名高校以及開源企業(yè)一起成立產(chǎn)業(yè)聯(lián)合開源實(shí)驗(yàn)室,為在校生、科研人員以及企業(yè)內(nèi)的開發(fā)者提供實(shí)戰(zhàn)貢獻(xiàn)代碼平臺(tái),以及開源項(xiàng)目落地產(chǎn)業(yè)的場(chǎng)景。
此外,騰訊今年也正式發(fā)布了“犀牛鳥開源人才培養(yǎng)計(jì)劃”,通過打造面向高校學(xué)生的開源課程和開源實(shí)踐培養(yǎng)方案,培育開源人才、普及開源文化,助力開源人才生態(tài)的發(fā)展。
3)發(fā)布《云原生開源白皮書》。今年5月的“云原生產(chǎn)業(yè)大會(huì)“上,騰訊云聯(lián)合信通院宣布正式啟動(dòng)《云原生開源白皮書》編寫工作,目前該白皮書還在編寫過程中,預(yù)計(jì)將在年底正式發(fā)布。
以上這些平臺(tái)和項(xiàng)目的建設(shè),開源實(shí)踐者和企業(yè)都可以參與進(jìn)來。
結(jié)語
迄今Apache基金會(huì)已經(jīng)運(yùn)營(yíng)了22年,事實(shí)證明它是將組織結(jié)構(gòu)和靈活性平衡的開放性組織建設(shè)的最佳實(shí)踐之一。騰訊也在持續(xù)將Apache之道內(nèi)化于其自身開源理念、開源方法論和開源生態(tài)建設(shè)的實(shí)操中。
未來,或許也會(huì)有越來越多的高校、企業(yè)或組織能在騰訊構(gòu)建的開放性社區(qū)中,這是一條不遠(yuǎn)的路。
總結(jié)
以上是生活随笔為你收集整理的腾讯开源之道:基于Apache之道的开源实践与探索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北森完成2.6亿美金融资,一体化×低代码
- 下一篇: 2021 云原生开门红,金山云发布全新云