2024 云原生數據庫發展現狀和趨勢
一、云原生數據庫是什么
云計算的出現促進了企業信息技術的進步。云計算供應商把大量的計算、存儲和通信資源匯聚在一個“池”中,允許企業或個人用戶根據需求購買這些資源,從而能快速、低成本地建立信息系統。當系統負載發生變化時,可以根據需要增減計算資源。對于供應商來說,能統一管理所有用戶使用的大量資源,實現規模效應,降低邊際成本。對于云計算用戶來說,獲取資源快捷、便捷,按需使用的成本更低。從全社會的角度看,整體資源的使用效率得到提高,更環保。
數據庫是最常用的基礎軟件之一,它能提供計算和存儲能力。存儲是數據的基本功能,計算能力則體現在數據庫能完成用戶的復雜分析和計算請求,以及進行查詢優化、事務處理、索引維護等內部計算。
單機數據庫部署在普通主機上,其存儲和計算能力受硬件限制,難以擴展。分布式數據庫可以通過增加機器來擴展容量和計算能力,但依然受到機器資源的限制。如果簡單地將它們遷移到云上,將普通主機換成云主機,可能會出現一些問題,如網絡瓶頸、寫放大問題等;并且不能充分發揮云計算的優勢,如資源彈性管理、按需使用,也無法靈活使用各種云存儲產品。
如果分布式數據庫如果未經改造,簡單的遷移到云上;盡管分布式數據庫有很好的擴展性,但不能算是“云原生”。首先,它彈性擴展的單位是“機器”,而不是更細粒度的“計算和存儲資源”。其次,它在設計時并未考慮云平臺的特性,沒有進行相應的優化,以達到最優性能和成本。
“云原生數據庫”的核心是設計一種更符合“資源彈性管理”理念的數據庫架構,充分利用云平臺的池化資源,適應云平臺的基礎設施。并且,經過多次迭代更新,產品已在云上發展成熟,云原生數據庫的技術也普惠到了更多的場景和部署環境,包括私有云場景,為企業提供數據安全可控的解決方案。
二、發展歷史及國內現狀
云數據庫的進化軌跡始于2010年代初,這個時期正值云計算技術的興起,大量企業開始嘗試將傳統數據庫搬遷至云端。近些年來,隨著云基礎設施的迅猛發展,云數據庫也得到了飛速的拓展,并且因其按需擴展和按需付費等卓越特性,受到了中小企業和互聯網客戶的廣泛歡迎。然而,云數據庫并非專為云場景或云環境設計和構建的,它僅僅利用了云的資源。因此,它存在一些固有的問題,如存儲空間浪費、計算資源浪費、恢復時間目標大以及數據延遲、系統性能受限、網絡帶寬消耗大等,這些問題阻礙了業務的進一步發展。
Amazon首先意識到上述問題,推出的云數據庫Aurora就是為云計算時代而專門定制的一款關系型數據庫。從此數據庫又進入了一個嶄新的階段,云原生數據庫。各大公有云廠商基于這一路線緊隨其后,在優先保證上云兼容性的前提下,基于存算分離架構對傳統數據庫進行改造:通過把大量的日志操作放到后臺異步處理,實現存儲獨立擴展,解決了MySQL數據庫單庫的數據量不能太大的痛點。并且云原生數據庫提供了又兼容又能擴展的能力,在存儲層面實現了擴展的同時,又保留了計算層面的不變和兼容,從而基本實現了完全的兼容性。像典型產品就有阿里云的Polardb,百度智能云的GaiaDB和騰訊云的TDSQL-C。可以完美兼容傳統的使用習慣,對交易類場景可以提供很低延遲的寫事務能力。同時讀擴展性與存儲擴展性由于借助了分布式存儲池化能力,也得到了極大增強。
而分布式數據庫為了解決擴展性問題,是另外一種演進路線,則優先將系統的擴展性放在首位,通過規模來解決各類業務對寫擴展能力的要求,像OceanBase和TiDB就是兩個比較典型的產品。它們的典型特征就是將事物系統和鎖系統角色拆分為單獨的模塊負責,計算層通過與這些模塊交互實現了多個節點都可接受寫請求,然后由統一的新事務+鎖中心節點來進行仲裁。這樣對于寫負載本身需要較多計算資源的場景下會有很好的提升,但是由于事務和鎖都需要跨網絡進行交互,所以事務延遲是相對比較高的,在鎖負載較重的負載下會成為一定的瓶頸。
云原生數據庫由國外傳入國內。如今,以阿里云的PolarDB、百度智能云的GaiaDB、騰訊云的TDSQL-C等為首的主要廠商,都在投入大量資源進行研發。短短三年的時間,市場已經形成了相對成熟的云原生數據庫應用模式,并且已經在不同的場景中得到應用。可以看出,雖然國產云原生數據庫的起步相對于國外稍晚,但其在國內的發展速度極快,影響力已經逐漸超過了國外的云原生數據庫。
阿里云在2024年1月17日隆重召開PolarDB開發者大會,分享了阿里云PolarDB未來發展的四大趨勢:深化服務化、多主多寫、容災、全球化等的云原生化、支持標準的API、IAC、CI/CD等工具的平臺化、實現不同數據處理場景的一體化、與AI深度結合的智能化。
百度于2023年12月20日的智算大會上正式發布自研云原生數據庫GaiaDB 4.0,幫助解決企業復雜查詢難題。GaiaDB 4.0增強了并行查詢能力,突破單機計算瓶頸,實現跨機多核并行查詢,在混合負載和實時分析業務場景中性能提升超過10倍。針對不同的工作負載,GaiaDB4.0推出列存索引和列存引擎,提升不同規模數據的查詢速度,其中列存引擎最大可支持PB級數據的復雜分析,并且與事務處理業務嚴格復雜隔離。
總而言之,在互聯網和云計算快速發展的時代背景下,各行各業對于數據庫的需求在不斷增加和變化,隨著這些新的需求越來越廣泛地被提出,用戶意識到采用傳統單一的數據庫來應對各類場景的時代已經過去,各廠商提供云原生數據庫需要從多方位實現資源規格的靈活控制、應用的多模、更優的彈性擴展能力、更好的成本控制方式等。
三、云原生數據庫典型場景和核心優勢
云原生數據庫適用于多種應用場景,包括電商、金融、物流、社交媒體等。在這些場景中,云原生數據庫能夠提供性能強大、高可用性和可擴展性的數據服務,以滿足各種業務需求。
承接高彈性流量
與大多數傳統業務的穩定性和容易預測的資源需求相反,互聯網業務可能會隨時面臨流量激增,這是傳統線下部署方式難以處理的。云原生數據庫憑借其出色的可擴展性,能根據業務負載靈活調整資源,實現實時擴縮容,用戶無需擔憂流量激增導致的存儲資源不足。通過Serverless技術,云原生數據庫可以實現最大程度的彈性擴展并按需付費。
云原生數據庫(阿里云的PolarDB、百度智能云的GaiaDB、騰訊云的TDSQL-C)都支持分鐘級彈性擴容,能迅速應對如雙11等大流量場景,相比傳統本地業務模式,云原生其強大的擴縮容能力更具優勢。
保障高可用性
數據庫采取多種方法確保業務的高可用性。云原生數據庫基于計算存儲分離架構,解決了主備切換的延遲問題,提升了性能并確保了系統和業務的連續性。它不僅具有分布式數據庫的高可用性,還能依賴云基礎設施在單個可用區或整個地域宕機時,及時遷移和自動修復數據。通過自動全量增量備份和快速恢復,以及利用云存儲的高可用性、異地容災和快照能力,實現了更快、更可靠的備份恢復。
特別的,阿里云的PolarDB集群版和百度的GaiaDB,分別通過全球數據庫GDN功能和熱活集群組三副本一致性存儲,進一步增強了跨地域災備和數據可靠性。
滿足高時效性
在當前高并發、多變的業務環境中,對數據庫的時效性要求愈加嚴格。云原生數據庫在運維方面,能在幾分鐘內完成安裝,遠快于傳統數據庫,且其版本升級的時效性也更高。在面對大規模業務負載時,如報表查詢的高峰期,傳統數據庫需要大量硬件資源和預留服務器來保證查詢效率,這不僅成本高,擴容速度也慢。而云原生數據庫能快速擴容,滿足業務高峰需求,有效支持業務快速變化。在性能上,云原生數據庫采用計算存儲分離架構(如發展歷史中介紹),借助日志即數據、算子下推和并行計算技術,充分利用存儲資源的計算能力,有效提升大型表掃描等網絡數據流量大的業務場景的性能。
阿里云PolarDB支持秒級增加、修改和刪除字段,可以大幅提升SaaS海量表維護的效率,大幅降低客戶側運維工作量。百度文庫業務通過使用云原生數據庫解決了傳統數據庫主從延遲高,導致數據同步形式在異常情況下會出現延遲,影響付費及文檔服務體驗的問題。
應對混合型(AP+TP)業務
伴隨企業的發展和業務的復雜化,我們經常看到大量不同類型的數據被存儲在一起。以交互系統和報表系統為例,前者是OLTP(在線事務處理)應用場景,后者則是OLAP(在線分析處理)應用場景。如果這些數據被存儲在同一數據庫中,數據庫就需要在處理事務和分析數據時都表現出高效性。此外,有些用戶可能會將多年的歷史數據存儲在一起,沒有進行冷熱分離。當查詢這些歷史數據時,由于訪問量增大,可能會占用大量的CPU和內存資源,造成系統性能波動,影響在線事務處理業務。
阿里云的PolarDB和騰訊云的TDSQL-C通過支持列存儲和向量化執行引擎,能在OLAP場景下顯著提高查詢性能。
滿足成本的訴求(彈性+智能化)
在傳統數據庫維護中,運行數據庫實例涉及預備硬件和折舊費用,但主機資源常常未被充分利用,造成浪費。如果業務有高低峰,必須始終準備最高資源,使維護成本高昂。相比之下,云原生數據庫降低了初始投入,且在業務增長時能夠彈性擴展,按需使用資源,避免浪費。阿里云和騰訊云的Serverless集群成本可降低80%。在存儲和計算分離架構下,百度網盤遷移至百度云原生數據庫GaiaDB,資源利用率提高50%,大幅降低成本。
另外,數據庫運維和SQL優化等工作需由DBA完成,多數企業DBA資源有限,增加運維成本。云原生數據庫的智能運維結合了AI算力和強大的數據庫管控平臺,具有高度自動化運維能力,易于管理數據庫,緩解DBA壓力,節省企業成本。
四、云原生數據庫技術最新進展和發展趨勢
多級高可用,提供異地災備能力
數據庫作為底層數據存儲環節,其可用性與可靠性直接影響系統整體。而線上情況是復雜多變的,機房里時時刻刻都可能有異常情況發生,小到單路電源故障,大到機房級網絡異常,無時無刻不在給數據造成可用性隱患。
作為商業數據庫,具備多級高可用能力是最核心的必備能力。這樣才能抵御不同級別的異常情況,有力保障客戶業務的平穩運行。阿里云提供全球數據庫網絡服務(Global Database Network,簡稱GDN)是由分布在同一個國家內多個地域的多個PolarDB集群組成的網絡。保障不論業務部署在一個或多個地域,都能通過全球數據庫網絡實現異地容災。當主集群出現地域級別的故障時,您只需要手動將您的業務切換到從集群。百度智能云的GaiaDB支持多副本、跨可用區、跨地域三級別高可用,創新性地實現了多可用區熱活高可用、單個實例支持跨可用區部署。在不增加成本的情況下,每個可用區均可提供在線服務,任何可用區故障都不會打破存儲一致性。
多級HTAP釋放潛能
將內存池技術與HTAP結合是未來數據庫技術的一個重要趨勢。隨著云原生數據庫的普及和發展,OLTP和OLAP能力的融合已經成為了一個基本要求。在此基礎上,結合內存池軟硬協同技術,可以進一步實現網絡吞吐的大幅度縮減,提高數據庫的性能和響應速度。
阿里云的PolarDB目前已經支持內存池技術(內存資源進行統一管理和分配),并且可以有效地提高內存的利用率和系統的整體性能。將內存池技術與HTAP結合,可以利用內存池的高性能和低延遲特性,為HTAP提供更加穩定和高效的支持。
具體來說,通過將內存池技術與HTAP結合,可以實現以下幾個方面的優化:
- 減少網絡通信開銷:通過內存池技術,可以將數據緩存在本地內存中,減少了對遠程存儲的訪問和網絡通信的開銷,從而提高了系統的整體性能和響應速度。
- 提高數據一致性和可靠性:內存池技術可以保證數據的一致性和可靠性,避免了因為網絡延遲或數據同步不及時導致的數據不一致問題。
- 實現資源共享和動態擴展:通過內存池技術,可以實現資源的共享和動態擴展,使得系統可以根據實際需求進行靈活的擴展和收縮,提高了系統的可擴展性和可用性。
而百度智能云的GaiaDB實現了多級HTAP,通過并行查詢,內存索引,列存索引進行優化提升性能,具體如下:
- 并行查詢,傳統MySQL數據庫再單機的并行方面很弱,Gaiadb并行查詢再改善單機查詢性能的同時,突破單機計算瓶頸,實現跨機多核并行查詢,面向混合負載和實時分析業務場景,性能提升十倍以上。
- 隨著數據量越來越大,業務越來越多,列存是比較有效解決復雜查詢和分析的辦法,Gaiadb針對不同的worklaod推出列存索引和列存引擎。兼容地解決了不同規模的數據的查詢加速的訴求。其中列存引擎最大可以支持PB級別的復雜分析,并且和TP的業務是嚴格復雜隔離的。TP和AP的數據是通過zeroETL來實現透明的數據同步。
- 為了進一步突破性能的天花板,Gaiadb在內核數據流上進行深度優化,包括共識協議優化:單跳提交,吞吐提升40%,時延降低30%;鏈路優化:異步批量提交+自適應用戶態TCP,時延降低60%;自適應動態回放存儲多版本,高負載讀IO降低50%;通過這一系列優化讓gaiadb整體性能,成功做到整體性能大幅提升60%。
Serverless已成為趨勢,智能彈性助力降本增效
隨著云計算技術的進步,Serverless數據庫成為發展趨勢。然而,僅提供無服務器計算無法滿足所有用戶需求。未來,Serverless數據庫需具備智能彈性能力。
目前,阿里云和騰訊云已支持Serverless集群,提供降低成本和提高效率的解決方案。未來,需要發展智能彈性能力,以滿足用戶需求,提升系統性能和穩定性。智能彈性指數據庫根據歷史負載數據,自動計算用戶畫像,快速預測未來負載曲線,并預先為彈性伸縮準備資源。這使得數據庫能迅速響應需求變化,避免負載達到資源上限,減少資源浪費。智能彈性是Serverless數據庫未來關鍵能力之一,能幫助數據庫處理大量數據時保持高效性能,確保系統穩定,降低運營成本,提高資源利用率,提升用戶體驗。
AI助力,構建智能化數據庫
自2023年開始的AI時代。底層基礎設施變成了GPU和AI能力。應用也變成了AI原生應用,如海外比較火的Jasper、Midjourney,微軟的Copilot等。在數據庫行業我們看到至少兩個方向,一個是AI4DB,其中包括阿里的DAS、百度的DBSC等,主要是利用AI大模型能力和專家經驗實現數據庫的智能化洞察、評估和優化。有效保證數據庫服務的安全、穩定及高效。這意味著數據庫將能夠自動檢測和診斷問題,進行自我調優和運維,同時保證數據的安全性和可靠性。另外一個方向就是DB4AI,目前主要是向量數據庫。向量數據庫在解決大模型幻覺等方面,有非常不錯的效果,是一個有潛力的細分賽道,頭部公司估值已經達到10億美元。
總的來說,未來的云原生數據庫將繼續與AI內外協作,包括AI幫助云原生數據庫提效以及云元生數據庫和向量能力的結合,向全場景智能數據庫邁進,為各種應用場景提供更加智能、高效和安全的數據管理服務。
云原生數據庫變得更加普惠
云原生數據庫目前正處于發展的攀升階段,云廠商正在不斷提升產品的性價比、性能以及穩定性。對大部分客戶來說,他們更傾向于選擇托管類的云數據庫,主要因為這些數據庫基于成熟的開源數據庫構建,如MySQL、Redis等,這些數據庫既成熟又普惠。企業認為這些完全可以通過技術進行控制,即便考慮到未來可能從云端遷移到自建IDC,業務也不會與云廠商緊緊捆綁。
在選擇云原生數據庫時,企業也需要考慮遷移成本、技術可控性、云廠商的綁定以及總體擁有成本(TCO)等問題。目前,大部分的云原生數據庫仍然依賴于云廠商自身的技術底座與硬件環境。
未來的云原生數據庫應該朝向普惠化發展,一個真正普惠的數據庫需要考慮以下幾個方面:
- 開箱即用,低門檻:企業應能快速部署和使用云原生數據庫,無需面對過高的技術門檻和成本投入。
- 跨平臺部署:考慮到數據遷移成本較高,企業在選擇數據庫時會優先考慮數據庫的部署位置,如云服務商、自建IDC、地域等。
- 兼容性:兼容性對數據庫來說至關重要,尤其在當今信息化時代。為了方便企業集成和使用,普惠的數據庫需要與各類應用和工具兼容。
- 穩定性:穩定性是用戶選擇數據庫的重要因素,這不僅關乎數據庫的可用性,更關乎數據庫的性能表現。
當前,云計算已成為企業數字化轉型的重要基礎設施,公有云成為云計算的主要形式。然而,隨著技術的發展和企業對數據安全、合規的考慮,越來越多的企業選擇自建云底座。K8S技術作為容器編排領域的先鋒,為企業自建云底座提供了強大的技術支撐。
面對未來混合云、邊緣云等多云環境的普及,企業對云服務的需求將更為多元化。普惠的云原生數據庫不應只局限于公有云環境,而應支持多種云服務形態,滿足企業在不同場景下的需求。因此,普惠的云原生數據庫需要不斷拓展應用場景,以更好地滿足企業需求。
總的來說,回顧2023,展望2024,云原生數據庫朝著更高可用,更強處理能力,更智能,更普惠的方向發展。