乘云向未來 | 字節(jié)跳動超大規(guī)模數(shù)據(jù)庫產(chǎn)品技術(shù)演進之路
數(shù)據(jù)是支撐企業(yè)發(fā)展的關(guān)鍵生產(chǎn)要素。隨著業(yè)務場景的多元化,數(shù)據(jù)體量不斷增長,催生了數(shù)據(jù)類型多樣、交互式分析復雜等挑戰(zhàn),業(yè)務對于數(shù)據(jù)的實時性、資源彈性、融合負載等需求也愈發(fā)高漲。由此,一款合適的數(shù)據(jù)庫產(chǎn)品,將成為企業(yè)實現(xiàn)數(shù)據(jù)管理的最佳工具。
在11月10日、11月16日和11月24日舉辦的“乘云·向未來”火山引擎公共云·城市分享會上,火山引擎以“字節(jié)跳動超大規(guī)模數(shù)據(jù)庫產(chǎn)品技術(shù)演進之路”為題,基于字節(jié)跳動業(yè)務的多樣性、規(guī)模化發(fā)展,解構(gòu)了其數(shù)據(jù)庫產(chǎn)品體系特征及技術(shù)演進歷程,為企業(yè)疏解數(shù)據(jù)管理難題、帶來數(shù)據(jù)治理的良策。
以下為演講實錄:
字節(jié)跳動業(yè)務發(fā)展歷程與數(shù)據(jù)庫之挑戰(zhàn)
過去十年間,字節(jié)跳動的業(yè)務飛速發(fā)展。從2017年的1億日活躍用戶,到2019年的4億,再到2023年6億+,隨之而來的是業(yè)務的多樣性——抖音直播、抖音電商以及飛書等業(yè)務快速發(fā)展,也使得字節(jié)跳動的數(shù)據(jù)庫經(jīng)歷了多代演進。
在2017年,集團數(shù)據(jù)庫的數(shù)據(jù)量只有2000個集群,且每個集群的規(guī)模通常為幾十萬的體量;到2019年,數(shù)據(jù)量達到了200+PB;直到今天,數(shù)據(jù)量已經(jīng)發(fā)展到2EB,峰值吞吐量達到了20B+。面對如此龐大的量級,火山引擎始終在思考數(shù)據(jù)庫技術(shù)演進之道,大致可分為三個階段。
第一階段是2015-2017年,刀耕火種的石器時代,當時主要靠業(yè)務開發(fā)兼職運維,經(jīng)常通宵進行線上運維和擴容。
第二階段是在2018-2020年,火山引擎發(fā)現(xiàn)過去的方式難以為繼,于是啟動了多品類的數(shù)據(jù)庫建設。基于原有的云原生數(shù)據(jù)庫,火山引擎開發(fā)了分布式數(shù)據(jù)庫等產(chǎn)品,在公司內(nèi)部大規(guī)模應用。除此之外,火山引擎還開發(fā)了多個運維平臺,實現(xiàn)了超大規(guī)模集群的自動化管理,擺脫了過去純靠人工運維的局限性。
第三階段是從2021年至今,字節(jié)跳動開展了更多云原生化的工作,業(yè)務規(guī)模達到了數(shù)萬套庫/數(shù)百萬實例。在這個過程中,數(shù)據(jù)庫在技術(shù)和應用上遇到了不同種類的挑戰(zhàn)。
首先是業(yè)務種類的多樣性。支付類業(yè)務、電商類業(yè)務等不同場景對數(shù)據(jù)庫的需求并不一致;各種各樣的中臺產(chǎn)生的多種數(shù)據(jù)類型也對數(shù)據(jù)庫提出了更多要求,例如:海量結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù)的管理、用戶之間的關(guān)系管理等。
第二個挑戰(zhàn)是超大規(guī)模下高可用問題。在大規(guī)模業(yè)務同時運行的情況下,如何保證數(shù)據(jù)庫時時刻刻在線,成為每一個應用開發(fā)者都會思考的問題,火山引擎也不例外。
第三個挑戰(zhàn)是多模式融合負載。例如有些業(yè)務對于并發(fā)數(shù)要求非常高,但容量較小;而有些業(yè)務吞吐量較低,但數(shù)據(jù)量較大,分析類需求較多。
最后一個挑戰(zhàn)是資源彈性訴求變強。眾所周知,字節(jié)跳動的業(yè)務具有一定的“季節(jié)性”,比如618和春晚,需要通過自動的彈性來應對突發(fā)的流量。對此,降低業(yè)務成本、提供彈性能力,對數(shù)據(jù)庫而言是非常重要的一環(huán)。
火山引擎自研數(shù)據(jù)庫產(chǎn)品全解析
過去,業(yè)務很難用單一的數(shù)據(jù)庫來滿足所有的負載。因此,為了應對挑戰(zhàn),火山引擎構(gòu)建了多樣化、規(guī)模化、融合化、智能化的數(shù)據(jù)庫產(chǎn)品矩陣。
veDB云原生數(shù)據(jù)庫可以解決擴容拆分等一系列問題,實現(xiàn)存儲共享,極大降低存儲成本;同時,資源的彈性非常好,在解決業(yè)務彈性訴求后,能很快將資源彈出來,把計算算力縮下去,降低了用戶成本。目前,數(shù)據(jù)中心90%以上的業(yè)務都在用veDB。
在做業(yè)務過程中,遇到業(yè)務不感知的情況時,可以通過一些平臺自動化地解決問題。數(shù)據(jù)庫能夠跨三個超大機房進行部署,這一點在運維過程中,相比于過去的擴容、拆分,運維操作難度降低了80%。在此基礎上,火山引擎構(gòu)建了HTAP產(chǎn)品,通過一體化的技術(shù),集成了OLTP、內(nèi)存等,這對用戶而言是完全透明的,復雜的查詢可以直接交其處理。
文檔數(shù)據(jù)庫DocumentDB是基于云原生技術(shù)進行的托管服務,相比于傳統(tǒng)數(shù)據(jù)庫,這類產(chǎn)品的數(shù)據(jù)可以做到實時的一致性,使得數(shù)據(jù)的“新鮮度”較高。目前,該類產(chǎn)品已在字節(jié)跳動內(nèi)部大規(guī)模使用。
Redis Family緩存類產(chǎn)品的特點是兼容Redis協(xié)議,在性能上有很好的表現(xiàn)。該產(chǎn)品在內(nèi)部分成了內(nèi)存版和磁盤版兩個版本,其中磁盤版的容量可以達到上百T,減輕了業(yè)務考慮數(shù)據(jù)的搬遷。字節(jié)跳動內(nèi)部諸如游戲和電商等大型中臺,都在使用這一產(chǎn)品。
在跨平臺業(yè)務中,云原生集群的數(shù)據(jù)規(guī)模也是非常大的,因此火山引擎打造了強一致KV數(shù)據(jù)庫ByteKV,它應用在支付/紅包等財務類業(yè)務居多,能夠保持元數(shù)據(jù)的安全性,同時支持分布式事務及CAS需求。
火山引擎自2018年開始自研,到2020年左右打造了第一代圖數(shù)據(jù)庫,其底層是分布式KV,能夠支持萬億點變量級,例如抖音中的相互關(guān)注、推薦關(guān)系、好友關(guān)系等,都是用圖數(shù)據(jù)庫來存儲的。
2022年,火山引擎打造了下一代的高性能多模態(tài)的圖數(shù)據(jù)庫。其整體是基于分布式存儲,將圖數(shù)據(jù)和非圖數(shù)據(jù)放在一起進行數(shù)據(jù)同步,減少了存儲成本。以極致性價比、統(tǒng)一存儲格式,支持一數(shù)多算,為用戶帶來一站式分析體驗。
此外,火山引擎還構(gòu)建了超大規(guī)模圖計算/圖學習的能力。圖計算可以直接訪問分布式存儲、讀取數(shù)據(jù),內(nèi)含非常高效的數(shù)據(jù)流。在如前敘及的HTAP中,數(shù)據(jù)可以通過圖,實時用數(shù)據(jù)進行圖的計算和學習。典型的應用場景就是在抖音電商中,存在大量的風控、支付安全和黑產(chǎn)等需要提取信息的操作,該能力可以秒級查詢是否存在風險,為用戶帶來安全的體驗。
聚焦“4+1”戰(zhàn)略持續(xù)優(yōu)化產(chǎn)品
面向未來,火山引擎聚焦“4+1”戰(zhàn)略對產(chǎn)品進行展望。
第一是智能化,基于AI模型的原生支持,數(shù)據(jù)庫在規(guī)模上得到了算力提升。數(shù)據(jù)庫團隊也在結(jié)合產(chǎn)品進行升級,讓零技術(shù)基礎的用戶也可以方便地對數(shù)據(jù)庫進行操作。
第二是將數(shù)據(jù)庫安全化。隨著時間推移,合規(guī)安全越來越重要,數(shù)據(jù)庫產(chǎn)品除了在本身的性能上提升以外,也在轉(zhuǎn)型可信數(shù)據(jù)庫。例如在企業(yè)辦公等場景下,每一個字段都是需要加密的,火山引擎要做的就是提升數(shù)據(jù)安全與隱私保護能力以及數(shù)據(jù)庫平臺合規(guī)能力。
第三是平臺化。火山引擎將在自動化運維、多云一體化部署上持續(xù)迭代升級,打造產(chǎn)品化、體系化的解決方案。
第四是在生態(tài)方面,火山引擎將與合作伙伴攜手,豐富開發(fā)者工具和資源,積極拓展市場和合作伙伴關(guān)系,共同完善數(shù)據(jù)庫生態(tài)建設。
最重要的是,火山引擎將持續(xù)進行數(shù)據(jù)庫內(nèi)核極致優(yōu)化,真正做到降本、增效;同時,深度整合火山引擎自研DPU等新硬件,持續(xù)挖掘硬件紅利,通過應用場景方面的融合和基礎設施層面的分離、整合,以橫縱雙融合的系統(tǒng)重塑應用緩存和數(shù)據(jù)庫,助力用戶增長。
掃碼了解veDB更多詳情