為什麼說雲資料庫是商業的成功、技術的倒退?

資料和雲發表於2020-01-17

我們在越來越多的會議、媒體、文章、報導上看到一種說法:“未來的資料庫是雲資料庫的時代,雲資料庫廠商終將取代傳統資料庫廠商”。首先我並不否認這種說法,但是雲資料庫是否真的推進了資料庫技術的進步有待商榷。本文我想談談自己的一點看法。


商業的成功


近幾年我們發現以亞馬遜aws、微軟azure、阿里雲polardb等為主導的雲資料庫突然興起,迅速佔領了市場,慢慢蠶食著以db2、oracle為首的傳統資料庫廠商的市場份額,雖然oracle公司也從oracle 12c版本開始朝著雲化的方向發展,但是鑑於oracle架構的複雜性,這條路一直走的比較艱難,成效並不顯著。

 


在2019年的Gartner全球資料庫魔力象限評選中,AWS、微軟、阿里雲、谷歌雲都出現在了這個榜單中,而且微軟雲和亞馬遜azure已經緊逼傳統巨頭oracle,在領導者象限齊頭並進。同時阿里雲已經連續兩年入選資料庫魔力象限,2019年還首次入選挑戰者象限,距離領導者象限只有一步之遙。隨著阿里雲、谷歌等雲廠商強勢上升,IBM、SAP則出現了明顯下滑,IBM從領導者象限滑首次落至遠見者象限。

 

下面這張圖Gartner的報告,顯示了2018年全球資料庫廠商份額對比。我們可以很清晰地看到雲資料庫廠商呈現爆發式的增長,而且上漲勢頭不止。

 

 

Gartner的資料顯示,2018年,資料庫雲服務已經為整個資料庫市場貢獻了104億美元,整個市場是460億美元,這其中不包括託管licence。同時整個資料庫市場的增長接近70%來自於雲資料庫的增長。


技術的倒退



我本身是一個做技術的,不是研究市場的。所以我深知資料庫作為基礎軟體設施上的“明珠”,技術門檻之高常人無法想象。

 

1977年IBM完成system R系統原型設計,後來DB2資料庫於1983年推出,成為關係型資料庫的開拓者;1977年拉里埃裡森創辦oracle公司,同時於1979年推出oracle資料庫;postgresql始於1986年,最初由伯克利的postgres軟體擴充套件而來。還有infomix、mysql、sql server、sybase等資料庫其實都是經過幾十年的漫長髮展。

 

DB2、oracle作為傳統資料庫廠商的代表,經過這麼多年的發展,其實給資料庫領域的研發帶來非常高的門檻,如果從頭開始設計一款資料庫難度非常大,首先從最底層的模組:sql引擎、資料庫物件、儲存引擎、事務管理、緩衝區設計、記憶體設計、鎖管理等等都是難度非常大,而且要把這些模組整合起來成為一個完備的資料庫系統更是難上加難,所以新型廠商如果想從頭做一套新的資料庫幾乎很難實現。

 

那麼這些新型資料庫廠商是如何實現彎道超車的呢?答案其實是:“概念+整合”。

 

“概念”其實就是資料庫“雲”的概念,其實我一直覺得資料庫是一個不適合雲化的東西,雲其實有兩層概念,代表著雲化的兩條路,一是雲廠商根據客戶資源需求提供基礎設施和軟硬體,類似公有云,適合個人客戶或者體量不大的客戶;另外一種是大企業由於資料的重要性需要將雲搬到自己的資料中心,或者自己建雲,這裡的雲可以是實現一套管理平臺,將所有資料庫管理起來,實現資源的自助申請、自動部署、自動交付。

 

“整合”說的是雲廠商並不自己研發底層的資料庫核心,或者研發出一套新的資料庫,而是將現有的開源資料庫進行整合,雲廠商的研發重點在於如何將這些開源資料庫整合起來,實現統一管理,形成自己的一套大的雲資料庫,在使用者角度來看,使用者不知道或者不關心底層是什麼資料庫,使用者只需要給雲廠商提出cpu,記憶體,容量等需求,雲廠商那邊實現了IaaS,PaaS,自動的資料庫例項建立,交付給使用者,資料庫維護、資料備份等維護類工作由廠商完成。所以說雲廠商其實是看到了市場的機會,個人客戶和小公司其實佔據絕大多數,他們是沒有能力或者必要去購買高額的licence,反而選擇雲廠商是一個很好的選擇,同時還節省了很大部分維護費用。

 

那麼我為什麼說資料庫雲是技術的倒退呢。拋開市場不說,單看技術,資料庫雲其實就是實現了一套資料庫管理平臺,不管是公有云還是私有云,最終技術的研發都還是在圍繞著如何更高效地交付、管理使用者的資料庫。其實底層真正能稱為資料庫的那部分核心是沒有改動的或者改動很小的。

 

現在的雲廠商底層資料庫幾乎都是mysql或者postgresql,將它們進行整合,提供相容mysql或者postgresql的服務。當然不否認很多廠商做了很多技術創新,比如說儲存計算分離,計算層的mysql或者pg可以無限擴充套件,儲存層共享,同時使用rdma進行計算層和儲存層的互聯,實現高速訪問,還有一些針對mysql做了最佳化,比如基於redo的物理複製,使用全域性記憶體取代log shipping提供一致性讀等。這些功能雖然也觸碰到了資料庫的核心,但是也只是很小的一部分,而且說到底只是為了使雲上更高效而做的創新,還是向市場看齊的。

 

我們想象一下,如果這些雲廠商未來真的取代了db2、oracle這類公司,到底是好事還是壞事呢?Db2、oracle是從最底層的資料庫模型的設計一步一步走過來的,這些技術門檻非常高,這些東西才是資料庫的根基,如果根基都沒了,“雲”只是一團空氣。


想了解更多資料庫的知識與用法,歡迎關注墨天輪 “資料庫專欄”(地址:)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2673766/,如需轉載,請註明出處,否則將追究法律責任。

相關文章