騰訊雲大數據團隊:認真做開源的人,眼裡有光

2020-12-15 開源中國

乾貨限時下載丨想get最新最全的資料庫知識?看這裡就夠了!>>>

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

令很多人意想不到是,騰訊成為了全球企業貢獻第五名國內為 OpenJDK 貢獻最多的公司,並且是歷史首個進入「Notable」貢獻者範圍的國內廠商,得到了 Oracle 的點名感謝。

  

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

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

OpenJDK 的突出貢獻者 

楊曉峰告訴我們,騰訊雲大數據團隊自 2019 年以來就一直在積極參與 OpenJDK 開源生態的貢獻。

去年 11 月,騰訊開源內部使用的 JDK,並命名為 Tencent Kona JDK ,其定位是一款免費、開箱即用、經過騰訊規模生產驗證的 JDK 發行版,為大家提供在數據科學和雲原生領域的最佳產品體驗。 

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

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

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

亮眼的開源答卷 

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

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

去年 11 月,騰訊除了 Kona JDK 外同期宣布開源的項目還有另外三個,分別是分布式消息中間件 TubeMQ、分布式 HTAP 資料庫 TBase 以及企業級 K8s 發行版 TKEStack 

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

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

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

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

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

擁抱開源的技術路線

騰訊雲大數據的開源生態發展到今天,並不是一蹴而就的事情。

在 2009 年之前,騰訊與很多其他傳統網際網路公司一樣,內部業務主要使用傳統的關係型資料庫。2009 年開始,隨著網際網路流量的爆發,傳統的單機資料庫所提供的服務在系統可擴展性、性價比方面已不再適用騰訊業務爆發式的增長。面對這種變化,騰訊雲大數據轉向基於開源的分布式 Hadoop 體系,構建了騰訊第一代大數據平臺。

2011 年末,堅信開源就是未來的大數據技術專家,現任騰訊雲副總裁、騰訊數據平臺部總經理蔣傑來到騰訊,據蔣傑回憶,他剛剛來到騰訊時,騰訊數據中心的 Hadoop 集群剛剛起步,規模只有 200 臺 

由於開源社區具備支持力強,會不斷引進創新,始終處於技術發展的前沿,在生態以及人才方面具有不可比擬的優勢,所以騰訊雲大數據團隊堅定選擇了擁抱開源路線。

蔣傑和騰訊雲大數據團隊基於開源軟體不斷建設各種組件,從 Hadoop 基礎存儲 HDFS 開始,到改造 NameNode,改造 MR 的整個調度。之後又進入移動網際網路時代,團隊又從 Hadoop 轉向 Spark 和 Storm 體系,建立消息中間件,構建企業級的實時數據分析體系。 

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

在這些崇尚開源的技術人的努力下,騰訊多年來以開源軟體為基礎,對內部大數據相關的底層技術棧不斷進行大規模地改造,順利頂住了不同時期數據流量爆發式增長帶來的挑戰。

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

幾乎與騰訊雲大數據確立基於開源的技術路線同一個時期,騰訊內部的開源文化也正在悄然興起 

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

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

許勇回憶,有時在直播過程中會發現一些平時不善言辭的程式設計師,當他們提到自己的開源項目時卻滔滔不絕,眼中閃爍著光芒,「沒有 KPI,興趣就是最大的驅動力。」 騰訊代碼文化獎作為騰訊代碼文化的經典項目也一直延續到了現在。

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

據許勇回憶,在公司層面,嘗試過很多有意思的「小手段」用於激勵開源,他還給我們講了一個騰訊程式設計師熱衷於搶開源紅包的故事。 

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

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

在騰訊雲大數據團隊基於開源軟體一路進行技術變革的過程中,團隊成員們也意識到,開源不是一味地從中索取,只有積極回饋開源社區,才能促使整個開源生態良性發展。

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

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

在將 Angel 項目開源以後,包括華為、新浪、OPPO、VIVO、拼多多在內的國內大廠都慢慢開始在內部採用該系統,項目社區也不斷地得到來自這些大廠開發人員的貢獻,這個過程給騰訊大數據團隊帶來了很多信心與成就感。 

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

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

耿直的開源態度

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

在當時,包括 OSC 社區在內的很多網友對此並不看好,紛紛留言建議騰訊「先在 Linux 上支持 QQ 和微信再說」。有趣的是,騰訊在不久之後就悄悄發布了 Linux QQ 2.0 Beta。儘管距離 Linux QQ 上一次更新已經過去了十年,讓很多社區的朋友直呼「活久見」,但還是有不少人認可了騰訊對待開源的耿直態度。

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

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

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

寫在最後

從各大開源基金會公開的數據來看,如今的騰訊已經成為對開源社區貢獻最大的中國網際網路公司之一。 

在騰訊的社交、遊戲等現象級產品業務成功的背後,離不開像大數據團隊這樣的騰訊底層基礎技術團隊的支撐,更離不開團隊多年來使用開源、貢獻開源的技術成果。通過與他們的溝通,我們了解到在騰訊內部,確實有那麼一群熱愛技術的人在認真地做著開源,並且為開源社區貢獻了實實在在的、有價值的代碼,獲得了社區的認可 

很多時候,人們常因不了解,對於國內大廠的開源持質疑態度,「大廠開源是為了 KPI 」 也是一個社區中老生常談的話題。最後,我們想引用蔣傑此前在騰訊雲一年一度的技術大會 Techo 對於這個話題的回應作為結尾: 

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

我們也願意相信,在這些認真做開源的技術人的努力下,國內的開源生態一定會變得越來越好。

相關焦點

  • Apache基金會宣布騰訊大數據團隊主導的Ozone成為頂級開源項目
    【天極網IT新聞頻道】剛剛獲悉,Apache基金董事會通過一致表決,正式批准分布式文件對象存儲Ozone從Hadoop社區孵化成功,成為獨立的Apache頂級開源項目。這意味著,作為騰訊大數據團隊首個參與和主導的開源項目,Ozone已得到全球Apache技術專家的一致認可,成為世界頂級的存儲開源項目之一。
  • 騰訊大數據團隊主導開發,新一代分布式對象存儲Ozone從Apache基金...
    剛剛獲悉,Apache基金董事會通過一致表決,正式批准分布式文件對象存儲Ozone從Hadoop社區孵化成功,成為獨立的Apache頂級開源項目。這意味著,作為騰訊大數據團隊首個參與和主導的開源項目,Ozone已得到全球Apache技術專家的一致認可,成為世界頂級的存儲開源項目之一。
  • 騰訊雲聶晶:數據場景化應用創新與數據價值釋放才是數據倉庫的真正...
    12月20日,在騰訊2020 Techo Park開發者大會大數據專場上,騰訊雲大數據產品總經理聶晶對數據倉庫近30年發展歷程做出總結,並分享了他對目前行業的認知以及未來發展的判斷。
  • 騰訊雲虛擬化技術團隊:用硬核貢獻表達開源態度
    騰訊雲虛擬化技術團隊的答案是開源——藉助騰訊的場景把KVM用起來,發現和解決問題,然後把方案開源,從而帶動更多開發者關注,更多人發現問題,更多人解決問題,最終實現KVM技術演進的利益共享……2014 年底,一個棘手的問題浮現出來。一些大型遊戲客戶在使用KVM生產出來的雲伺服器時,經常出現CPU佔用率高,抖動很大的情況,用戶能感到明顯的掉幀。
  • 騰訊雲賀永紅:混合雲存儲為大數據應用提供更強便利性
    數據沉降歸檔後,能及時回熱,需要用的時候能及時被計算集群訪問。  3. 統一管理  雲上雲下的統一管理,一致使用體驗;在數據面雲上COS與IDC中HDFS統一元數據管理,實現全量數據ETL(抽取、轉換、裝載)。在技術面,雲上和雲下均採用大數據開源組件,接入大數據開源生態,保持一致使用體驗。
  • 大數據架構變革進行時:為什麼騰訊看好開源 Apache Iceberg?
    騰訊在 2018 年加入大數據存儲開源項目 Apache Ozone,後又於 2019 年開始投入研發 Apache Iceberg;阿里巴巴也正聯合 Apache Iceberg 社區積極推動 Flink 實時數據湖技術方案的落地。那麼,Iceberg 和其他兩個開源項目有何不同?為什麼阿里和騰訊都在積極投入 Iceberg 的開源生態?Iceberg 有什麼獨到之處?
  • 【OSTC2015 現場】許勇:騰訊的內外社區實踐及未來開源布局
    但是可以把自己認為好的或者能夠曬出來的代碼放在社區中與別人做交流和分享。當時我們做的「微碼」,大家知道現在凡是帶「微」的產品都比較火,所以我們起名叫「微碼」,數據給了我們一個很大的擁抱。比如2013年做的時候還只有243,而截止到現在是342,按照這個數據情況看,2015年的數據大概是1200多。
  • 企業級雲原生:TKEStack 騰訊雲原生開源實踐之路
    2009 年吳軍博士從谷歌來到騰訊,便借鑑了谷歌做出了騰訊自研的業務平臺 T-Borg。到了 2011~2013 年左右開始用社區成熟的公認的技術做業務平臺。當時有一次重要的技術方向轉變,轉向使用業界主流技術方案後,Torca 轉向專門做大數據業務平臺,於是有了HOT(hadoop on torca)。
  • 這個冠軍,讓多少人重新認識騰訊雲
    近日,騰訊雲又雙叒攻下一城,讓更多人重新認識了它。 這也是自 2014 年 iDASH 創辦以來,中國企業屆的技術團隊首次在可信計算(SGX)賽道上奪冠。
  • 打造大數據存儲備份藍海 把世界存在草原雲谷 ——內蒙古政務雲大...
    內蒙古自治區自治區大數據管理局局長胡豐、烏蘭察布市市委書記費東斌、烏蘭察布市委常委、集寧區書記奇·達楞太等領導同志及項目投資方代表出席了投運儀式。「內蒙古政務雲大數據災備中心」是內蒙古中弘紫晶科技有限責任公司依託股東方在業內領先的研發團隊和強大的技術實力,投資建設的大數據容災備份項目,為政府、金融、醫療、石油、檔案等各行業機構提供便捷、安全、綠色的數據長期存儲和容災備份服務。
  • 「騰訊開源十年圖譜」發布,覆蓋雲原生等五大技術領域
    開源是全球開發者共享知識、共建技術的橋梁,而跨越技術本身,開源還是解決人類共同難題的重要模式。12月19日,騰訊開源聯盟主席單致豪在騰訊 2020Techo Park 開發者大會上,集中發布了三大騰訊開源項目,同時還首次發布了「騰訊開源十年圖譜」。
  • 騰訊開源分布式存儲系統 Tendis,可完全兼容 Redis
    近日,騰訊宣布開源一個與 Redis 協議完全兼容的高性能分布式存儲系統 Tendis。
  • 騰訊多媒體實驗室重磅開源視頻質量評估算法DVQA
    近日,騰訊多媒體實驗室設計的基於深度學習的全參考視頻質量評估算法DVQA在Github上正式開源,該算法模型的性能目前在公開測試數據集上取得業界領先成績。開源地址:https://github.com/Tencent/DVQA國內鏡像地址:https://git.code.tencent.com/Tencent_Open_Source/DVQA(登錄後才能訪問公開項目)騰訊工蜂源碼系統為開源開發者提供完整、最新的騰訊開源項目國內鏡像視聽時代,音視頻應用越來越廣泛:直播
  • 專注E2E語音識別,騰訊AILab開源語音處理工具包PIKA
    機器之心報導作者:魔王、杜偉PyTorch + Kaldi,騰訊 AI Lab 開源輕量級語音處理工具包 PIKA,專注於端到端語音識別任務。Kaldi 是一個開源的語音識別系統,由 Daniel Povey 主導開發,在很多語音識別測試和應用中廣泛使用。
  • 插畫頭像——眼裡有光,晶瑩剔透的眼睛
    插畫頭像——眼裡有光,晶瑩剔透的眼睛
  • 取消高速省界收費站駛入「快車道」,華為雲大數據稽核來助力
    每逢周末或者節假日,高速公路的擁堵都讓人惴惴不安。長跑高速的老司機們都知道,拋開事故等突發狀況,進出收費站往往是最容易產生擁堵的路段;尤其對於跨省的車主,高速公路省界收費站的擁堵往往會讓通行效率大打折扣。
  • 騰訊Tendis 正式開源:企業級分布式高性能 KV 存儲資料庫
    IT之家12月22日消息 近期,騰訊宣布企業級分布式高性能 KV 存儲資料庫 Tendis 正式開源。IT之家獲悉,Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊雲資料庫團隊自主設計和研發的分布式高性能 KV 存儲資料庫,兼容 Redis 核心數據結構與接口,可提供大容量、低成本、強持久化的資料庫能力,適用於兼容 Redis 協議、需要大容量且較高訪問性能的溫冷數據存儲場景。Tendis 目前已經被應用到騰訊內、外部大型項目中。
  • iDASH 2020可信計算賽果發布 騰訊雲奪冠
    藉助SGX下的遠程證明、可信信道、數據密封等多種安全機制,騰訊雲團隊實現了分布式CIDR聚類算法在可信執行環境(TEE)的機密執行,並與騰訊自研的大數據聯邦學習平臺Angel PowerFL進行軟硬體功能協同。
  • 表白情句|心中有光,眼裡有你
    心中有光,眼裡有你願今後的日子心中一直有光,眼裡全都是你,我想跨過山和來保護你。我終於明白遇見對的人,就是合情合理,遇見對的人,就是當你累的時候,會有人拉著你走。我們之間可能不需要太多言語,見了面之後就懂得彼此的溫柔。