如何看待Serverless數(shù)據(jù)庫(kù)之爭(zhēng)?
這幾年,Serverless數(shù)據(jù)庫(kù)大火,被稱(chēng)為是下一代數(shù)據(jù)庫(kù)的最新演進(jìn)方向。問(wèn)題是,什么是Serverless數(shù)據(jù)庫(kù)?Serverless數(shù)據(jù)庫(kù)給用戶(hù)帶來(lái)了哪些價(jià)值?當(dāng)前,各家都在推的Serverless數(shù)據(jù)庫(kù),有哪些區(qū)同點(diǎn)?本文將逐一進(jìn)行分析!

Serverless數(shù)據(jù)庫(kù)發(fā)展之初
簡(jiǎn)單理解,Serverless數(shù)據(jù)庫(kù)是云原生數(shù)據(jù)庫(kù)發(fā)展的必然結(jié)果!
在云原生早期階段,也就是云數(shù)據(jù)庫(kù)階段,只是簡(jiǎn)單地把數(shù)據(jù)庫(kù)從本地遷移到云端,運(yùn)行在托管的云基礎(chǔ)設(shè)上,在架構(gòu)上并沒(méi)有做太多改變,導(dǎo)致數(shù)據(jù)庫(kù)的彈性以及資源的利用率受到限制。
之后,第一代云原生數(shù)據(jù)庫(kù)誕生,一些云計(jì)算巨頭企業(yè)開(kāi)始對(duì)數(shù)據(jù)庫(kù)架構(gòu)進(jìn)行改造,實(shí)現(xiàn)了計(jì)算和存儲(chǔ)的分離,這時(shí)才擁有了真正的云架構(gòu),但CPU和內(nèi)存依然是強(qiáng)綁定狀態(tài),無(wú)法實(shí)現(xiàn)內(nèi)存、計(jì)算和存儲(chǔ)的解耦,導(dǎo)致企業(yè)無(wú)法按需滿(mǎn)足計(jì)算需求。比如:計(jì)算和緩存的比例,必須是1核CPU對(duì)應(yīng)2GB內(nèi)存。但對(duì)于分析型內(nèi)存數(shù)據(jù)庫(kù)場(chǎng)景來(lái)說(shuō),他需要大量?jī)?nèi)存,用不上那么多的CPU;而對(duì)于事務(wù)型用戶(hù)來(lái)說(shuō),他的CPU需求往往要高于內(nèi)存。同時(shí),還涉及波峰波谷期的資源動(dòng)態(tài)調(diào)整問(wèn)題。
所以,第一代云原生數(shù)據(jù)庫(kù)雖然改變了數(shù)據(jù)庫(kù)的架構(gòu)問(wèn)題,但并沒(méi)有實(shí)現(xiàn)計(jì)算和存儲(chǔ)資源的解耦,導(dǎo)致云原生的價(jià)格高于自建數(shù)據(jù)庫(kù),自然也無(wú)法快速占領(lǐng)市場(chǎng)。
大概在2015年左右,Serverless誕生,云原生數(shù)據(jù)庫(kù)才真正成為“當(dāng)紅炸子雞”。Serverless技術(shù)可以讓企業(yè)只關(guān)心業(yè)務(wù)代碼的功能實(shí)現(xiàn),脫離服務(wù)器管理的復(fù)雜環(huán)境。當(dāng)流量洪峰來(lái)臨時(shí),可以自動(dòng)調(diào)配服務(wù)器資源支持;流量進(jìn)入低谷時(shí),則可以自動(dòng)釋放掉資源,節(jié)約服務(wù)器成本。
按需付費(fèi),動(dòng)態(tài)調(diào)整資源
值得一提的是,Serverless無(wú)服務(wù)器計(jì)算仍然需要服務(wù)器,只不過(guò)是由云服務(wù)商動(dòng)態(tài)地管理計(jì)算資源的分布。云計(jì)算供應(yīng)商將計(jì)算資源變成一個(gè)池子,用戶(hù)無(wú)需創(chuàng)建實(shí)例,就能快速完成部署。
具體到數(shù)據(jù)庫(kù)的層面,用戶(hù)只要使用了基于Serverless特征的數(shù)據(jù)庫(kù),就可以基于函數(shù)運(yùn)行所消耗的內(nèi)存和執(zhí)行時(shí)間,按使用量計(jì)費(fèi),極大地降低了數(shù)據(jù)庫(kù)的使用成本。
另外,Serverless數(shù)據(jù)庫(kù)除了省錢(qián),還更具彈性擴(kuò)展能力,可以讓計(jì)算資源的配置更高效和合理。用戶(hù)選用了Serverless數(shù)據(jù)庫(kù),通常可以被理解為是按需付費(fèi)的一種模式,不需要搭建開(kāi)發(fā)環(huán)境,更不需要配備專(zhuān)業(yè)的基礎(chǔ)設(shè)施團(tuán)隊(duì)去做運(yùn)維。
當(dāng)用戶(hù)發(fā)起無(wú)服務(wù)器服務(wù)請(qǐng)求時(shí),云提供商會(huì)分配一個(gè)實(shí)例(虛擬機(jī))或 pod(基于一組邏輯的容器,通常由 Kubernetes 管理)來(lái)處理來(lái)自其資源池的動(dòng)態(tài)。當(dāng)無(wú)服務(wù)器代碼退出時(shí),分配的資源將返回到池中。通常情況下,用戶(hù)根據(jù) CPU 容量、RAM 分配和時(shí)間為使用的資源付費(fèi)。
不同產(chǎn)品之爭(zhēng)
最早的無(wú)服務(wù)器計(jì)算服務(wù)是亞馬遜云科技的 AWS Lambda,是功能即服務(wù)或 FaaS 的典型應(yīng)用,之后Microsoft Azure 、 Google Cloud 以及國(guó)內(nèi)的阿里云、騰訊云、華為云都進(jìn)行了與 FaaS 相關(guān)的產(chǎn)品跟進(jìn)。所以,在Serverless數(shù)據(jù)庫(kù)領(lǐng)域的探索,亞馬遜云科技也走在行業(yè)前列,產(chǎn)品類(lèi)型也更為豐富。
秉持專(zhuān)庫(kù)專(zhuān)用理念,亞馬遜云科技推出了符合不同數(shù)據(jù)類(lèi)型需求的數(shù)據(jù)庫(kù)應(yīng)用。目前,亞馬遜云科技已發(fā)布的產(chǎn)品包括:Amazon Aurora Serverless關(guān)系型數(shù)據(jù)庫(kù),Amazon DynamoDB鍵/值數(shù)據(jù)庫(kù),Amazon Timestream時(shí)序數(shù)據(jù)庫(kù),Amazon Keyspaces寬列數(shù)據(jù)庫(kù),Amazon QLDB分類(lèi)賬數(shù)據(jù)庫(kù)等,都屬于Serverless數(shù)據(jù)庫(kù)產(chǎn)品矩陣。也就是說(shuō),不管是鍵值型數(shù)據(jù)、時(shí)序型數(shù)據(jù),還是文檔類(lèi)數(shù)據(jù)的存儲(chǔ),都可以通過(guò)Serverless的形式對(duì)外開(kāi)放,客戶(hù)無(wú)需管理或配置服務(wù)器,就可以按量進(jìn)行縮放,真正為價(jià)值付費(fèi)。
不久前,亞馬遜云科技還發(fā)布了新一代Serverless數(shù)據(jù)庫(kù)版本——Amazon Aurora Serverless V2,相比于2018年發(fā)布的Amazon Aurora Serverless,新版產(chǎn)品能夠?qū)崿F(xiàn)瞬間擴(kuò)展,真正將擴(kuò)展能力發(fā)揮到極致。
有意思的是,國(guó)內(nèi)率先推出Serverless數(shù)據(jù)庫(kù)的是騰訊云。2020年4月,騰訊云發(fā)布首個(gè)Serverless數(shù)據(jù)庫(kù)新品——PostgreSQL for Serverless,該數(shù)據(jù)庫(kù)能夠最快1秒完成部署,成本降低70%。用戶(hù)在購(gòu)買(mǎi)之后只需要通過(guò)騰訊云相關(guān)組件一鍵創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,最快1秒鐘就可以完成部署。另外,PostgreSQL for Serverless在可用性和安全性等方面具有突出優(yōu)勢(shì),支持“一主一備”,當(dāng)主實(shí)例出現(xiàn)意外不可用時(shí),能自動(dòng)啟動(dòng)備份實(shí)例,業(yè)務(wù)連接也將同步轉(zhuǎn)移至備用實(shí)例,有效避免了各種風(fēng)險(xiǎn)。
2021年,阿里云也推出了Serverless數(shù)據(jù)庫(kù),那就是PolarDB Serverless,最大創(chuàng)新之處在于:在業(yè)內(nèi)首次實(shí)現(xiàn)了內(nèi)存與計(jì)算/存儲(chǔ)的解耦,內(nèi)存進(jìn)一步池化,形成三層池化,使得彈性能力呈指數(shù)級(jí)上升。最大的賣(mài)點(diǎn)是,基于內(nèi)存池化,大幅度降低了成本,更貼合用戶(hù)的各種應(yīng)用場(chǎng)景。
阿里云給出的官方資料是,PolarDB Serverless構(gòu)建了一個(gè)全新的數(shù)據(jù)庫(kù)形態(tài),即DCaaDB(Datacenter as a Database),也就是整個(gè)IDC變成了一個(gè)多租戶(hù)的大數(shù)據(jù)庫(kù),其全部的CPU,內(nèi)存,存儲(chǔ)構(gòu)成三個(gè)獨(dú)立的資源池。任何一個(gè)用戶(hù)(租戶(hù))都可能任意的彈性擴(kuò)展任何一種資源到任何一個(gè)規(guī)格,用戶(hù)為其SQL動(dòng)態(tài)消耗的CPU、內(nèi)存和存儲(chǔ)買(mǎi)單,不需要預(yù)置任何的規(guī)格。
所以,對(duì)比來(lái)看,Serverless數(shù)據(jù)庫(kù)的功能都差不多,最終目標(biāo)都是為了降低用戶(hù)使用數(shù)據(jù)庫(kù)的成本。只不過(guò),不同產(chǎn)品部署環(huán)境不同,產(chǎn)品的成熟度也不一樣。















 
 
 






 
 
 
 