云时代,我们需要怎样的数据库?
本文作者騰訊云TDSQL負(fù)責(zé)人潘安群。潘安群主要負(fù)責(zé)騰訊云分布式數(shù)據(jù)庫研發(fā),擁有超過13年分布式數(shù)據(jù)庫研發(fā)經(jīng)驗(yàn),研發(fā)成果多次入選國際頂會(huì)VLDB、SIGMOD等。他帶領(lǐng)團(tuán)隊(duì)打造的安全可控分布式數(shù)據(jù)庫TDSQL,是業(yè)內(nèi)首個(gè)應(yīng)用于互聯(lián)網(wǎng)銀行核心交易系統(tǒng)、首個(gè)進(jìn)入銀行傳統(tǒng)核心系統(tǒng)、首個(gè)助力傳統(tǒng)大型銀行實(shí)現(xiàn)銀行業(yè)首例“大型機(jī)”下移分布式平臺(tái)的國產(chǎn)企業(yè)級(jí)分布式數(shù)據(jù)庫。
零、引言
數(shù)據(jù)庫技術(shù)發(fā)展已達(dá)半個(gè)世紀(jì)之久,數(shù)據(jù)庫圖靈獎(jiǎng)得主Michael Stonebraker曾在Readings in Database Systems中將數(shù)據(jù)庫模型技術(shù)分為9個(gè)不同的時(shí)代與類型,而云時(shí)代開始以后,我們可以從全新的視角審視數(shù)據(jù)庫等基礎(chǔ)技術(shù)的過去和未來。
基于云計(jì)算,包括數(shù)據(jù)庫在內(nèi)的IT基礎(chǔ)技術(shù)發(fā)生從技術(shù)形態(tài)到線上線下整個(gè)市場(chǎng)結(jié)合的大幅變化,數(shù)據(jù)庫技術(shù)呈現(xiàn)從傳統(tǒng)集中式到云時(shí)代分布式遷移替換的趨勢(shì),這也給國產(chǎn)數(shù)據(jù)庫賦予機(jī)遇與挑戰(zhàn)。
在2020年11月,Gartner發(fā)布了2020年度的數(shù)據(jù)庫廠商評(píng)估報(bào)告,國數(shù)據(jù)庫廠商占據(jù)三席,標(biāo)志著國內(nèi)數(shù)據(jù)庫進(jìn)入全新發(fā)展階段。
同時(shí),Gartner預(yù)測(cè),到2022年,世界上3/4的數(shù)據(jù)庫都會(huì)跑在云上,而我們認(rèn)為,云數(shù)據(jù)庫的發(fā)展,目前正在經(jīng)歷從第一階段“數(shù)據(jù)庫上云,即從數(shù)據(jù)庫到云數(shù)據(jù)庫”,到第二階段“從云數(shù)據(jù)庫到云原生數(shù)據(jù)庫”的變革。
歸根結(jié)底,云數(shù)據(jù)庫做了什么得到了業(yè)內(nèi)的認(rèn)可?未來數(shù)據(jù)庫發(fā)展趨勢(shì)是什么?我們可以如何在新機(jī)遇下的云融合時(shí)代把握技術(shù)創(chuàng)新的脈搏?在當(dāng)前國產(chǎn)數(shù)據(jù)庫也成為一個(gè)熱門話題之際,我們談一談我們的理解和思考,與大家共勉。
一、云時(shí)代的IT基礎(chǔ)技術(shù)形態(tài)演變
隨著云計(jì)算的發(fā)展,整個(gè)IT基礎(chǔ)技術(shù)翻天覆地的變化體現(xiàn)在幾個(gè)方面:
IT設(shè)施部署,從過去的零散化走向今天的集中化、規(guī)模化。過去,每一個(gè)企業(yè)自建各自的數(shù)據(jù)中心等IT基礎(chǔ)設(shè)施,包括服務(wù)器、網(wǎng)絡(luò)到操作系統(tǒng)、數(shù)據(jù)庫等,形成企業(yè)市場(chǎng)上零散化的IT設(shè)施模式。而今天基于云計(jì)算服務(wù),企業(yè)IT設(shè)施呈現(xiàn)集中化、規(guī)模化效應(yīng),對(duì)效率、性能、成本的要求提升。
IT服務(wù)交付,從過去的軟件交付模式走向服務(wù)交付模式。過去購買商業(yè)化軟件,或者是使用開源軟件產(chǎn)品,基本是通過商業(yè)化或開源的方式進(jìn)行分發(fā),而現(xiàn)在完全變成一個(gè)個(gè)服務(wù)的形式進(jìn)行交付。這帶來的變化是,用戶不需要再盤算該購買幾臺(tái)服務(wù)器,而是在具有數(shù)據(jù)庫使用需求時(shí),直接云上使用即可。
開發(fā)方式,將呈現(xiàn)從過去業(yè)務(wù)進(jìn)行非常底層的開發(fā)以及調(diào)用底層API等操作的模式,轉(zhuǎn)向SaaS化、Severless模式的服務(wù)。在云上,開發(fā)者可以使用各種各樣的SaaS服務(wù)。無論從效率、基礎(chǔ)技術(shù)能力等方面來說,這都是一個(gè)巨大的變化。
而數(shù)據(jù)形式及應(yīng)用場(chǎng)景領(lǐng)域而言,事實(shí)上過去的數(shù)據(jù)形式或應(yīng)用場(chǎng)景相對(duì)單一,以傳統(tǒng)數(shù)據(jù)庫為例,場(chǎng)景主要集中在了比如金融、運(yùn)營商、政務(wù)等傳統(tǒng)行業(yè)領(lǐng)域。隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、產(chǎn)業(yè)互聯(lián)網(wǎng)的發(fā)展,各個(gè)行業(yè)也正逐步加速其電子化、信息化發(fā)展趨勢(shì),應(yīng)用服務(wù)形式呈多樣化發(fā)展,使得當(dāng)前行業(yè)的數(shù)據(jù)形式及應(yīng)用場(chǎng)景也越來越多樣化,并對(duì)底層數(shù)據(jù)庫能力提出更多的要求和挑戰(zhàn)。過去,行業(yè)場(chǎng)景中更多以結(jié)構(gòu)化的數(shù)據(jù)為主,關(guān)系型數(shù)據(jù)庫可以支撐極大部分場(chǎng)景需求,現(xiàn)在我們可以看到涌現(xiàn)出了許多如NoSQL、Graph圖數(shù)據(jù)庫等各種類型的數(shù)據(jù)庫,NoSQL下屬同時(shí)還可以細(xì)分KV型、文檔型等多種類別,而且整體數(shù)據(jù)庫類型還有持續(xù)增加的趨勢(shì)。這是非常合理的現(xiàn)象。也就是說,對(duì)于未來數(shù)據(jù)庫來說,其自身發(fā)展也會(huì)呈現(xiàn)多樣化的、而且是融合、創(chuàng)新的趨勢(shì)。我們知道,按照傳統(tǒng)經(jīng)驗(yàn)來說,如果一個(gè)技術(shù)產(chǎn)品是單一的形態(tài),那么追求的是盡量做到通用化,然而,在當(dāng)前多樣化需求的趨勢(shì)下,技術(shù)應(yīng)用層面需要進(jìn)行各種權(quán)衡和取舍。
因此可以說,這是云時(shí)代的發(fā)展變化,對(duì)數(shù)據(jù)庫帶來的新的挑戰(zhàn)和要求。在當(dāng)前云數(shù)據(jù)庫成為大勢(shì)所趨的同時(shí),我們認(rèn)為,國產(chǎn)云數(shù)據(jù)庫要發(fā)展好,需要持續(xù)在基礎(chǔ)能力、成本效率、產(chǎn)品化、未來技術(shù)融合等各個(gè)層面進(jìn)行探索突破。
二、云數(shù)據(jù)庫技術(shù)演進(jìn)的挑戰(zhàn)
結(jié)合云計(jì)算的特點(diǎn),國產(chǎn)云數(shù)據(jù)庫發(fā)展面臨著需要持續(xù)探索可用性與一致性、高并發(fā)性能、彈性可擴(kuò)展等基礎(chǔ)能力突破,同時(shí)面向云時(shí)代的多樣化趨勢(shì)打造新一代分布式數(shù)據(jù)庫產(chǎn)品的挑戰(zhàn)和要求。
第一,可用性與一致性。
作為數(shù)據(jù)庫,高可用性、數(shù)據(jù)一致性是最基礎(chǔ)的挑戰(zhàn)。高可用性,要求達(dá)到99.999%以上;數(shù)據(jù)強(qiáng)一致性,意味著數(shù)據(jù)不出錯(cuò),數(shù)據(jù)庫高度可靠。云計(jì)算時(shí)代,技術(shù)設(shè)施的升級(jí)換代對(duì)技術(shù)實(shí)現(xiàn)方式帶來變革。過去,比如金融行業(yè),系統(tǒng)基于穩(wěn)定性較高的傳統(tǒng)集中式大型機(jī)或小型機(jī)來保障系統(tǒng)的可用性與一致性。然而,傳統(tǒng)集中式結(jié)構(gòu)存在明顯的技術(shù)邊界,包括性能和吞吐量的邊界,今天它們已然面臨較大的吞吐和性能瓶頸,無法滿足云時(shí)代的產(chǎn)業(yè)需求。自然地,當(dāng)前產(chǎn)業(yè)趨勢(shì)是向分布式架構(gòu)轉(zhuǎn)型升級(jí),轉(zhuǎn)向基于x86等的分布式、開放式平臺(tái)。傳統(tǒng)架構(gòu)系統(tǒng)依賴于大型機(jī)或小型機(jī)在硬件層面進(jìn)行的大量的冗余設(shè)計(jì),在硬件層面實(shí)現(xiàn)可用性與一致性保障。而相對(duì)來說,基于x86機(jī)器部署的新一代分布式架構(gòu)系統(tǒng),則在如何實(shí)現(xiàn)性能、無限水平擴(kuò)展的基礎(chǔ)上保證數(shù)據(jù)一致以及系統(tǒng)高可用提出新的挑戰(zhàn)要求。
第二,性能成本。
云計(jì)算時(shí)代,如果實(shí)現(xiàn)了規(guī)模化以后,還不能實(shí)現(xiàn)成本降低的話,是不可接受的。云計(jì)算要幫助提升整個(gè)社會(huì)資源利用率,性能成本需要控制到最低。
對(duì)于騰訊云的服務(wù)來說,我們需要考慮的是如何能夠保證客戶以最便宜的價(jià)格買到最高級(jí)的服務(wù)——比如花最少的錢買到最大的磁盤空間、以及最好的TPS等產(chǎn)品表現(xiàn)。而在這個(gè)過程中,最核心的就是資源利用率。舉個(gè)例子,云計(jì)算服務(wù)商如果把資源利用率提升20%,對(duì)客戶、服務(wù)商本身而言將能極大地降低一部分成本。
第三,云原生意味著一定是彈性伸縮的。
彈性伸縮,也就是可以根據(jù)用戶的實(shí)際需求進(jìn)行資源分配與使用,而不再是過去通過預(yù)采購或預(yù)分配的方式。過去,客戶大部分都是先預(yù)估,然后采購,所以資源利用率一直被詬病;現(xiàn)在則不需要用戶再預(yù)估自己未來可能會(huì)用到多少資源,而是可以根據(jù)實(shí)時(shí)的使用需求實(shí)現(xiàn)彈性伸縮。也因?yàn)檫@樣,通過提高資源利用率,云數(shù)據(jù)庫才可以實(shí)現(xiàn)成本上的優(yōu)勢(shì)。但是,極致彈性伸縮對(duì)數(shù)據(jù)庫在更高程度的SQL支持、分布式事務(wù)能力方面,提出了更高的要求。
第四,云數(shù)據(jù)庫產(chǎn)品化服務(wù)化程度。
國內(nèi)數(shù)據(jù)庫發(fā)展歷程也經(jīng)歷多個(gè)階段,但正是云計(jì)算、互聯(lián)網(wǎng)的時(shí)代興起,國內(nèi)諸多騰訊這類云廠商得以抓住機(jī)會(huì),基于自身業(yè)務(wù)場(chǎng)景特點(diǎn)和需求,發(fā)展新一代數(shù)據(jù)庫等基礎(chǔ)軟件技術(shù)。在過去很多年的時(shí)間當(dāng)中,騰訊非常重看重的一點(diǎn)就是,如何打磨提升整個(gè)數(shù)據(jù)庫的產(chǎn)品化程度,提升用戶體驗(yàn),包括技術(shù)產(chǎn)品化、服務(wù)完善等方面。互聯(lián)網(wǎng)廠商基于內(nèi)部業(yè)務(wù)場(chǎng)景發(fā)展自己的技術(shù)體系,這是優(yōu)勢(shì)的一面,而在to B開放的過程中,同時(shí)也面臨產(chǎn)品標(biāo)準(zhǔn)化、通用性、使用體驗(yàn)等挑戰(zhàn)。面向行業(yè)客戶提供技術(shù)產(chǎn)品,其要求比支撐內(nèi)部使用高得多。對(duì)于傳統(tǒng)企業(yè)客戶而言,騰訊云希望提供給到客戶的是一個(gè)完整的產(chǎn)品,而不是一個(gè)半成品。因此,產(chǎn)品化程度,是騰訊一直持續(xù)強(qiáng)調(diào)的能力。
第五,海量場(chǎng)景驗(yàn)證。
最后關(guān)鍵的一點(diǎn)是,對(duì)于云數(shù)據(jù)庫而言,包括穩(wěn)定性、特性需求等基礎(chǔ)能力的發(fā)展,核心條件是需要有足夠的應(yīng)用場(chǎng)景進(jìn)行打磨。數(shù)據(jù)庫系統(tǒng)的研發(fā)、完善是一個(gè)非常復(fù)雜的過程,如何讓數(shù)據(jù)庫得到實(shí)踐、得到應(yīng)用?走到今天,我們認(rèn)為,持續(xù)的、海量的場(chǎng)景打磨,是產(chǎn)品發(fā)展的關(guān)鍵條件。得益于騰訊自身以及云上各行各業(yè)的應(yīng)用,超過百萬開發(fā)者的使用,騰訊云數(shù)據(jù)庫能夠有足夠的空間打磨產(chǎn)品。這是我們的挑戰(zhàn),也是推動(dòng)我們發(fā)展的土壤。
這些挑戰(zhàn)是云數(shù)據(jù)庫發(fā)展過程中的必經(jīng)之路,也是我們?cè)谠朴?jì)算時(shí)代創(chuàng)造出新一代分布式數(shù)據(jù)庫產(chǎn)品的機(jī)遇。
三、云數(shù)據(jù)庫未來關(guān)鍵趨勢(shì)
基于這些挑戰(zhàn)以及云計(jì)算時(shí)代賦予的機(jī)會(huì),我們認(rèn)為未來云數(shù)據(jù)庫發(fā)展將包括幾大趨勢(shì)要求:
彈性伸縮:解決成本核心問題——資源利用率
前面提到,成本與性能是核心的要素。這里引申出來一個(gè)云計(jì)算時(shí)代的差異,那就是我們需要實(shí)現(xiàn)對(duì)CPU、內(nèi)存和磁盤等基礎(chǔ)設(shè)施資源的靈活調(diào)度。
云數(shù)據(jù)庫時(shí)代我們將通過對(duì)極致的彈性伸縮架構(gòu)探索,來綜合解決性能、效率和成本問題。針對(duì)不同的場(chǎng)景側(cè)重,云原生分布式數(shù)據(jù)庫可分為兩種架構(gòu):一種是Shared Nothing,一種是Shared Storage,兩者都可以通過實(shí)現(xiàn)計(jì)算與存儲(chǔ)分離架構(gòu)來整體獲得更優(yōu)秀的彈性伸縮能力,克服傳統(tǒng)架構(gòu)下的存儲(chǔ)量受限、擴(kuò)展難、主從延遲高等缺點(diǎn),同時(shí)也能夠幫助我們將成本控制得更低,充分釋放領(lǐng)先技術(shù)的成本效益。
而計(jì)算與存儲(chǔ)全Serverless架構(gòu)的數(shù)據(jù)庫服務(wù)也是未來可重點(diǎn)關(guān)注的方向,它在可自動(dòng)無感擴(kuò)縮容的基礎(chǔ)上,同時(shí)實(shí)現(xiàn)可按實(shí)際使用計(jì)費(fèi),不用不付費(fèi),提升云數(shù)據(jù)庫效用。
多模多引擎趨勢(shì)下的數(shù)據(jù)庫底層與服務(wù)超融合
新基建、產(chǎn)業(yè)互聯(lián)網(wǎng)快速發(fā)展,各行各業(yè)數(shù)字化進(jìn)程加速,數(shù)據(jù)形式越來越多樣化,越來越海量,如何能最高效地解決數(shù)據(jù)庫在性能、成本、服務(wù)等方面問題,超融合是必然趨勢(shì)。
當(dāng)下我們處于各行各業(yè)都在推進(jìn)電子化、信息化建設(shè)和數(shù)字化轉(zhuǎn)型的趨勢(shì)浪潮之下,行業(yè)不斷涌現(xiàn)出大量的新興場(chǎng)景。數(shù)據(jù)庫作為支撐各類IT系統(tǒng)架構(gòu)的基礎(chǔ)軟件技術(shù),其整個(gè)技術(shù)形態(tài)也隨之出現(xiàn)各類新的應(yīng)用實(shí)現(xiàn),包括大量的NoSQL實(shí)踐,以及存儲(chǔ)領(lǐng)域有傳統(tǒng)的B+ Tree、現(xiàn)在的LSM Tree,和行存、列存等架構(gòu)形態(tài)產(chǎn)品;而根據(jù)workload類型區(qū)分的話,則涌現(xiàn)出包括OLTP、OLAP,或者兩者混合形成的HTAP型數(shù)據(jù)庫等。
而多種多樣的引擎產(chǎn)品,在大多數(shù)情況下不會(huì)獨(dú)立存在來服務(wù)于一個(gè)企業(yè)或系統(tǒng)。One size fits none。從技術(shù)角度看,極致的性能成本與通用性有著天然的矛盾,因此,在多樣化場(chǎng)景下,一定會(huì)是多引擎共存,充分發(fā)揮各種引擎的特點(diǎn)與優(yōu)勢(shì),才能實(shí)現(xiàn)極致與通用的兼得。
但是不是作為云數(shù)據(jù)庫服務(wù)廠商,我們把這些各類引擎產(chǎn)品都暴露給客戶、開發(fā)者自行選擇呢?從產(chǎn)品服務(wù)體驗(yàn)的角度看,必然不是。多模態(tài)技術(shù)引擎的現(xiàn)狀必然對(duì)開發(fā)者選型帶來選型、開發(fā)應(yīng)用上的困難——即如何能夠在保證適應(yīng)不同的場(chǎng)景下,同時(shí)獲得足夠高的性能表現(xiàn),這也是當(dāng)前數(shù)據(jù)庫發(fā)展面臨的一個(gè)困境。為了解決這個(gè)問題,未來我們希望是不需要用戶來進(jìn)行這些復(fù)雜的選擇,而是系統(tǒng)基于AI智能調(diào)度、serverless等解決方案,來徹底實(shí)現(xiàn)多引擎的統(tǒng)一標(biāo)準(zhǔn)化服務(wù)。從底層的角度看,未來開發(fā)者無需感知具體的產(chǎn)品選型,而比如在做數(shù)據(jù)分析的時(shí)候,系統(tǒng)能夠自動(dòng)幫助調(diào)度性能最好、事務(wù)交易一致性得到保障的方案。
在此基礎(chǔ)上,未來云數(shù)據(jù)庫服務(wù)的趨勢(shì)還是交付方式的融合,包括軟硬件一體化、私有云與公有云平臺(tái)融合等多種產(chǎn)品和服務(wù)交付方案,能夠讓客戶在敏感業(yè)務(wù)和運(yùn)營成本之間實(shí)現(xiàn)更加精細(xì)化管理。
智能化:AI+DB
智能化技術(shù)等底層技術(shù)生態(tài)融合變革,實(shí)現(xiàn)數(shù)據(jù)庫自治與智能管理也是未來數(shù)據(jù)庫趨勢(shì)之一。過去,對(duì)于一個(gè)企業(yè),也許幾個(gè)DBA來管理幾十套實(shí)例就足夠了,但比如對(duì)騰訊來說,數(shù)十萬的數(shù)據(jù)庫實(shí)例,難以通過配置人力來維持運(yùn)營,因此倒逼我們必須要通過工具或平臺(tái)來解決運(yùn)營效率的問題。此外,當(dāng)前分布式微服務(wù)改造的趨勢(shì)下,未來企業(yè)IT運(yùn)營也將具有越來越強(qiáng)烈的自治需求。智能化技術(shù)與數(shù)據(jù)庫底層的融合,能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行全生命周期智能管理。
加速釋放新硬件紅利
過去一個(gè)新硬件的推廣周期很長,很多傳統(tǒng)企業(yè)在采購新硬件方面相對(duì)非常保守。而對(duì)于云廠商來說,相對(duì)有條件逐步率先探索新硬件的應(yīng)用,比如先在非關(guān)鍵性應(yīng)用,同時(shí)也具備海量的場(chǎng)景驗(yàn)證,來實(shí)現(xiàn)穩(wěn)步規(guī)模化的推廣。這個(gè)角度來說,基于云計(jì)算服務(wù),云原生數(shù)據(jù)庫相對(duì)更加容易探索、釋放到新硬件帶來的紅利。
當(dāng)前我們也處于新硬件創(chuàng)新層出不窮的時(shí)代,包括SSD、NVM、RDMA+SPDK、千核服務(wù)器、異構(gòu)處理器等,基于云數(shù)據(jù)庫服務(wù),廣大的客戶、普通開發(fā)者也能夠更快速地享受到新硬件帶來的加持。
因此,融合、自治、效用是未來企業(yè)級(jí)分布式數(shù)據(jù)庫基本特點(diǎn)。騰訊云數(shù)據(jù)庫將從實(shí)踐層面對(duì)以上趨勢(shì)進(jìn)行落地推進(jìn),來滿足各行各業(yè)客戶未來對(duì)數(shù)據(jù)庫的多樣性需求。
總結(jié)
以上是生活随笔為你收集整理的云时代,我们需要怎样的数据库?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP 训练及推理一体化工具(Turbo
- 下一篇: MySQL 深入学习总结