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