到底什么是云原生數據庫?
阿里云認為,云原生已經過了IT基礎設施及應用場景云化的1.0時代,不再只強調單品能力是否容器化,或者是否通過微服務、Serverless等新技術構建;現在,云原生數據庫已進入2.0時代,更強調一個能集成多種引擎的全面數據庫解決方案。說白了,有了云原生,底層的每個分區都可以充分享受云帶來的彈性和高可用能力。但同時,云原生并非孤立存在,而是與分布式、在離線一體化、庫倉一體、多模數據處理等核心技術相互融合,讓數據在不同應用場景和系統之間自由流轉,進而實現一站式全鏈路數據管理與服務。
騰訊云則認為,云原生數據庫強調的是極致的性能、彈性和無限擴展能力。比如:用戶不僅可以在云上搭建自己的數據庫,還能在全面云化的基礎設施環境中,按照使用情況進行更細粒度的計費。
而華為云,更看重上層的應用和架構是否基于云的方式進行改造。換言之,除了資源池化,你的業務是否“生于云、長于云”,決定了你是否能充分享受到云原生數據庫帶來的極致體驗。
如此一來,云原生數據庫好像各有千秋,但對于用戶而言,依然是一知半解。其實,要想真正了解云原生數據庫的概念和內涵,要從用戶的應用場景變化開始梳理。
充分利用云上能力
過去,軟件開發和應用是單體式,要想擁有更強大性能,只有一個選擇,那就是在底層購買更大內核的服務器。性能雖然上去了,但價格不菲,很多銀行用戶都知道,大機的價格很貴。
終于有一天,互聯網時代來臨,我們可以以更合理的方式,解決性能和成本的問題,這便是最早期的云服務模式,也就是云數據庫時代。包括現在,很多企業上云的模式,依然是軟件不動,直接把本地架構搬上云,相當于是把硬件資源進行了池化。
實際上,云帶來的核心價值,遠不止于硬件堆砌起來的存儲層面上的共享,而是上層應用上的分布式能力的破解。云,天然是分布式結構,基于云的彈性設計數據庫應用,意味著數據庫的結構不再像從前那種集中式架構,要靠單體計算能力的強勁,來決定最終的性能。
現在,我們可以通過很便宜的硬件,實現更高的性能。比如:銀行業務,很多應用場景都有計算能力要求,而靠硬件堆砌的單體模式,明顯存在瓶頸。再比如:雙十一場景,云計算可以解決大機解決不了的問題,突破了硬件計算能力理論上的桎梏,這些都是云數據庫帶來的改變。云數據庫和云原生數據庫,一脈相承。
那么,云原生帶來的改變是什么?答案是,架構上的根本改變,云原生讓數據庫實現真正意義上的橫向擴展!
算力解耦、數據可以大量解析,包括大數據的蓬勃發展,都是云架構帶來的改變。但如果你只是把數據庫搬到云上,只能算是應用到硬件紅利,業務層面依然受過去瓶頸制約。所以,最佳業務模式是,從業務架構上進行云原生化改造。
適用于對時效性要求較高的業務
問題是,都在談云原生,不同云原生數據庫有哪些區別呢?
放眼望去,擁抱云原生數據庫的路徑有兩個。一類是直接使用公有云廠商提供的產品和服務;另一類是以公有云的架構和做法做自己的私有云。
理論上講,只有公有云才具備云原生數據庫能力,因為云原生是有成本的,只有最大化共享,才能分攤公共成本。尤其是業務規模到達百萬級、千萬級規模的時候,沒有云原生的體系和架構,根本支撐不住。
只是,在數字化轉型背景下,只用一款或者幾款由公有云支撐的云原生數據庫,支撐千行百業的各個細分場景,從哲學角度看,這是理想狀態,根本不可能實現。所以,不同公有云之間出現了技術上的差異,采用不同的產品組合,解決各類場景細分的問題。
另外,對于規模不太大,或者自身業務規模很大、其業屬性不太適用于阿里、騰訊、華為的企業,則在本地盡量以公有云的方式,擁抱云原生數據庫技術路線。
比如:國內某大型銀行科技公司,既搭建了公有云,也有自己的私有云。數據庫服務,目前主要對內提供服務,企業可以在云上直接部署Redis、PostgreSQL等。其中,TiDB的底層,已經實現容器化部署。
相對于本地業務模式,云原生數據庫可以帶來更強大的擴縮容能力。對于大多數金融業務而言,增量相對穩定,比較容易預測云上資源容量。云原生數據庫更偏向于互聯網那種高并發業務場景,對于實效性要求比較高,云原生帶來的好處是,可以把權限交給用戶,自動化程度比較高,用戶可以自己按需選擇,不需要找專業的DBA幫忙。
對于大多數用戶而言,可以把類似于EBS、塊存儲等技術封裝成業務能力,加入企業自己的甬道,這便是云原生數據庫最佳范式。當然,最終結果肯定和公有云的云原生能力沒法比;但這就是企業應用現狀,不同企業對數據合規及應用場景,都有不同需求。