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