云·創(chuàng)數(shù)據(jù)庫公開課第1期 | 騰訊云:新基建大潮下國(guó)產(chǎn)數(shù)據(jù)庫的探索與思考
6月中旬起,量子位發(fā)起了以數(shù)據(jù)庫為主題的系列公開課,邀請(qǐng)來自騰訊云、浪潮、螞蟻集團(tuán)等頭部企業(yè)的數(shù)據(jù)庫技術(shù)線負(fù)責(zé)人,圍繞數(shù)據(jù)庫的行業(yè)現(xiàn)狀、趨勢(shì)與技術(shù)進(jìn)展等內(nèi)容,以線上直播的形式為大家?guī)?期分享。
6月17日第一期直播中,騰訊云數(shù)據(jù)庫副總經(jīng)理—王義成全面剖析了全球數(shù)據(jù)庫的發(fā)展歷程,同時(shí)分享了如何將云計(jì)算、新基建、數(shù)據(jù)庫的能力進(jìn)行融合創(chuàng)新,以及自主創(chuàng)新研發(fā)新型國(guó)產(chǎn)數(shù)據(jù)庫技術(shù)背后的歷程。此外還結(jié)合實(shí)際金融案例,詳細(xì)介紹了騰訊云自研國(guó)產(chǎn)數(shù)據(jù)庫TDSQL和TBase的產(chǎn)品核心架構(gòu)和最佳實(shí)踐。
直播回放:
以下是分享內(nèi)容實(shí)錄:
數(shù)據(jù)庫行業(yè)發(fā)展剖析
中國(guó)數(shù)據(jù)庫行業(yè)發(fā)展史
首先我們回溯一下中國(guó)數(shù)據(jù)庫行業(yè)發(fā)展史。中國(guó)數(shù)據(jù)庫行業(yè)的起源是在恢復(fù)高考之后(1978年),當(dāng)時(shí)薩師煊老師出版了中國(guó)第一部數(shù)據(jù)庫教材《數(shù)據(jù)庫技術(shù)概論》,當(dāng)時(shí)國(guó)防、軍工等很多核心領(lǐng)域開始應(yīng)用數(shù)據(jù)庫。90年代初,中國(guó)商業(yè)數(shù)據(jù)庫的格局初步形成。1989年,Oracle正式進(jìn)軍中國(guó),依靠強(qiáng)大的生態(tài)、服務(wù)體系和產(chǎn)品優(yōu)勢(shì),壟斷了金融、電信等許多行業(yè),占據(jù)了中國(guó)數(shù)據(jù)庫市場(chǎng)份額的半壁江山。
2000年起B(yǎng)AT相繼創(chuàng)立,而當(dāng)時(shí)Oracle價(jià)格昂貴,互聯(lián)網(wǎng)公司資金有限的情況下難以承受龐大的數(shù)據(jù)庫商業(yè)費(fèi)用。所以在這時(shí),以MySQL為首的開源數(shù)據(jù)庫就開始與互聯(lián)網(wǎng)公司進(jìn)行碰撞了。MySQL在互聯(lián)網(wǎng)公司呈現(xiàn)了一統(tǒng)江湖的狀態(tài),丁奇等優(yōu)秀的開源技術(shù)領(lǐng)袖都是在那個(gè)階段開始逐漸涌現(xiàn)。
2010年4G開始大批量使用,2011年相繼出現(xiàn)了很多優(yōu)秀的互聯(lián)網(wǎng)公司,如美團(tuán),滴滴等。到2013年這些優(yōu)秀的公司開始迸發(fā),一直到今天,這波互聯(lián)網(wǎng)紅利還在持續(xù)地演進(jìn)。這個(gè)階段是互聯(lián)網(wǎng)百花齊放的一個(gè)階段,消費(fèi)互聯(lián)網(wǎng)還在延展,并且正在進(jìn)入消費(fèi)互聯(lián)網(wǎng)和產(chǎn)業(yè)互聯(lián)網(wǎng)結(jié)合的階段。To C領(lǐng)域的消費(fèi)互聯(lián)網(wǎng),還在大批量的迸發(fā),諸如拼多多等破千億美元市值的公司還在出現(xiàn)。
所以我認(rèn)為,從2013年到現(xiàn)在,優(yōu)秀的應(yīng)用、公司開始涌現(xiàn)之后,也迎來了業(yè)務(wù)多元化高速發(fā)展的階段。我們也看到這些優(yōu)秀的互聯(lián)網(wǎng)公司里開始不再只是MySQL一種引擎去支撐公司的業(yè)務(wù)發(fā)展。像Postgre、MariaDB、Redis、Cassandra、MongoDB等優(yōu)秀的開源數(shù)據(jù)庫也都開始在這些互聯(lián)網(wǎng)新貴的核心業(yè)務(wù)系統(tǒng)中承載很重要的作用。
數(shù)據(jù)庫商業(yè)模式變遷
換一個(gè)維度來看,數(shù)據(jù)庫的商業(yè)形態(tài)、商業(yè)模式上到底有什么樣的變遷?
剛才講到90年代Oracle數(shù)據(jù)庫開始進(jìn)軍中國(guó),這是一種傳統(tǒng)商業(yè)數(shù)據(jù)庫的模式,以賣license、賣服務(wù)的模式來提供商業(yè)價(jià)值。這種模式以O(shè)racle、SQLServer、Informix、DB2為代表,這種商業(yè)模式已經(jīng)存在了多年。今天早上我看了Oracle公布的第四季財(cái)報(bào),整體收入同比下降6%;軟件license的收入同比下降超過20%。從財(cái)報(bào)的數(shù)據(jù)可以看到,這種傳統(tǒng)的商業(yè)模式正在被逐漸的侵蝕,客戶的付費(fèi)模式在發(fā)生變化。這時(shí)一定有新的商業(yè)模式來替換。
再看中間“百花齊放”的幾個(gè)發(fā)展階段,又可以分為三大類。第一類是老牌國(guó)產(chǎn)數(shù)據(jù)庫,如達(dá)夢(mèng)、人大金倉、南大通用等以高校為背景成立的優(yōu)秀數(shù)據(jù)庫公司,他們的模式跟商業(yè)數(shù)據(jù)庫很像,但是他們有新的響應(yīng)模式,他們切的是老的黨政機(jī)關(guān)政務(wù)內(nèi)網(wǎng)、政府等一些集中式的數(shù)據(jù)庫場(chǎng)景。
隨著時(shí)間的延伸,逐漸出現(xiàn)第二類—開源商用數(shù)據(jù)庫,MySQL、MongoDB、Redis等優(yōu)秀的開源數(shù)據(jù)庫出現(xiàn)。但開源總歸是一門生意,它是一個(gè)閉環(huán)的商業(yè)模式。國(guó)外有很多優(yōu)秀的商業(yè)公司在后臺(tái)運(yùn)作這批開源數(shù)據(jù)庫,來為用戶提供更加高價(jià)值、或者企業(yè)化的服務(wù),來完成它的商業(yè)模式閉環(huán)。比較有代表性的比如MongoDB atlas,它把MongoDB做開源之后,提供atlas云服務(wù),也提供線下的企業(yè)版服務(wù),來形成商業(yè)模式的閉環(huán);而RedisLab主要是以色列人和美國(guó)人建立的,利用Redis開源軟件逐漸的實(shí)現(xiàn)它的企業(yè)級(jí)功能,然后為用戶提供服務(wù)。
第三類是新晉的國(guó)產(chǎn)數(shù)據(jù)庫,他們的商業(yè)模式本質(zhì)上沒有變化,而是切入了更新的場(chǎng)景。比較典型的代表有PingCAP、巨杉等,他們提出的場(chǎng)景是出于用戶的開發(fā)者高效運(yùn)維的角度來切一個(gè)特定場(chǎng)景,然后用傳統(tǒng)的企業(yè)軟件模式或者license模式來切這部分相應(yīng)的市場(chǎng)。
最后就是云服務(wù)模式的到來,即云服務(wù)廠商來提供相應(yīng)的數(shù)據(jù)庫服務(wù)。不再是提供license授權(quán)、或提供人工服務(wù),而是采用租用模式,改變了整個(gè)數(shù)據(jù)庫商業(yè)模式。比如騰訊云、阿里云、AWS數(shù)據(jù)庫,都是云服務(wù)廠商基于開源數(shù)據(jù)庫或者商業(yè)數(shù)據(jù)庫做相應(yīng)的產(chǎn)品化、商業(yè)化的工作,為用戶提供租用數(shù)據(jù)庫服務(wù)。
國(guó)產(chǎn)數(shù)據(jù)庫布局
上述我們了解了近30到40年數(shù)據(jù)庫行業(yè)在商業(yè)模式上的大變遷。下面我們聊一下國(guó)產(chǎn)數(shù)據(jù)庫的布局。在中美貿(mào)易戰(zhàn)背景下,包括類似Matlab軟件使用限制事件發(fā)生后,國(guó)內(nèi)有很大的聲音在呼吁做自主可控的“中國(guó)芯”核心組件。而我們認(rèn)為,IT基礎(chǔ)設(shè)施三個(gè)最核心的組件,一個(gè)是服務(wù)器/芯片,一個(gè)是操作系統(tǒng),另一個(gè)就是數(shù)據(jù)庫。
國(guó)產(chǎn)數(shù)據(jù)庫有哪些商業(yè)模式和應(yīng)用場(chǎng)景?
第一類是傳統(tǒng)國(guó)產(chǎn)數(shù)據(jù)庫,由高校系的老師帶領(lǐng)團(tuán)隊(duì)做產(chǎn)品化和商業(yè)化的運(yùn)作,比如達(dá)夢(mèng)、金倉等,更多的是貼合集中式數(shù)據(jù)庫場(chǎng)景,他們的具體客戶案例以集中式數(shù)據(jù)庫偏多。
第二類是互聯(lián)網(wǎng)廠商性質(zhì)的數(shù)據(jù)庫(也包括華為),這類的數(shù)據(jù)庫廠商就是自己使用,自己的數(shù)據(jù)庫在自己的業(yè)務(wù)中做了很多的獨(dú)特的打磨,然后在自己的這種大規(guī)模的并發(fā)業(yè)務(wù)中,承擔(dān)了很多的流量之后,再把這樣的數(shù)據(jù)庫去產(chǎn)品化,提供給廣大用戶。以騰訊和阿里為代表,騰訊的像TDSQL,TBase都是支持內(nèi)部的微信支付,財(cái)付通,有很大的交易流量,之后再逐步產(chǎn)品化,給外部用戶使用。像阿里的OceanBase可能也是這樣的,內(nèi)部支持螞蟻金服,然后再去逐漸的開放給廣大的傳統(tǒng)行業(yè)去使用。
第三類就是新興的數(shù)據(jù)庫,說新興是因?yàn)樗麄儾皇且环N傳統(tǒng)高校的背景,也沒有他們自己的數(shù)據(jù)庫,也沒有自己內(nèi)部的一個(gè)場(chǎng)景,但是他們確實(shí)看到了用戶使用上的一個(gè)痛點(diǎn),從一個(gè)細(xì)分場(chǎng)景去切,然后逐漸的去把這種商業(yè)的盤子做大。比如像PingCAP這樣的數(shù)據(jù)庫,他們剛開始起步的時(shí)候,出于用戶使用分布式數(shù)據(jù)庫開發(fā)角度,或者說運(yùn)維角度的不便利,使用傳統(tǒng)的計(jì)算跟存儲(chǔ)分離的模式,然后以一個(gè)統(tǒng)一的使用方式去調(diào)用分布式數(shù)據(jù)庫,然后切到了相應(yīng)的場(chǎng)景去做線下的產(chǎn)出跟商業(yè)化的操作。
第四類就是第三方平臺(tái)型的數(shù)據(jù)庫,這類一般是指公司在某個(gè)行業(yè)有多年積累,然后根據(jù)這個(gè)行業(yè)的特定場(chǎng)景做一款數(shù)據(jù)庫,之后再逐步推廣到其他領(lǐng)域,比如亞信,中興。亞信是一個(gè)運(yùn)營(yíng)商行業(yè)老牌公司,對(duì)于運(yùn)營(yíng)商的一些核心業(yè)務(wù)系統(tǒng),他們使用了適用于這些業(yè)務(wù)的數(shù)據(jù)庫,再?gòu)倪\(yùn)營(yíng)商推廣到其他行業(yè),逐步的產(chǎn)品化。
綜上,目前我們國(guó)產(chǎn)數(shù)據(jù)庫也是一個(gè)百花齊放的狀態(tài),大致可以分為這4類。我認(rèn)為第二類的數(shù)據(jù)庫廠商可能是更適合于在現(xiàn)在的大環(huán)境,因?yàn)樗吘故窃诖笠?guī)模的應(yīng)用上已經(jīng)自己磨練出來了一套相對(duì)穩(wěn)定、功能相對(duì)齊全的一套數(shù)據(jù)庫,然后再去應(yīng)用不同的場(chǎng)景,再把這樣的數(shù)據(jù)庫推給更多的用戶,更多的行業(yè)去使用。我認(rèn)為這種模式在工程化跟商業(yè)化實(shí)踐中,更容易摸索出一條成功的道路。
新基建對(duì)數(shù)據(jù)庫行業(yè)的機(jī)遇
第二個(gè)話題是關(guān)于新基建對(duì)于數(shù)據(jù)庫行業(yè)的挑戰(zhàn)和機(jī)會(huì)。新基建包括了大概7個(gè)領(lǐng)域,包括5G基站、城際高速等,其中跟產(chǎn)業(yè)互聯(lián)網(wǎng)相關(guān)的,主要是5G、大數(shù)據(jù)中心、人工智能、工業(yè)互聯(lián)網(wǎng)這幾個(gè)領(lǐng)域,我總結(jié)新基建主要分為三個(gè)部分。
第一部分是信息基礎(chǔ)設(shè)施,包括三部分,一是通信網(wǎng)絡(luò)基礎(chǔ)設(shè)施的提升,比如說5G可能有上百萬個(gè)基站要去部署,整個(gè)網(wǎng)絡(luò)的提速會(huì)非??臁6切录夹g(shù)的基礎(chǔ)設(shè)施,主要是指人工智能大數(shù)據(jù)等技術(shù)怎么去應(yīng)用在新的技術(shù)基礎(chǔ)設(shè)施上實(shí)現(xiàn)一個(gè)整體的提升。三是算力的基礎(chǔ)設(shè)施的提升,主要包括在大數(shù)據(jù)中心,智能數(shù)據(jù)中心,邊緣計(jì)算這些的基礎(chǔ)設(shè)施方面的布局和建設(shè)。
第二部分是融合基礎(chǔ)設(shè)施。一是物聯(lián)網(wǎng)的智能交通的基礎(chǔ)設(shè)施,其中整個(gè)的數(shù)據(jù)傳導(dǎo)、數(shù)據(jù)匯聚、數(shù)據(jù)分析,以及在這套整體的基礎(chǔ)設(shè)施中做的整個(gè)的產(chǎn)業(yè)互聯(lián)網(wǎng)的布局的加速。二是智能能源的基礎(chǔ)設(shè)施,就是七大領(lǐng)域中的工業(yè)互聯(lián)網(wǎng),包括這些基礎(chǔ)的組件,數(shù)據(jù)的抽取、匯集、分析、加工,以及在整體基礎(chǔ)設(shè)施上的全面提升。
第三部分就是創(chuàng)新基礎(chǔ)設(shè)施,包括一些重大科技的基礎(chǔ)設(shè)施的提升,然后科教基礎(chǔ)設(shè)施的提升,產(chǎn)業(yè)技術(shù)包括創(chuàng)新科技園整個(gè)創(chuàng)新基礎(chǔ)設(shè)施的全面提升。
宏觀上來看新基建的7大領(lǐng)域會(huì)大概分為這三類,那么這些方面的提升對(duì)于數(shù)據(jù)庫來說到底有什么本質(zhì)上的沖擊?
我認(rèn)為,不管怎么變化,其實(shí)數(shù)據(jù)庫的作用一個(gè)是裝數(shù)據(jù),一個(gè)是運(yùn)算數(shù)據(jù),一個(gè)是分析數(shù)據(jù),最后是呈現(xiàn)數(shù)據(jù)。所以對(duì)于數(shù)據(jù)庫來說,新基建和基礎(chǔ)設(shè)施的提升主要有三個(gè)挑戰(zhàn):
第一,數(shù)據(jù)量會(huì)出現(xiàn)全面井噴的狀態(tài)。在4G的模式下,AR、VR等并沒有很好的用戶體驗(yàn),但真正到了5G時(shí)代,這些相應(yīng)的基礎(chǔ)設(shè)施能力提升之后,用戶體驗(yàn)也會(huì)隨之大幅提升,帶來的問題可能就是數(shù)據(jù)量會(huì)出現(xiàn)井噴式增長(zhǎng)。對(duì)于數(shù)據(jù)庫來說,一方面在線交易的數(shù)據(jù)庫的性能會(huì)爆發(fā),尤其是頻繁的增刪改查的數(shù)據(jù)庫操作。需要應(yīng)對(duì)這種數(shù)據(jù)量的井噴,來滿足實(shí)時(shí)的進(jìn)行相應(yīng)的運(yùn)算。另一方面是在線分析數(shù)據(jù)庫的業(yè)務(wù)性,怎么能夠快速的進(jìn)行在線的分析,這也會(huì)對(duì)于在線分析的數(shù)據(jù)庫性能有較大的挑戰(zhàn)。
第二是業(yè)務(wù)融合多樣化的挑戰(zhàn)。數(shù)據(jù)的呈現(xiàn)是多模態(tài)的,各種數(shù)據(jù)需要不同模式的數(shù)據(jù)庫來承載,對(duì)于數(shù)據(jù)庫來說就會(huì)滋生多模的業(yè)務(wù)需求(對(duì)于不同的數(shù)據(jù)類型、對(duì)于同樣的業(yè)務(wù)接口或者指標(biāo),怎樣把數(shù)據(jù)匯集和加工)。另外就是場(chǎng)景、部署的業(yè)務(wù)融合,新基建的領(lǐng)域里,有智能的IDC也有大數(shù)據(jù)中心,智能中心,有這種產(chǎn)業(yè)互聯(lián)網(wǎng)融合基礎(chǔ)設(shè)施的提升,不同的部署場(chǎng)景,不同的部署模式或者說不同的數(shù)據(jù)中心的部署,其實(shí)對(duì)于業(yè)務(wù)的融合也有很大的挑戰(zhàn)。數(shù)據(jù)庫是否能夠接受在不同的業(yè)務(wù)中心、數(shù)據(jù)中心、基礎(chǔ)設(shè)施之間去做相應(yīng)的部署和融合,這也是未來對(duì)數(shù)據(jù)庫一個(gè)大的挑戰(zhàn)跟沖擊。
第三是數(shù)據(jù)自動(dòng)化治理或者數(shù)據(jù)庫自動(dòng)化優(yōu)化層面的訴求和要求。隨著中國(guó)老齡化的逐漸演變,包括人才紅利的釋放之后,數(shù)據(jù)庫人才缺口可能會(huì)更大。對(duì)于數(shù)據(jù)庫的提供商來說,就是要為用戶提供多種的自動(dòng)化的服務(wù),或者說是AI類的服務(wù)。另外就是對(duì)于數(shù)據(jù)庫多模的現(xiàn)狀,數(shù)據(jù)庫的廠商是否能為用戶提供這種自動(dòng)運(yùn)維的服務(wù),也是對(duì)整個(gè)數(shù)據(jù)自動(dòng)化治理的重要挑戰(zhàn)。
騰訊云數(shù)據(jù)庫發(fā)展的整體布局和應(yīng)對(duì)策略
基于這樣的一個(gè)大的歷史機(jī)遇,騰訊云數(shù)據(jù)庫的發(fā)展布局是怎樣的呢?
上圖是騰訊云數(shù)據(jù)庫整體的產(chǎn)品矩陣。最底層的數(shù)據(jù)庫PaaS產(chǎn)品我們提供了多模的數(shù)據(jù)庫:包括以MySQL為代表的關(guān)系型數(shù)據(jù)庫,以Redis為代表的非關(guān)系型數(shù)據(jù)庫,還有分布式的數(shù)據(jù)庫來支持海量的分析、在線交易,同時(shí)還有以游戲場(chǎng)景為衍生的支持王者榮耀的TcaplusDB數(shù)據(jù)庫。
正如剛剛說的,新的歷史機(jī)遇到來時(shí),騰訊云也有數(shù)據(jù)治理、數(shù)據(jù)自動(dòng)化管理方面的數(shù)據(jù)庫智能服務(wù),提供了多種數(shù)據(jù)庫SaaS產(chǎn)品。包括怎么去做數(shù)據(jù)的遷移、怎么去做智能的DBA優(yōu)化(智能管家DBbrain),另外還有數(shù)據(jù)管理服務(wù)等七八款相應(yīng)的數(shù)據(jù)庫SaaS產(chǎn)品,配合騰訊云的數(shù)據(jù)庫PaaS產(chǎn)品,為用戶提供了全棧的數(shù)據(jù)庫解決方案。
為了支撐上述產(chǎn)品和布局,騰訊云數(shù)據(jù)庫也在北京、上海、廣州、深圳、成都建立了多個(gè)數(shù)據(jù)庫研發(fā)團(tuán)隊(duì),有自主可控的開源分支,有中國(guó)數(shù)據(jù)庫社區(qū)的主席團(tuán)成員,也參與一些國(guó)家云計(jì)算的標(biāo)準(zhǔn)的制定。
騰訊云數(shù)據(jù)庫的自研技術(shù)思路主要包含兩個(gè)維度:
第一個(gè)維度,叫互聯(lián)網(wǎng)類的數(shù)據(jù)庫,騰訊云從自有的業(yè)務(wù)開始孵化,逐漸去做商業(yè)化的結(jié)合。所以騰訊云的數(shù)據(jù)庫其實(shí)最早都是自有業(yè)務(wù)開始打磨,這些數(shù)據(jù)庫在自家的業(yè)務(wù)上摸爬滾打多年,然后支持相應(yīng)的定制來滿足不同的用戶需求。
比如財(cái)付通、微信支付,以及第一家互聯(lián)網(wǎng)銀行WeBank,都是先跑在騰訊云數(shù)據(jù)庫之上,很好的支持內(nèi)部業(yè)務(wù)之后;然后在合適的時(shí)間點(diǎn)上,我們開始跟高校的團(tuán)隊(duì)做相應(yīng)的AI結(jié)合,像基于AI的優(yōu)化器性能調(diào)優(yōu)、相應(yīng)的課題研究等;然后到了下一個(gè)階段,我們把這些數(shù)據(jù)庫產(chǎn)品化商業(yè)化之后,再給廣大用戶提供服務(wù),比如公有云(拼多多、美團(tuán)等)客戶,也有私有云(銀行、政府小程序等)客戶。
第二個(gè)維度是在自主可控的研發(fā)思路上。騰訊一直秉承著先把開源在內(nèi)部應(yīng)用,針對(duì)自己的業(yè)務(wù)場(chǎng)景做相應(yīng)的技術(shù)創(chuàng)新和突破,然后再去回饋開源,來維護(hù)開源社區(qū)里自己的分支代碼,最后實(shí)現(xiàn)研發(fā)自主可控的思路。
上圖是騰訊云分布式數(shù)據(jù)庫的發(fā)展歷史。我們從08年開始起步支持內(nèi)部的基礎(chǔ)業(yè)務(wù),目前騰訊云的自研數(shù)據(jù)庫支持著騰訊系全部交易類的數(shù)據(jù)。隨著業(yè)務(wù)的發(fā)展,2012年開始孵化TBase產(chǎn)品,支撐騰訊內(nèi)部的廣告業(yè)務(wù)。隨著騰訊向產(chǎn)業(yè)互聯(lián)網(wǎng)的轉(zhuǎn)型,我們也逐漸把這些云服務(wù)封裝到公有云、專有云。
到2018年,我們發(fā)現(xiàn)在切到傳統(tǒng)市場(chǎng)的時(shí)候,這些交易類數(shù)據(jù)庫的用戶還在使用傳統(tǒng)的分布式存儲(chǔ)、前端加上一個(gè)集中式的模式,來解決OLTP的并發(fā)或者擴(kuò)展性的問題。所以騰訊云自研了云原生的、存儲(chǔ)和計(jì)算分離的數(shù)據(jù)庫CynosDB,后續(xù)在這個(gè)模式上會(huì)持續(xù)推進(jìn)。
騰訊云數(shù)據(jù)庫的布局大概分兩類。從引擎的角度來說,我們會(huì)擁抱開源的兩個(gè)引擎,一個(gè)是MySQL引擎,一個(gè)是PostgreSQL引擎。
從技術(shù)架構(gòu)來說,一是分庫分表的分布式數(shù)據(jù)庫的架構(gòu),它的優(yōu)勢(shì)在于其性能可以無限擴(kuò)展;二是云原生的分布式數(shù)據(jù)庫的架構(gòu),其存儲(chǔ)層面會(huì)有相應(yīng)的Share模式,計(jì)算機(jī)節(jié)點(diǎn)則是相應(yīng)的獨(dú)立。
這就是騰訊在自研數(shù)據(jù)庫的發(fā)展布局,采用Shared-Storage&shared-Nothing雙架構(gòu),雙引擎的雙核出擊方案,滿足不同的業(yè)務(wù)需求,覆蓋主流應(yīng)用場(chǎng)景。
自主研發(fā)數(shù)據(jù)庫TDSQL和TBase核心架構(gòu)揭秘和實(shí)踐
接下來從技術(shù)架構(gòu)和基礎(chǔ)功能兩個(gè)角度,來分享下騰訊云數(shù)據(jù)庫的構(gòu)建思路和產(chǎn)品化演進(jìn)的思路。
上圖是上述講到的水平擴(kuò)展的分布式數(shù)據(jù)庫架構(gòu),我們把數(shù)據(jù)分配多個(gè)分片,然后通過強(qiáng)大的SQL引擎來做相應(yīng)的分發(fā),并且做基層的下推,將數(shù)據(jù)下推到各個(gè)節(jié)點(diǎn)去做相應(yīng)的數(shù)據(jù)運(yùn)算,最后匯聚數(shù)據(jù),來為用戶提供可平滑擴(kuò)展的分布式數(shù)據(jù)庫架構(gòu)。
上圖是計(jì)算存儲(chǔ)分離的分布式數(shù)據(jù)庫架構(gòu)。我們認(rèn)為,改變用戶的已有使用習(xí)慣是很難的,但是培養(yǎng)一個(gè)新習(xí)慣也許還可行。因此,在某些傳統(tǒng)的商業(yè)數(shù)據(jù)庫模式下,改變用戶使用Oracle的模式會(huì)有相應(yīng)的阻力。但是,對(duì)于傳統(tǒng)的Oracle它還是一種Share的模式,所以我們布局了這種分布式數(shù)據(jù)庫的架構(gòu),將計(jì)算跟存儲(chǔ)分離,區(qū)別在于它是一種日志級(jí)的數(shù)據(jù)庫。
我們?cè)谏蠈?、在交換機(jī)的三個(gè)節(jié)點(diǎn)是純計(jì)算節(jié)點(diǎn),這些計(jì)算節(jié)點(diǎn)可以完全兼容MySQL或者Postgre的協(xié)議,然后數(shù)據(jù)的日志通過網(wǎng)絡(luò)交換機(jī)下發(fā)到底層的DB節(jié)點(diǎn),讓底層的存儲(chǔ)節(jié)點(diǎn)來感知日志,再把日志逐步的回放。
這種架構(gòu)的優(yōu)勢(shì)是存儲(chǔ)層面可以水平擴(kuò)展,當(dāng)用戶拉起一個(gè)讀取節(jié)點(diǎn)的時(shí)候,可以瞬間啟動(dòng)一個(gè)讀取節(jié)點(diǎn),不用做相應(yīng)的數(shù)據(jù)重放。另一個(gè)優(yōu)勢(shì)是它不像Oracle模式整頁刷新,也不依賴于IP交換機(jī)的模式,而是只在交換機(jī)層面去傳輸日志,所以基本上一個(gè)傳統(tǒng)的萬眾交換機(jī)就能滿足這種業(yè)務(wù)場(chǎng)景。因此,在整體的成本或性能上都是一種非常有性價(jià)比的技術(shù)架構(gòu)。
除了技術(shù)架構(gòu)的優(yōu)勢(shì),再來分享一下騰訊云數(shù)據(jù)庫在用戶功能層面(產(chǎn)品化層面)的一些設(shè)計(jì)理念。我們認(rèn)為一款優(yōu)秀的數(shù)據(jù)庫應(yīng)該遵循6個(gè)特點(diǎn):
1、數(shù)據(jù)強(qiáng)一致
騰訊云是基于主從架構(gòu)的“并行多線程強(qiáng)同步復(fù)制方案”,以保證數(shù)據(jù)的強(qiáng)一致,整體上可以保證主從節(jié)點(diǎn)這種默認(rèn)強(qiáng)度的模式下,性能還不亞于原生的異構(gòu)同步。
從上圖(英特爾公司測(cè)試數(shù)據(jù))可以看出,TDSQL真正跑起來之后比原生的異構(gòu)同步的性能還要高,其實(shí)就是要靠這種強(qiáng)同步的邏輯,再加上多線程的同步方案做一定的改造。
2、金融級(jí)高可用
騰訊云提供了跨機(jī)房容災(zāi)、跨地域容災(zāi)等多種模式來保證整個(gè)金融級(jí)別的高可用。在系列功能上,我們提供了多達(dá)384項(xiàng)監(jiān)控指標(biāo)、進(jìn)程保護(hù)機(jī)制、系統(tǒng)免切機(jī)制、毫秒級(jí)切換機(jī)制等,通過SQL-Engine的路由,保證一個(gè)整體毫秒級(jí)的切換,提供6個(gè)9以上的金融級(jí)別的高可用。
3、高安全性
安全性分為事前、事中、事后三個(gè)維度:
事前是指在攻擊發(fā)生之前,采取某些措施保證數(shù)據(jù)庫不被黑客所攻擊。騰訊云提供了傳輸層加密、數(shù)據(jù)層加密、權(quán)限細(xì)粒度鑒權(quán)等事前的監(jiān)控策略。
事中是指真正攻擊已經(jīng)發(fā)起,我們需要采取一些保護(hù)策略。首先,騰訊云有內(nèi)核級(jí)的安全策略、內(nèi)置的SQL防火墻,我們可以配置那些安全性非常差的SQL命令,收到這條SQL命令之后,直接阻塞攻擊,這也是一種內(nèi)置防火墻的機(jī)制。其次是防誤操作機(jī)制,比如像delete全表或者join表結(jié)構(gòu)等命令,都會(huì)被系統(tǒng)默認(rèn)過濾掉,不會(huì)真正下發(fā)到命令解析器做出相應(yīng)操作。
事后是指上述操作已經(jīng)被執(zhí)行之后,整個(gè)產(chǎn)品體系有一套標(biāo)準(zhǔn)的溯源功能。騰訊云的事后安全審計(jì)策略,一方面是有全部的運(yùn)維操作審計(jì)、數(shù)據(jù)庫層面的審計(jì),在不耗費(fèi)性能情況下,能夠?qū)⑷康臄?shù)據(jù)庫操作記錄下來,包括讀操作(比如某些數(shù)據(jù)被拖走時(shí),我們可以查到哪個(gè)IP、在什么時(shí)間點(diǎn)、用什么賬號(hào)、采用什么模式、拿走了哪些數(shù)據(jù),以盡量減少數(shù)據(jù)損失)。另外還有服務(wù)器審計(jì)、超級(jí)權(quán)限控制等。
4、良好的擴(kuò)展性
擴(kuò)展性分為兩類,一類是資源層面的擴(kuò)展,一類是功能層面的擴(kuò)展。
資源層面的擴(kuò)展,騰訊云提供兩種模式。從集中式的實(shí)例可以一鍵擴(kuò)展到分布式實(shí)例,然后分布式實(shí)例也可以自動(dòng)掛載多個(gè)分片來加分片,自動(dòng)的做數(shù)據(jù)重分布、平滑的數(shù)據(jù)遷移。用戶可以在剛開始使用時(shí)選擇較低的配置,然后隨著業(yè)務(wù)的爆發(fā),可以直接多加分片,并且整個(gè)的操作過程是全部平滑的,對(duì)于性能的損失基本都為零。
功能層面的擴(kuò)展,比如熱點(diǎn)更新的擴(kuò)展,支持更大存儲(chǔ)的引擎(RocksDB),產(chǎn)品中支持這種寫量超大、數(shù)據(jù)量超大的場(chǎng)景,以及適配于物聯(lián)網(wǎng)的傳感器數(shù)據(jù)。另外還提供了像JSON、線程池等擴(kuò)展。
5、便捷的運(yùn)維
便捷的運(yùn)維性也有兩個(gè)維度,首先我們要把運(yùn)維系統(tǒng)做的足夠便捷,其次還要基于AI、數(shù)據(jù)模型的算法,提供更優(yōu)化的數(shù)據(jù)庫工具,來為用戶提供更加便利的功能。
運(yùn)維系統(tǒng)方面,騰訊云為業(yè)務(wù)方提供云數(shù)據(jù)庫管理系統(tǒng),通過租戶視角,使用者在一鍵化的控制臺(tái)上做相應(yīng)的實(shí)例申請(qǐng)與退還、系統(tǒng)監(jiān)控、備份與恢復(fù)、性能優(yōu)化等。同時(shí)為運(yùn)維方提供運(yùn)營(yíng)平臺(tái),從管理員的角度,提供TDSQL的全部運(yùn)維功能,可管理TDSQL集群的物理資源、調(diào)度決策系統(tǒng)、備份與恢復(fù)系統(tǒng)、可用區(qū)管理、實(shí)例管理等。
運(yùn)維工具方面,騰訊云為用戶提供了一套智能管家運(yùn)維服務(wù),叫DBbrain。可以支持多種數(shù)據(jù)庫實(shí)例,包括MySQL、Redis、MongoDB等,通過采集它們的監(jiān)控?cái)?shù)據(jù),然后去做相應(yīng)的審計(jì)日志的上傳與抽取,包括MySQL數(shù)據(jù)分析;然后基于這些整體數(shù)據(jù),再做數(shù)據(jù)的計(jì)算跟加工,基于現(xiàn)在數(shù)據(jù)性能的點(diǎn)、數(shù)據(jù)庫的日志、MySQL整體等推算出全盤的審計(jì)數(shù)據(jù),直接做實(shí)例的診斷,告訴用戶在哪個(gè)時(shí)間點(diǎn)、哪些SQL語句、哪些調(diào)用導(dǎo)致了數(shù)據(jù)庫性能在什么時(shí)間點(diǎn)、出現(xiàn)了什么異常。
同時(shí)我們還在做微信端的打通,用戶未來在自己的微信公眾號(hào)或者微信小程序上,就可以實(shí)時(shí)的操作數(shù)據(jù)庫,脫離電腦的束縛,實(shí)時(shí)通過微信小程序?qū)?shù)據(jù)庫做相應(yīng)的操作和運(yùn)維。
應(yīng)用案例:微眾銀行
騰訊云數(shù)據(jù)庫經(jīng)過多年的發(fā)展,支撐起網(wǎng)上政務(wù)、金融交付、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等應(yīng)用。其中分享一個(gè)比較有代表性的案例—微眾銀行,來看下騰訊云數(shù)據(jù)庫如何支撐客戶的業(yè)務(wù)系統(tǒng)。
整體而言,銀行系統(tǒng)有三部分比較重要,一是核心交易系統(tǒng),二是數(shù)據(jù)庫,三是硬件(芯片、服務(wù)器)。而微眾銀行不僅是第一個(gè)互聯(lián)網(wǎng)銀行,也是第一個(gè)把全部業(yè)務(wù)系統(tǒng)國(guó)產(chǎn)化的企業(yè):由一家國(guó)內(nèi)公司做核心業(yè)務(wù)系統(tǒng)開發(fā),數(shù)據(jù)庫跑在騰訊云數(shù)據(jù)庫之上,核心交易系統(tǒng)采用了華為鯤鵬,整個(gè)體系都是跑在國(guó)產(chǎn)的自主可控的路線之上。而騰訊云的數(shù)據(jù)庫TDSQL也很好的支持了微眾銀行全部的交易數(shù)據(jù)。
騰訊為什么要做微眾銀行?哪些點(diǎn)是新興互聯(lián)網(wǎng)企業(yè)、傳統(tǒng)銀行轉(zhuǎn)型時(shí)所看中的?
我認(rèn)為,首先是多維度的監(jiān)控能力,秒級(jí)監(jiān)控、數(shù)據(jù)實(shí)時(shí)推算、基于數(shù)據(jù)的匯聚為用戶提供的實(shí)例分析的診斷等。其次是基于租戶端或基于運(yùn)維端的自動(dòng)化運(yùn)維能力,讓用戶可以自行的對(duì)數(shù)據(jù)庫做相應(yīng)的部署和運(yùn)維。其次是多副本的強(qiáng)一致性,以及跨機(jī)房容災(zāi)、跨地域容災(zāi)等模式。
—完—
- 天云數(shù)據(jù)CEO雷濤:從軟件到數(shù)件,AI生態(tài)如何建立自己的“Android”?| 量子位·視點(diǎn)分享回顧2022-03-23
- 火熱報(bào)名中丨2022實(shí)景三維創(chuàng)新峰會(huì)成都站將于4月13日召開!2022-03-21
- 從軟件到數(shù)件,AI生態(tài)如何建立自己的“Android”?天云數(shù)據(jù)CEO直播詳解,可預(yù)約 | 量子位·視點(diǎn)2022-03-11
- 什么樣的AI制藥創(chuàng)企才能走得更遠(yuǎn)?來聽聽業(yè)內(nèi)怎么說|直播報(bào)名2022-03-03