騰訊云大數(shù)據(jù)團隊:認真做開源的人,眼里有光

來源: OSCHINA
作者:大東BE
時間:2020-11-30
18397
前段時間,Oracle正式發(fā)布了JDK 15,同時作為慣例公布了OpenJDK全球貢獻者榜單,表達了對這些企業(yè)與個人開發(fā)者的感謝。騰訊成為了全球企業(yè)貢獻第五名,是國內(nèi)為OpenJDK貢獻最多的公司,并且是歷史首個進入“Notable”貢獻者范圍的國內(nèi)廠商,得到了Oracle的點名感謝。

前段時間,Oracle正式發(fā)布了JDK 15,同時作為慣例公布了OpenJDK全球貢獻者榜單,表達了對這些企業(yè)與個人開發(fā)者的感謝。其中,Oracle依舊是JDK開發(fā)的主力軍,完成了79.68%的工作量。

但令很多人意想不到是,騰訊成為了全球企業(yè)貢獻第五名,是國內(nèi)為OpenJDK貢獻最多的公司,并且是歷史首個進入“Notable”貢獻者范圍的國內(nèi)廠商,得到了Oracle的點名感謝。

up-eb3e8aca4ee56be437a122b95d1e5e99711.webp.jpg

談到國內(nèi)大廠的開源,社區(qū)中仍然存在不少的偏見。大廠的開源工作究竟是不是為了KPI?除了商業(yè)價值外,大廠的開源工作是否真正為開源社區(qū)帶來了有意義的貢獻?

為了探究騰訊內(nèi)部真實的開源情況,以及這些年來騰訊對開源社區(qū)的實質性貢獻,我們邀請到了騰訊云副總裁、騰訊數(shù)據(jù)平臺部總經(jīng)理蔣杰,騰訊云大數(shù)據(jù)團隊高級技術專家、OpenJDK committer楊曉峰,騰訊技術委員會對外開源管理辦公室總監(jiān)許勇,一起深入探討了騰訊內(nèi)部開源文化的變遷史,獲悉了以騰訊云大數(shù)據(jù)團隊為代表的騰訊技術人,一些鮮為人知的開源故事。

OpenJDK的突出貢獻者

楊曉峰告訴我們,騰訊云大數(shù)據(jù)團隊自2019年以來就一直在積極參與OpenJDK開源生態(tài)的貢獻。

去年11月,騰訊開源內(nèi)部使用的JDK,并命名為Tencent Kona JDK,其定位是一款免費、開箱即用、經(jīng)過騰訊規(guī)模生產(chǎn)驗證的JDK發(fā)行版,為大家提供在數(shù)據(jù)科學和云原生領域的最佳產(chǎn)品體驗。

據(jù)介紹,Kona JDK基于OpenJDK主分支定制,針對大數(shù)據(jù)和云計算等場景需求,引入了JDK 11的特性,能夠幫助用戶無感知的使用共享核心類信息來提高啟動速度,在云場景下JVM的啟動速度最高能夠提升到40%左右。為了增強線上診斷的能力,騰訊Kona JDK還引入了JFR等功能,可以幫助java用戶獲得從系統(tǒng)到應用的profiling信息,增強運行時診斷以及熱點分析,指導優(yōu)化,并陸續(xù)在后續(xù)版本更新中開源了GC等模塊的多個自研特性。

Kona JDK主要由來自騰訊云大數(shù)據(jù)團隊的OpenJDK社區(qū)資深參與者負責研發(fā)和維護,該團隊一直以來都在積極回饋OpenJDK社區(qū)。在今年3月JDK 14發(fā)布時,騰訊就進入了OpenJDK全球突出貢獻者名單。

公開數(shù)據(jù)顯示,短短不到一年,騰訊云大數(shù)據(jù)團隊已向OpenJDK社區(qū)貢獻了50+commits,很多commits與騰訊自身在海量大數(shù)據(jù)生產(chǎn)負載技術方面的經(jīng)驗相關,其中針對Vector API向量計算、Loom協(xié)程、ZGC等方面的改進,是業(yè)界少有的生產(chǎn)級別前沿實踐,為OpenJDK社區(qū)做出了十分有價值的貢獻。

亮眼的開源答卷

長久以來,由于在社交、游戲等領域的業(yè)務特色過于鮮明,導致很多人忽略了騰訊的技術價值,尤其是在開源領域的貢獻。以騰訊云大數(shù)據(jù)團隊為例,除了積極參與OpenJDK社區(qū)以外,騰訊近年來在開源領域的貢獻著實不少。

從2014年開始,騰訊即開始將內(nèi)部的第一代大數(shù)據(jù)平臺核心即騰訊版的Hive進行了開源。2017年,騰訊又把基于AI技術的第三代大數(shù)據(jù)平臺的核心Angel開源,并將該項目捐贈給了Linux基金會旗下專注人工智能的LF AI基金會,支持推動該項目順利成為基金會畢業(yè)項目。

去年11月,騰訊除了Kona JDK外同期宣布開源的項目還有另外三個,分別是分布式消息中間件TubeMQ、分布式HTAP數(shù)據(jù)庫TBase以及企業(yè)級K8s發(fā)行版TKEStack。

其中,TubeMQ項目是騰訊云大數(shù)據(jù)從7年前起開始研發(fā)的一款分布式消息中間件,支撐了騰訊QQ、微信等應用的海量數(shù)據(jù)業(yè)務,目前每天支撐的數(shù)據(jù)量超過30萬億條。TubeMQ可支持數(shù)據(jù)的高性能存儲與傳輸,吞吐率高,延遲可低至5ms。目前,TubeMQ已經(jīng)捐贈給Apache基金會,被ASF正式接受為孵化級項目。

TBase則是騰訊基于PostgreSQL開發(fā)的分布式HTAP數(shù)據(jù)庫。該數(shù)據(jù)庫具備高性能可擴展的分布式事務能力,支持RC和RR兩種隔離級別,通過安全、管理、審計三權分立體系,提供全方位的數(shù)據(jù)安全保證機制。性能方面支持高性能分區(qū)表,可使得數(shù)據(jù)檢索效率成倍提升。在兼容SQL 2003標準、PostgreSQL語法和常用Oracle函數(shù)&數(shù)據(jù)類型、窗口函數(shù)等基礎上,額外提供大小商戶數(shù)據(jù)分離、冷熱數(shù)據(jù)分離等高效的數(shù)據(jù)治理能力。

TKEStack是騰訊將內(nèi)部的容器編排平臺基礎上改進推出的K8s發(fā)行版。該平臺面向離線業(yè)務、在線業(yè)務混部的業(yè)務場景,能夠穩(wěn)定地管理萬級別的Kubernetes集群,并且提供全方位的資源管控,解決網(wǎng)絡帶寬控制、磁盤IO等難題。同時TKEStack還擁有騰訊創(chuàng)新的GPU虛擬化技術包括對GPU調(diào)度的改進。

除了將技術對外開源之外,騰訊云大數(shù)據(jù)團隊還以貢獻代碼的方式投入到開源社區(qū)建設中。今年9月,Apache Hadoop社區(qū)發(fā)布新一代分布式存儲系統(tǒng)Ozone 1.0.0,該項目解決了Hadoop分布式文件系統(tǒng)在可擴展性上的缺陷,能夠滿足千億級小文件的存儲需求。隨著1.0.0的發(fā)布,騰訊也參與和見證了Ozone從Apache Hadoop社區(qū)孵化,到經(jīng)ASF董事會的批準,直至正式成為一個Apache頂級開源項目的過程。騰訊云大數(shù)據(jù)Ozone項目技術負責人,被社區(qū)推選為Apache Ozone首位項目主席(Chair),同時項目團隊誕生了多位PMC成員和committer,帶領社區(qū)一起把Ozone打造成下一代大數(shù)據(jù)存儲系統(tǒng)。

值得一提的是,在大數(shù)據(jù)開源領域的突出表現(xiàn)并非個例,根據(jù)騰訊開源主頁的統(tǒng)計信息顯示,目前由騰訊主導的開源項目倉庫共有112個,代碼貢獻者1801人,項目fork總數(shù)超過67萬,star總數(shù)超過33萬。騰訊公司也已經(jīng)成為Apache基金會、Linux基金會以及Openstack基金會的白金贊助商,同時還是國內(nèi)首個開源基金會——開放原子開源基金會的聯(lián)合發(fā)起企業(yè)之一。

擁抱開源的技術路線

騰訊云大數(shù)據(jù)的開源生態(tài)發(fā)展到今天,并不是一蹴而就的事情。

在2009年之前,騰訊與很多其他傳統(tǒng)互聯(lián)網(wǎng)公司一樣,內(nèi)部業(yè)務主要使用傳統(tǒng)的關系型數(shù)據(jù)庫。2009年開始,隨著互聯(lián)網(wǎng)流量的爆發(fā),傳統(tǒng)的單機數(shù)據(jù)庫所提供的服務在系統(tǒng)可擴展性、性價比方面已不再適用騰訊業(yè)務爆發(fā)式的增長。面對這種變化,騰訊云大數(shù)據(jù)轉向基于開源的分布式Hadoop體系,構建了騰訊的第一代大數(shù)據(jù)平臺。

2011年末,堅信開源就是未來的大數(shù)據(jù)技術專家,現(xiàn)任騰訊云副總裁、騰訊數(shù)據(jù)平臺部總經(jīng)理蔣杰來到騰訊,據(jù)蔣杰回憶,他剛剛來到騰訊時,騰訊云數(shù)據(jù)中心的Hadoop集群剛剛起步,規(guī)模只有200臺。

由于開源社區(qū)具備支持力強,會不斷引進創(chuàng)新,始終處于技術發(fā)展的前沿,在生態(tài)以及人才方面具有不可比擬的優(yōu)勢,所以騰訊云大數(shù)據(jù)團隊堅定選擇了擁抱開源的路線。

蔣杰和騰訊云大數(shù)據(jù)團隊基于開源軟件,不斷建設各種組件,從Hadoop基礎存儲HDFS開始,到改造NameNode,改造MR的整個調(diào)度。之后又進入移動互聯(lián)網(wǎng)時代,團隊又從Hadoop轉向Spark和Storm體系,建立消息中間件,構建企業(yè)級的實時數(shù)據(jù)分析體系。

2015年左右開始,隨著人工智能、數(shù)據(jù)挖掘、數(shù)據(jù)應用等前沿技術的深入,騰訊云大數(shù)據(jù)再次迭代。蔣杰帶領技術團隊與北京大學崔斌老師團隊合作,于2016年推出了自研機器學習平臺Angel,并在2017年將其開源。Angel項目專攻復雜計算場景,可進行大規(guī)模的數(shù)據(jù)訓練,支撐內(nèi)容推薦、廣告推薦等AI應用場景。該項目不僅支撐了騰訊自身業(yè)務需求,在行業(yè)上也具有里程碑意義。

在這些崇尚開源的技術人的努力下,騰訊云多年來以開源軟件為基礎,對內(nèi)部大數(shù)據(jù)相關的底層技術棧不斷進行大規(guī)模地改造,順利頂住了不同時期數(shù)據(jù)流量爆發(fā)式增長帶來的挑戰(zhàn)。

沒有KPI,興趣就是最大的驅動力

幾乎與騰訊云大數(shù)據(jù)確立基于開源的技術路線同一個時期,騰訊內(nèi)部的開源文化也正在悄然興起。

負責騰訊對外開源辦公室的管理工作,以及騰訊內(nèi)部研發(fā)工具和技術社區(qū)建設的許勇告訴我們,在開源成為公司層面的戰(zhàn)略之前,騰訊內(nèi)部的開源文化最早是從內(nèi)部的代碼復用開始,由基層的開發(fā)者們自發(fā)組織起來的。

2013年,騰訊內(nèi)部以提高開發(fā)效率為目的,開始倡導用公共組件的形式來共享和復用代碼,涌現(xiàn)出了非常多的內(nèi)部優(yōu)質組件。為鼓勵更多人參與進來,騰訊特別設置了代碼文化獎,每兩個月組織一次內(nèi)部開源項目評選活動。評選完全由程序員們自己說了算,一票一票真實選舉產(chǎn)生。獲獎的員工和團隊通過直播的形式被更多開發(fā)人員了解,讓開源成為騰訊內(nèi)部熱議的話題。

許勇回憶,有時在直播過程中會發(fā)現(xiàn)一些平時不善言辭的程序員,當他們提到自己的開源項目時卻滔滔不絕,眼中閃爍著光芒,“沒有KPI,興趣就是最大的驅動力?!彬v訊代碼文化獎作為騰訊代碼文化的經(jīng)典項目也一直延續(xù)到了現(xiàn)在。

把代碼貢獻出去,把口碑做出來

據(jù)許勇回憶,在公司層面,嘗試過很多有意思的“小手段”用于激勵開源,他還給我們講了一個騰訊程序員熱衷于搶開源紅包的故事。

大家知道每逢節(jié)日發(fā)微信紅包搶微信紅包已成為一種深入人心的習慣,在騰訊內(nèi)部,還有一種“企業(yè)微信開源定制紅包”,是用于提醒和鼓勵開源項目的開發(fā)者和貢獻者,用這種極具廣東地方特色的方式(廣東搶利是)來激勵開源項目團隊、提升項目社區(qū)活躍度。

“比如新開源項目一個月積累到500個star,我們就給負責人發(fā)放一個開源新秀紅包,恭喜他達到了一個小小里程碑;每個月社區(qū)活躍度TOP 10的項目我們會發(fā)開源活躍紅包;榮登GitHub日榜周榜或者有其他突出表現(xiàn)會發(fā)開源突出紅包等等。來自不同業(yè)務線的開發(fā)者和貢獻者們開心搶著紅包,在線上一起分享項目達成一個又一個小小里程碑,是一件非常有騰訊特色、有意義的事情?!?/span>

在騰訊云大數(shù)據(jù)團隊基于開源軟件一路進行技術變革的過程中,團隊成員們也意識到,開源不是一味地從中索取,只有積極回饋開源社區(qū),才能促使整個開源生態(tài)良性發(fā)展。

騰訊大數(shù)據(jù)團隊開始時是把一些改進后的優(yōu)質代碼回饋開源社區(qū)。再后來,騰訊內(nèi)部的開源氛圍也逐步成熟,騰訊大數(shù)據(jù)團隊就索性直接將改進后的分支項目整個對外開源,主導建立開源社區(qū)。比如Angel平臺在立項之初就已經(jīng)決定要做成開源的項目。

蔣杰坦言,由于Angel團隊成員都是技術出身,初心非常單純,只想著把自己的代碼貢獻出去,讓大家一起來把東西做好。

在將Angel項目開源以后,包括華為、新浪、OPPO、VIVO、拼多多在內(nèi)的國內(nèi)大廠都慢慢開始在內(nèi)部采用該系統(tǒng),項目社區(qū)也不斷地得到來自這些大廠開發(fā)人員的貢獻,這個過程給騰訊云大數(shù)據(jù)團隊帶來了很多信心與成就感。

談到做開源給公司帶來的利益,蔣杰認為,僅從對技術人才的吸引方面,做開源就是有很大價值的?!叭绻_源的東西多了,對于一個開發(fā)者來說,比如他在大學時都聽到過Angel,并且他的老師或者他身邊的人都在用這個東西,甚至他也親自去用過,這對他的影響可能是非常大的。同時,對于比較成熟的技術人才來說,如果他對新技術有追求,那么看到我們這樣有前瞻性的項目,可能他也會想加入。另外,我們也會吸引到開源社區(qū)中跟我們有一樣興趣愛好的人,他們也會愿意來加入我們?!?/span>

蔣杰透露,騰訊云大數(shù)據(jù)團隊依靠開源口碑,在Spark、Flink、Hadoop社區(qū)都吸納了一些優(yōu)秀的貢獻者,到目前為止有接近10個PMC,20個Committer加入了他們的團隊。

耿直的開源態(tài)度

2018年9月,騰訊內(nèi)部進行了名為930變革的組織架構調(diào)整,成立了開源協(xié)同項目組和對外開源管理辦公室,正式將開源提升到公司戰(zhàn)略層面。

在當時,包括OSC社區(qū)在內(nèi)的很多網(wǎng)友對此并不看好,紛紛留言建議騰訊“先在Linux上支持QQ和微信再說”。有趣的是,騰訊在不久之后就悄悄發(fā)布了Linux QQ 2.0 Beta。盡管距離Linux QQ上一次更新已經(jīng)過去了十年,讓很多社區(qū)的朋友直呼“活久見”,但還是有不少人認可了騰訊對待開源的耿直態(tài)度。

這一時期,騰訊的開源不再局限于自發(fā)參與的開源愛好者。2019年1月,騰訊技術委員會成立,騰訊內(nèi)部的開源協(xié)同工作進一步覆蓋到所有的技術部門,從而減少代碼的重復開發(fā),提升項目推進效率。

技術交流的氛圍也更加活躍了。

在公司內(nèi)部,騰訊整體開發(fā)推進工具平臺由SVN向更適合開源協(xié)同屬性的工蜂Git遷移。同時上線碼客社區(qū),每個月有超過98%的技術人員訪問碼客社區(qū)進行技術討論。數(shù)據(jù)顯示,騰訊碼客社區(qū)已經(jīng)產(chǎn)生1.9萬個技術問題,平均收獲6.6個回答,所有技術問題在提出后24小時內(nèi)100%得到回答。開源協(xié)同的工作也在碼客社區(qū)中生根發(fā)芽,開源協(xié)同Oteam在碼客通過圈子運營自己的開發(fā)者社區(qū),與協(xié)同開發(fā)者以及用戶共同討論項目進展。開頭提到的OpenJDK的代碼貢獻正是源自Oteam協(xié)作的成果。

寫在最后

從各大開源基金會公開的數(shù)據(jù)來看,如今的騰訊已經(jīng)成為對開源社區(qū)貢獻最大的中國互聯(lián)網(wǎng)公司之一。

在騰訊的社交、游戲等現(xiàn)象級產(chǎn)品業(yè)務成功的背后,離不開像大數(shù)據(jù)團隊這樣的騰訊底層基礎技術團隊的支撐,更離不開團隊多年來使用開源、貢獻開源的技術成果。通過與他們的溝通,我們了解到在騰訊內(nèi)部,確實有那么一群熱愛技術的人在認真地做著開源,并且為開源社區(qū)貢獻了實實在在的、有價值的代碼,獲得了社區(qū)的認可。

很多時候,人們常因不了解,對于國內(nèi)大廠的開源持質疑態(tài)度,“大廠開源是為了KPI”也是一個社區(qū)中老生常談的話題。最后,我們想引用蔣杰此前在騰訊云一年一度的技術大會Techo上對于這個話題的回應作為結尾:

“騰訊開源沒有具體的KPI,更多是通過代碼文化和工程師文化的建設,來鼓勵和吸引大家主動參與到開源社區(qū)的建設中來,同時提供專業(yè)的技術指導,為開源項目與團隊的成功助力。”

我們也愿意相信,在這些認真做開源的技術人的努力下,國內(nèi)的開源生態(tài)一定會變得越來越好。

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于OSCHINA,本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家