背景與趨勢(shì)
云計(jì)算加速數(shù)據(jù)庫(kù)系統(tǒng)演進(jìn)
首先我們看一下云計(jì)算的發(fā)展給數(shù)據(jù)庫(kù)系統(tǒng)帶來(lái)了哪些變化?數(shù)據(jù)庫(kù)系統(tǒng)是計(jì)算機(jī)領(lǐng)域三大基礎(chǔ)軟件系統(tǒng)之一,操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)。上世紀(jì)80年代初,數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)始走上了歷史舞臺(tái),早期的關(guān)系型數(shù)據(jù)庫(kù)以甲骨文為代表,取得了巨大的商業(yè)成功。后來(lái)出現(xiàn)了開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),比如MySQL、Postgres等。到90年代,隨著關(guān)系型數(shù)據(jù)庫(kù)的廣泛應(yīng)用,產(chǎn)生了大量的數(shù)據(jù),分析這些結(jié)構(gòu)化的數(shù)據(jù)對(duì)分析型的數(shù)據(jù)庫(kù)系統(tǒng)提出了很高的要求。這就是為什么在90年代涌現(xiàn)出了一批分析型數(shù)據(jù)庫(kù)系統(tǒng)。世紀(jì)更迭,2000年到2010年左右的這段時(shí)間是大數(shù)據(jù)技術(shù)走上歷史舞臺(tái)的時(shí)代。
數(shù)據(jù)倉(cāng)庫(kù)加速?gòu)腂igData向Cloud-Native+FastData演進(jìn)
大數(shù)據(jù)技術(shù)之所以會(huì)誕生,其原因可以總結(jié)為兩個(gè)方面:
●大數(shù)據(jù)的產(chǎn)生。隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,尤其是以谷歌為代表的互聯(lián)網(wǎng)公司,產(chǎn)生了大量的數(shù)據(jù)。谷歌做搜索推薦引擎,最核心的是不斷的爬取全世界所有的網(wǎng)頁(yè),動(dòng)態(tài)地對(duì)這些網(wǎng)頁(yè)之間的關(guān)聯(lián)關(guān)系進(jìn)行分析、處理。
●獲取、處理、分析數(shù)據(jù)的方式不一樣。比如說(shuō)銀行最簡(jiǎn)單的交易、轉(zhuǎn)賬,對(duì)隔離、一致性、持久性都有非常嚴(yán)格的要求。大數(shù)據(jù)就不一樣,做搜索引擎,少爬一個(gè)網(wǎng)頁(yè),或者計(jì)算的時(shí)候沒(méi)有把這個(gè)網(wǎng)頁(yè)的影響算進(jìn)去,對(duì)最終的搜索結(jié)果會(huì)有一點(diǎn)影響,但不是特別重要。所以,這種應(yīng)用場(chǎng)景和傳統(tǒng)的聯(lián)機(jī)交易關(guān)系型數(shù)據(jù)庫(kù)里面的強(qiáng)要求是完全不同的。
這時(shí)候大數(shù)據(jù)系統(tǒng)就出現(xiàn)了,谷歌發(fā)表了耳熟能詳?shù)姆植际轿募到y(tǒng)、分布式表格存儲(chǔ)、MapReduce三大論文,這奠定了今天大數(shù)據(jù)的整個(gè)技術(shù)生態(tài)圈的基石。從2010年往后,我們又看到另外一個(gè)趨勢(shì),就是云計(jì)算的熱度在這個(gè)時(shí)候逐漸升溫,對(duì)我們的數(shù)據(jù)處理系統(tǒng)產(chǎn)生了一個(gè)非常大的影響。我們看到云原生技術(shù)在數(shù)據(jù)處理系統(tǒng)深入的應(yīng)用,我們看到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)和傳統(tǒng)大數(shù)據(jù)生態(tài)正在快速發(fā)生融合。
每個(gè)人都在講云計(jì)算,如何深入理解云計(jì)算這個(gè)概念呢?今天整個(gè)計(jì)算機(jī)領(lǐng)域的技術(shù)架構(gòu)是基于60年代誕生的馮諾依曼架構(gòu)的,其最核心的是兩個(gè)部分,計(jì)算和存儲(chǔ),計(jì)算和存儲(chǔ)是緊耦合在一起的。從馮諾依曼架構(gòu)一直到云計(jì)算出現(xiàn)之前,所有的計(jì)算體系都是基于這樣的架構(gòu)來(lái)實(shí)現(xiàn)的。比如一臺(tái)服務(wù)器如果CPU資源不夠了,要做高并發(fā)處理,需要再加一臺(tái)服務(wù)器??赡軆?nèi)存原本已經(jīng)夠用了,但是為了擴(kuò)容計(jì)算資源帶來(lái)了一定存儲(chǔ)空間的浪費(fèi)。在對(duì)IT資源做預(yù)算的時(shí)候,就需要按照今年接下來(lái)的業(yè)務(wù)的高峰的峰值評(píng)估系統(tǒng)容量,不然系統(tǒng)無(wú)法支撐業(yè)務(wù),但是這樣預(yù)算成本是浪費(fèi)的。
這時(shí)候云計(jì)算出現(xiàn)了,云計(jì)算的本質(zhì)就是利用分布式技術(shù)將資源高效池化,而對(duì)應(yīng)用做到透明的集中式部署。
把云計(jì)算、數(shù)據(jù)庫(kù)、以及大數(shù)據(jù)發(fā)展結(jié)合起來(lái)看,數(shù)據(jù)系統(tǒng)本質(zhì)上就是對(duì)數(shù)據(jù)從生產(chǎn)、處理、消費(fèi)、存儲(chǔ)的一個(gè)全鏈路的過(guò)程。可以看到業(yè)界發(fā)展的趨勢(shì),資源的池化,以云原生、分布式的技術(shù)為基礎(chǔ),打造下一代的數(shù)據(jù)處理系統(tǒng)。我們之所以能夠支撐雙11,也是因?yàn)槲覀冊(cè)诓粩嗟膶?shí)踐基于這些理念的一些思考。
數(shù)據(jù)庫(kù)挑戰(zhàn)(雙11)
第一張圖是我們歷年雙11的零點(diǎn)交易峰值的曲線(xiàn),最新的2020年雙11的零點(diǎn)的峰值是58萬(wàn)筆/秒。每一筆交易還會(huì)有一個(gè)拆單的動(dòng)作,到數(shù)據(jù)庫(kù)系統(tǒng)就是每秒幾百萬(wàn)TPS。第二張圖是我們系統(tǒng)零點(diǎn)負(fù)載的瞬間變化曲線(xiàn)??梢钥吹皆谝幻腌姇r(shí)間內(nèi)系統(tǒng)負(fù)載瞬間爆發(fā)了145倍。
如果我們不是利用這種云原生的技術(shù),只是簡(jiǎn)單依賴(lài)傳統(tǒng)技術(shù),是無(wú)法滿(mǎn)足這種高并發(fā)、彈性、高可用的要求的。
我們阿里云利用這些技術(shù)在全球的數(shù)據(jù)庫(kù)市場(chǎng)也取得了一些成績(jī)。如今在云數(shù)據(jù)庫(kù)這個(gè)市場(chǎng)營(yíng)收份額是亞太第一,世界第三。剛發(fā)布的2019年到2020年的市場(chǎng)調(diào)查結(jié)果表明,我們已經(jīng)進(jìn)入了領(lǐng)導(dǎo)者象限,這也是中國(guó)的基礎(chǔ)軟件領(lǐng)域第一次進(jìn)入領(lǐng)導(dǎo)者象限。最右邊是市場(chǎng)份額,也是第一次在線(xiàn)下+線(xiàn)上的模式里面超過(guò)了甲骨文。
全球云數(shù)據(jù)庫(kù)市場(chǎng)格局
看一下業(yè)界的趨勢(shì)。甲骨文是大家都知道傳統(tǒng)的數(shù)據(jù)庫(kù)廠(chǎng)商,它把傳統(tǒng)的基于IOE架構(gòu)快速向云化發(fā)展,也是基于云原生的技術(shù)。Snowflake這家軟件公司近幾年發(fā)展迅猛,本質(zhì)上也是做了資源池化、存儲(chǔ)池化、存儲(chǔ)計(jì)算分離。它把一些傳統(tǒng)的數(shù)據(jù)庫(kù)能力和傳統(tǒng)大數(shù)據(jù)的能力融合在一起,而底下資源池化。此外,還支持多云部署。這是Snowflake成功的幾個(gè)關(guān)鍵的因素。
數(shù)據(jù)庫(kù)發(fā)展趨勢(shì)(云原生企業(yè)級(jí)一體化、數(shù)據(jù)庫(kù)大數(shù)據(jù)一體化)
從架構(gòu)的角度來(lái)講,數(shù)據(jù)庫(kù)系統(tǒng)有哪些變化?最左邊就是傳統(tǒng)的馮諾依曼架構(gòu)。最右邊是分布式架構(gòu)。中間就是我們講的云原生的架構(gòu),背后大量的利用了分布式技術(shù)。這種資源池化帶來(lái)的彈性、高可用的能力是顯而易見(jiàn)的。
數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)演進(jìn)
這是今天三種不同的架構(gòu),我們認(rèn)為有這么幾個(gè)趨勢(shì):
●大數(shù)據(jù)和數(shù)據(jù)庫(kù)一體化的趨勢(shì)
●云原生和分布式技術(shù)結(jié)合的趨勢(shì)
●智能化的趨勢(shì)
●軟硬件一體化,比如利用高速網(wǎng)絡(luò)等來(lái)提升數(shù)據(jù)處理系統(tǒng)的性能和效率
●安全可信,如何確保數(shù)據(jù)不可更改
這是下一代數(shù)據(jù)庫(kù)的幾個(gè)核心技術(shù):
下一代企業(yè)級(jí)數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)
核心技術(shù)及產(chǎn)品
企業(yè)級(jí)云原生分布式數(shù)據(jù)庫(kù)
下面結(jié)合我們的核心技術(shù)把這些背景、趨勢(shì)實(shí)例化。
云原生關(guān)系型數(shù)據(jù)庫(kù)PolarDB
第一個(gè)是云原生關(guān)系型數(shù)據(jù)庫(kù)PolarDB。
云原生關(guān)系型數(shù)據(jù)庫(kù)PolarDB
每個(gè)數(shù)據(jù)塊也是分成三個(gè)物理節(jié)點(diǎn),雖然下面大量使用分布式技術(shù),但是不用關(guān)心分布式帶來(lái)的挑戰(zhàn),比如說(shuō)分庫(kù)分表、分布式的查詢(xún),因?yàn)閷?duì)應(yīng)用是完全透明的,讀寫(xiě)的是一份數(shù)據(jù),做到了集中式部署。另外存儲(chǔ)計(jì)算分離,在分鐘級(jí)別部署一個(gè)新的計(jì)算節(jié)點(diǎn),或者擴(kuò)容存儲(chǔ)節(jié)點(diǎn)。同時(shí)在性能上做了大量的優(yōu)化,非常好的兼容了生態(tài),比如說(shuō)100%兼容PG,高度兼容甲骨文。性?xún)r(jià)比在商業(yè)數(shù)據(jù)庫(kù)中有非常好的競(jìng)爭(zhēng)優(yōu)勢(shì),在實(shí)際的客戶(hù)案例里面,利用PolarDB甲骨文兼容版替換掉現(xiàn)有的甲骨文,在性能一樣的前提下,整體成本不到原來(lái)的三分之一。
●兼容生態(tài)
100%兼容MySQL 5.6,5.7 and 8.0
100%兼容PostgreSQL 11
高度兼容Oracle
●存儲(chǔ)計(jì)算分離
5分鐘添加只讀實(shí)例
15分鐘Scale Up
●智能負(fù)載均衡
透明讀寫(xiě)分離
自定義應(yīng)用訪(fǎng)問(wèn)路徑
●分布式共享存儲(chǔ)
100TB存儲(chǔ)空間
分鐘備份數(shù)TB數(shù)據(jù)
●用戶(hù)態(tài)I/O stack+NVM+RDMA
最高6倍社區(qū)開(kāi)源MySQL性能,100萬(wàn)QPS/秒
●基于Redo log復(fù)制
備庫(kù)/只讀實(shí)例數(shù)據(jù)同步毫秒級(jí)延時(shí)
云原生分布式數(shù)據(jù)庫(kù)PolarDB-X
除了云原生的架構(gòu),也有分布式架構(gòu)版的PolarDB。在每個(gè)分區(qū)里面做這種三節(jié)點(diǎn)的架構(gòu),同時(shí)三節(jié)點(diǎn)是利用協(xié)議去做數(shù)據(jù)的一致性保障,而且三節(jié)點(diǎn)可以做到同城跨AZ部署。
云原生分布式數(shù)據(jù)庫(kù)PolarDB-X
新一代云原生分布式數(shù)據(jù)庫(kù)系統(tǒng)
下一代的系統(tǒng)是將云原生技術(shù)和分布式技術(shù)合二為一,上面是分布式,而下面是云原生的方式實(shí)現(xiàn),帶來(lái)的好處就是每個(gè)分區(qū)享受到了云原生帶來(lái)彈性、高可用的能力,同時(shí)上面有分布式帶來(lái)的水平拓展的能力,解決高并發(fā)可能帶來(lái)的瓶頸問(wèn)題。
新一代云原生分布式數(shù)據(jù)庫(kù)系統(tǒng)
云原生數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)湖
再看看數(shù)據(jù)庫(kù)領(lǐng)域發(fā)生的一些其他的變化,比如說(shuō)數(shù)據(jù)倉(cāng)庫(kù)。
一體化設(shè)計(jì)成為下一代數(shù)據(jù)分析系統(tǒng)的核心理念
云原生數(shù)據(jù)倉(cāng)庫(kù)
云原生的數(shù)據(jù)倉(cāng)庫(kù)本質(zhì)上也是云原生的架構(gòu),存儲(chǔ)池化、計(jì)算池化、存儲(chǔ)計(jì)算分離。同時(shí)實(shí)現(xiàn)海量存儲(chǔ)彈性,輕量化部署。就像現(xiàn)實(shí)生活中的倉(cāng)庫(kù),所有物品都要分門(mén)別類(lèi)放好,所以數(shù)據(jù)倉(cāng)庫(kù)是比較適合已經(jīng)范式化的數(shù)據(jù)格式、業(yè)務(wù)類(lèi)型比較固定的場(chǎng)景,性?xún)r(jià)比非常高。這是我們?cè)谠圃鷶?shù)倉(cāng)方面做得一些工作,我們也利用這套架構(gòu)支持了淘寶天貓對(duì)實(shí)時(shí)交易數(shù)據(jù)進(jìn)行在線(xiàn)交互式分析和計(jì)算的需求。
云原生數(shù)據(jù)倉(cāng)庫(kù)
AnalyticDB云原生數(shù)據(jù)倉(cāng)庫(kù)
數(shù)據(jù)湖
另外一個(gè)概念叫數(shù)據(jù)湖。湖面很平,湖底其實(shí)是參差不齊的,所以不同于數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)湖的存儲(chǔ)是多源異構(gòu)的,只需要有一個(gè)統(tǒng)一的界面對(duì)這個(gè)數(shù)據(jù)進(jìn)行分析、處理。我們打造一個(gè)云原生的數(shù)據(jù)湖解決方案,基于對(duì)象存儲(chǔ),對(duì)多源異構(gòu)的數(shù)據(jù)存儲(chǔ)進(jìn)行統(tǒng)一的分析,非常低成本的實(shí)現(xiàn)彈性高可用的能力,并且滿(mǎn)足安全性的要求。我們集團(tuán)各個(gè)業(yè)務(wù)之間,可能需要訪(fǎng)問(wèn)一份數(shù)據(jù),但是計(jì)算要進(jìn)行隔離。云上很多用戶(hù)有這種需求,可以用云原生的數(shù)據(jù)湖的產(chǎn)品和解決方案去滿(mǎn)足這種彈性、高可用的場(chǎng)景。
DLA云原生數(shù)據(jù)湖分析(Serverless,統(tǒng)一元數(shù)據(jù)+開(kāi)放存儲(chǔ)與分析計(jì)算)
智能化、安全可信與生態(tài)工具
智能化
我們?cè)诠芸剡@一層去實(shí)現(xiàn)異常檢測(cè)、安全診斷,我們通過(guò)K8S這套編排技術(shù),把多源異構(gòu)的資源管理起來(lái),打造智能化的運(yùn)維管控平臺(tái)。
云原生+智能化數(shù)據(jù)庫(kù)管控平臺(tái)
安全可信
我們做了全加密的數(shù)據(jù)庫(kù),數(shù)據(jù)進(jìn)入內(nèi)核以后不需要解密。今天的安全體系里面還有一個(gè)關(guān)鍵的薄弱點(diǎn),就是數(shù)據(jù)進(jìn)入大數(shù)據(jù)系統(tǒng)進(jìn)行計(jì)算分析的時(shí)候必須進(jìn)行解密。我們利用安全硬件技術(shù)做了全加密的流程和保護(hù),實(shí)現(xiàn)了不解密也能進(jìn)行數(shù)據(jù)加工和處理。
全加密云數(shù)據(jù)庫(kù)——ApsaraDB RDS Encrypted
數(shù)據(jù)庫(kù)生態(tài)工具
從傳輸、備份到管理,傳輸采用DTS,做端到端數(shù)據(jù)的同步,用DBS數(shù)據(jù)備份做多云多端的邏輯備份、物理備份,DMS做企業(yè)級(jí)的開(kāi)發(fā)建模的流程。這一整套搭建起了阿里巴巴在雙11的核心鏈路,比如各個(gè)單元之間的數(shù)據(jù)同步,核心數(shù)據(jù)的容災(zāi)備份,用DBS做數(shù)據(jù)的開(kāi)發(fā)、管理,通過(guò)DMS做保障,這就是雙11背后的數(shù)據(jù)庫(kù)系統(tǒng)技術(shù)實(shí)踐。
多云多端+混合云:數(shù)據(jù)高速公路,遷移、管理、備份、建倉(cāng)
最佳實(shí)踐
今年的疫情期間看到各行各業(yè)的一個(gè)非常大的變化,傳統(tǒng)的離線(xiàn)業(yè)務(wù)和在線(xiàn)業(yè)務(wù)有一個(gè)快速融合,線(xiàn)上線(xiàn)下的邊界越來(lái)越模糊。這帶來(lái)的挑戰(zhàn)是,業(yè)務(wù)的波峰波谷的變化越來(lái)越劇烈。這是疫情帶來(lái)必然的變化。數(shù)字化的轉(zhuǎn)型是一個(gè)必然存在的事實(shí)。這種背景下,我們?cè)圃鷶?shù)據(jù)庫(kù)、云原生數(shù)據(jù)倉(cāng),支持了不僅是雙11,還有疫情期間各行各業(yè)尤其是在線(xiàn)教育、游戲等這些傳統(tǒng)的線(xiàn)上線(xiàn)下邊界變得越來(lái)越模糊的行業(yè)。
阿里云數(shù)據(jù)庫(kù)技術(shù)對(duì)抗新冠疫情