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

以下文章來源於數據庫架構之美 ,作者數據庫架構之美。

原文鏈接:https://mp.weixin.qq.com/s/rVfLesv5gVGGu8EVPMzFMQ


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


商業的成功


近幾年我們發現以亞馬遜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是從最底層的數據庫模型的設計一步一步走過來的,這些技術門檻非常高,這些東西才是數據庫的根基,如果根基都沒了,“雲”只是一團空氣。


想了解更多數據庫的知識與用法,歡迎關注墨天輪“數據庫專欄”(地址:https://www.modb.pro/db)


分享到:


相關文章: