我之前也說過,Serverless代表了最高層次的雲端運算抽象形式,以為Serverless最大程度讓開發者不用關註基礎設施的細節,從而可以最大程度關註於套用層的業務邏輯,所以,要說2021年最讓我眼前一亮的數據庫發展,當然也是在Serverless方面,所以,在2021年亞馬遜雲科技re:Invent全球大會上,Aurora Serverless v2的釋出是最讓我興奮的。
Aurora是亞馬遜雲科技提供的關系型數據庫引擎,我敢說,Aurora Serverless v2誕生之後,關系型數據庫將會煥發第N春!
雖然近幾年NoSQL也是風生水起,但是關系型數據庫依然是主流,這是因為關系型數據庫足夠強大,能夠支持不同靈活度的數據儲存設計,能夠支持幾乎所有的套用場景,就如同這次re:Invent全球大會重申的一樣: Aurora是亞馬遜雲科技歷史上增長最快的服務 (The fastest growing service in the history of Amazon),沒有之一。
![](https://img.jasve.com/2025-1/a1ec8aa8060f41fd8fa1c477f4cfcf3d.webp)
傳統套用上雲需要用Aurora,還有新的套用也會按照關系型數據庫來構築儲存模型,Aurora成為增長最快的亞馬遜雲科技服務,可以說預料之中。我想,也正是因為Aurora增長這麽猛,所以2017年亞馬遜雲科技推出了Aurora Serverless,提供了Serverless版的Aurora。
今年Aurora Serverless出了v2,所以2017年那版自然就加了字尾v1,實話實說,雖然2017年的Aurora Serverless v1也很讓人興奮,但是那時候我們就感覺那版限制太多(這個後面細說),今年的Aurora Serverless v2雖然還只是preview版,但是真的是一個大飛躍,這才是——真·Serverless!
在Aurora Serverless出現之前,Aurora只支持偏好設定(Provision)方式分配資源,也就是需要透過手工方式擴充套件分配至數據庫例項的計算資源,包括記憶體和 CPU和儲存,對於需求量可預期而且穩定的套用,這當然挺好,但是如果需求量不可預期,或者起伏很大呢?這就顯得不夠了,想想看,你的套用平時只需要50G,但是尖峰時刻需要200G,為了應對尖峰你還是要偏好設定200G的資源,這就花了冤枉錢,當然,你可以在尖峰時刻的前後手工調整偏好設定資源,這且不說很麻煩,而且沒辦法應對突如其來的尖峰,如果尖峰時刻不可預期,你還是只能回退到多偏好設定資源的方法。
Auora Serverless v1的出現就是為了應對這種困境,提出真正的『需要多少分配多少』,由亞馬遜雲科技平台根據實際需求量自動動態分配資源。在Aurora Serverless中,用ACU(Aurora Compute Unit)代表分配資源的最小單位,一個ACU相當於2G記憶體加上配套的CPU和網絡資源,Aurora Serverless自動根據需求量自動增加和減少ACU數量,遇到尖峰時刻自動擴容,流量歸零的時候一分錢不花,這種服務當然很棒!
但是,Aurora Serverless v1畢竟還是v1,有一些方面還是做得不夠極致,有這些方面:
然而,上面收的這些缺點,隨著Aurora Serverless v2的推出被一掃而光了!
我先要說清楚,我並不是批評v1,我只是指出v1的不足,我相信一個產品的前進演化都是逐步完善的過程,沒有v1的基礎,Aurora Serverless v2也不會這麽閃亮,我們來看看在re:Invent 2021全球大會上宣布的Aurora Serverless v2的亮點吧:
現在你理解了,為什麽我說Aurora Serverless v2才是『真·Serverless』了吧。
當然,我們也可以說Aurora Serverless v2這些新功能『本來就是Serverless該具備的』,只是晚來了幾年而已,最最最讓我感到興奮的突破,是—— Serverless和偏好設定(Provision)兩種模式可以存在以同一個Aurora集群中 !
你知道這意味著什麽嗎?
意味著,我可以在一個Aurora集群中偏好設定資源用於寫操作,然後用Serverless來支持讀操作,對於新聞媒體服務,就是寫操作(編輯創作)穩定而且可預期,而讀操作(讀者訂閱閱讀)可能隨新聞熱點劇烈波動,這種Aurora Serverless和Provision的組合就十分合適。
同樣,對於IoT這種寫操作可能劇烈波動,而讀操作相對穩定的系統,就可以反過來在一個集群中讓寫操作走Serverless,而讀操作走Provision。
Serverless和Provision雙劍合璧,得心應手!
在re:Invent的Deep dive on Amazon Aurora演講中,還提到一個有趣的事情,在Aurora Serverless v2中,為了控制Buffer Pool的大小,結合了LFU(Least Frequently Used)和LRU(Least Recently Used)演算法,才實作了縮容的效率。
![](https://img.jasve.com/2025-1/298e0ff798b47294de95c8648754f8f3.webp)
演講者Richard Waymire也說,這樣一項技術,源自於Aurora Serverless,但是也會套用到Aurora Provision中去。
這是一個很好的Serverless反哺其他雲端運算服務的例子,我對於Serverless一直很有信心,因為這是大勢所趨。
在亞馬遜雲科技re:Invent全球大會上,還有很多這樣讓人興奮和有趣的知識,大家要是感興趣也不妨去了解下。
![](https://img.jasve.com/2025-1/b70079f12300496fb5546df5379f0e3c.webp)