前言
最近,我看完騰訊雲社群釋出的紀錄片《中國資料庫前世今生》,其中有段話讓我忍俊不禁。紀錄片提到,雲資料庫剛剛興起時,最大的挑戰並不是來自競爭對手,而是來自那些選擇在雲伺服器上自建資料庫的使用者。
關於這部紀錄片,我有許多深刻的感想。從國產資料庫的探索歷程,到我個人在資料庫領域的經歷,再到如今雲原生資料庫的先進技術,我感觸頗深。如果你對這一話題也感興趣,歡迎閱讀我的其他文章,它們涵蓋了更多相關的探討和見解。
關於國產資料庫的發展趨勢的探討:https://www.cnblogs.com/guoxiaoyu/p/18295131
個人與資料庫相識、相知的經歷:https://www.cnblogs.com/guoxiaoyu/p/18338820
觀儲存歷史,論資料未來:https://www.cnblogs.com/guoxiaoyu/p/18352499
接著這個話題,雖然當時我也覺得這說法有些滑稽,但在我深入研究了雲資料庫與自建解決方案的區別後,才明白這種看法的背景。由於當時雲資料庫尚未普及,很多人誤以為雲資料庫不過是將開源的MySQL或其他資料庫搭建在雲伺服器上,然後還要為此額外付費。於是,他們會想,既然如此,為什麼不直接在雲上租用伺服器自己維護資料庫呢?
我們可以深入探討一下自建資料庫與雲資料庫的優劣之分。傳統自建資料庫模式要求企業自行搭建硬體設施並維護軟體系統,隨著業務的擴充套件,這種模式逐漸暴露出成本高昂、擴充套件性不足和維護難度大的問題。
相比之下,雲資料庫的出現為企業提供了一種更為靈活、高效且成本可控的解決方案。雲資料庫不僅簡化了資料管理過程,還透過自動化和智慧化手段,提升了資料處理的便捷性和效率。因此,雲資料庫在滿足企業不斷增長的資料需求方面,顯然展現了更大的優勢。
根據Gartner報告的分析,雲資料庫市場正處於上升階段。2023年,全球資料庫市場規模預計將突破1000億美元,而云資料庫的市場份額有望達到55%。報告還指出,2022年AWS的資料庫管理系統(DBMS)的收入已經超越了Oracle等傳統資料庫廠商,顯示出雲資料庫的強勁增長勢頭。
我認為,雲資料庫的發展正經歷兩個重要階段:第一階段是從傳統資料庫向雲資料庫的遷移;第二階段則是從雲資料庫向雲原生資料庫的進化。目前,分散式雲原生資料庫正成為市場的主流趨勢,標誌著雲資料庫技術的不斷成熟和進步。
傳統自建
自從資料庫技術的流行以來,網際網路行業也經歷了飛速的發展。資料的快速儲存和處理能力極大地推動了企業和業務的成長。在那個時期,企業為了滿足不斷增長的業務需求,不得不自行購買伺服器和儲存裝置,建設機房,並且組建專業的開發、網路和資料庫運維團隊。這種自建模式不僅要求企業承擔高昂的硬體投資和人力資源成本,還面臨著招聘週期長、技術更新迅速等一系列挑戰。
此外,自建資料庫的運維風險也不容忽視。諸如意外斷電、硬體故障,甚至是人為操作失誤,都有可能導致服務中斷,進而影響業務的正常執行。這些問題使得傳統的自建資料庫模式逐漸顯露出其侷限性,為雲資料庫的崛起和普及鋪平了道路。
在這種情況下,小規模企業可能能夠應對自建資料庫的挑戰。然而,一旦企業的產品流量顯著增長,就會面臨機房資源不足的問題,以及如何實施異地容災的挑戰。由於所有的開發和運維人員通常集中在一個地方辦公,企業無法簡單地在其他地區租賃新的機房來滿足業務的擴充套件需求。這樣一來,企業就需要尋找解決方案,以應對快速增長帶來的各種基礎設施問題。於是,我們見證了所謂的“偽雲”現象的出現。
雲伺服器
我之所以提到雲伺服器而非雲資料庫,是因為根據上文提到的客戶痛點,我們可以發現,雲伺服器和雲資料庫這兩種服務的起源分別是在2000至2010年代初。當時,企業的業務增長速度還沒有如今這麼快,因此,即便使用者瞭解雲資料庫的存在,他們也常常將其視為雲服務商在雲伺服器上為企業搭建的開源資料庫產品,並以此進行包裝和銷售。這種情況下,雲資料庫常被視作雲伺服器的一種附加功能,而非獨立的、具備完整能力的解決方案。
在這個時期,使用者的痛點主要在於他們可以自行搭建資料庫。使用者可以選擇直接購買一臺伺服器並在上面安裝資料庫軟體,如 MySQL 等。因此,那時許多雲服務商的客戶傾向於選擇自建方案,即在雲伺服器上自行搭建資料庫。這種方式不僅允許使用者根據自身需求選擇不同的配置和機房地點,還能在一定程度上解決大部分問題,例如機房的位置、意外斷電和硬體故障等。對於這些使用者而言,雲伺服器提供的靈活配置選項和可控的環境設定,能夠有效應對他們的主要需求,因此其他問題往往顯得無關緊要。
雲資料庫
所有產品的需求都需參考其時代背景。當進入到2010至2020年代時,網際網路發展迅猛,這段時間被許多程式設計師視為十年紅利期。在這一時期,隨著網際網路產品的突飛猛進,已搭建好的資料庫面臨著自動擴容和縮容的需求。因為誰也無法預見哪個網際網路產品會突然爆紅,一旦某個產品流量激增,傳統資料庫叢集可能難以應對如此龐大的業務量。為了避免因網站運維停機而損失客戶流量,雲資料庫的自動擴充套件能力成為了關鍵解決方案,從而成為了市場上備受青睞的選擇。這一時期,雲資料庫因其靈活性和擴充套件性,在應對快速變化的業務需求上表現出色。
過去,資料形式和應用場景相對單一,例如傳統資料庫主要應用於金融、運營商、政務等傳統行業領域。然而,隨著網際網路、移動網際網路及產業網際網路的迅猛發展,各行業正在加速推進電子化和資訊化的程序。這種加速使得應用服務形式變得多樣化,從而導致行業的資料形式和應用場景也日益豐富。這種多樣化的趨勢對底層資料庫的能力提出了更高的要求和更多的挑戰,因為新的應用場景不僅需要處理更復雜的資料型別,還要求資料庫具備更強的擴充套件性、靈活性和高效的效能。
雲資料庫的天花板由排程決定
過去,我們通常認為資料庫的效能瓶頸主要集中在最佳化器的能力上。在那個時代,程式設計師的面試中幾乎都會涉及SQL調優,畢竟最佳化器的功能主要限於簡單的操作,比如調整欄位順序,無法真正深度最佳化使用者的SQL查詢。因此,儘管最佳化器能在一定程度上提升效能,但對於複雜的查詢或大規模的資料處理,其效果往往有限,無法全面滿足高效能需求。
今天,對於雲資料庫而言,更為關鍵的是資料庫的綜合排程能力,這不僅僅包括計算層的排程和資料層面的排程,還涵蓋了資源層面的排程。這意味著,雲資料庫需要能夠有效地管理和最佳化計算資源的分配,以應對動態變化的工作負載;同時,必須在資料儲存和訪問層面上進行高效的排程,以確保資料的快速處理和準確訪問;此外,還要在資源層面上進行合理的排程,以確保資源的有效利用和成本控制。
資料的智慧排程在雲資料庫中至關重要,以騰訊雲資料庫為例,其儲存與計算支援以下五層排程能力:
- 計算型別:包括線上事務處理(OLTP)、線上分析處理(OLAP)以及流式計算,以適應不同的業務需求和負載型別。
- 庫表排程:基於資料的親和性進行庫表排程,以最佳化資料儲存和訪問效率。
- 儲存型別:支援行儲存、列儲存、記憶體表和日誌等多種儲存方式,以適應不同的資料處理需求。
- 資料冷熱:對冷資料、溫資料和熱資料進行差異化處理,以提高儲存和訪問的靈活性。
- 容災排程:根據容災需求進行跨中心和跨城市的排程,以保障資料的可靠性和業務的連續性。
在實際應用中,我們面臨著各種場景,如線上交易、AP處理、流式計算等,這些都需要雲資料庫技術進行有效的整合,以在效能和成本之間實現最佳平衡。因此,智慧排程不僅僅是對技術能力的考驗,更是實現高效資料處理和資源最佳化的關鍵。
智慧運維
最後需要強調的是,單純最佳化資料庫自身的功能和效能並不足以滿足全面的業務需求,還必須推動業務流程的最佳化改造,從而形成資料庫應用的良性迴圈。騰訊雲資料庫透過智慧運維平臺,利用全鏈路分析技術,為每條SQL語句附加業務標籤,從而實現對基礎業務的提升和業務研發的精準最佳化。
這種方法不僅使資料庫能夠更準確地識別和處理實際業務場景中的問題,還能夠推動業務過程的不斷改進和最佳化。
運維工作對於許多人員來說往往是一場挑戰,因為其涉及的任務繁多且複雜,常常令人生畏。然而,如果能夠提供一個直觀、視覺化的介面,將大大簡化運維管理的難度。
一個全面的視覺化介面可以清晰地展示系統的各項指標和效能資料,包括實時監控、告警管理、資源使用情況、效能瓶頸分析等。透過圖形化的儀表盤和互動式圖表,運維人員能夠更快速地識別系統的健康狀態、潛在問題和趨勢變化,從而提高故障排除的效率,減少人為錯誤的發生。同時,整合的分析工具可以幫助運維人員深入瞭解系統的執行情況,制定更具針對性的最佳化策略。
遷移實踐
以騰訊云為例,目前,國內兩家主要的國有大行已經成功地基於TDSQL進行銀行核心系統的分散式改造,將原本依賴於國外IBM DB2等資料庫的核心繫統遷移至TDSQL的國產分散式架構。這一舉措標誌著國產雲資料庫在金融行業中的重要突破,顯示出國產資料庫在全球市場中不斷增強的競爭力和可信賴性。
此外,TDSQL 還進行了開源,並向開放原子開源基金會捐贈了 OpenTenBase。這一舉措旨在推動國產資料庫技術的普及與發展,鼓勵更多的開發者參與到國產資料庫技術的創新和生態建設中來。透過開源共創的模式,TDSQL 希望與上下游產業鏈以及廣大開發者共同努力,構建一個繁榮的資料庫技術生態系統。
雲原生資料庫
進入20年代,雲原生技術逐漸成為行業發展的主流趨勢。雲原生資料庫,作為專為雲環境設計和最佳化的資料庫系統,透過深度融合雲原生技術的優勢,展現出顯著的靈活性、可擴充套件性、彈性和自動化程度。這類資料庫系統能夠充分利用雲端計算的動態資源分配和按需擴充套件能力,從而應對日益增長的資料處理需求,並實現高效、可靠的資料管理。我們這裡仍然以騰訊雲TDSQL為例
他所支援的是針對企業需求的高度彈性和靈活性,因為在實際應用中,伺服器的負載常常會出現高峰和低谷。騰訊雲 TDSQL 在設計時充分考慮了這種波動性,透過卓越的彈性和可擴充套件性,確保系統能夠根據實時的負載情況自動調整資源配置。這種能力使得企業能夠在高峰期獲得足夠的資源支援,而在低谷期則可以減少資源的使用,從而最大限度地最佳化資源利用效率,降低運營成本。
為了更好地理解 TDSQL 的架構及其彈性特性,可以參考騰訊云云原生資料庫的架構圖:
為什麼雲原生資料庫優於雲資料庫
仍然以騰訊云為例,雲原生資料庫 TDSQL-C MySQL 版在多個方面優於傳統的雲資料庫 MySQL。我們來對比一下。
特性/能力 | 雲資料庫 MySQL 劣勢 | TDSQL-C MySQL 版優勢 |
---|---|---|
資料儲存上限 | 受單物理機限制 | 分散式儲存,單例項可達400TB |
升級和擴充套件 | 規格升級、增加只讀例項耗時較長 | 計算節點無狀態,秒級升配、切換、增加只讀節點 |
資料一致性 | 做到資料強一致性成本高 | 資料塊級別的三副本強一致 |
資料同步 | 基於 binlog 的資料同步,主備延遲問題 | 主從基於 redo 同步,從庫延遲降到 ms 級別 |
寫效能 | 全日誌及資料頁更新導致寫效能瓶頸 | 只寫 redo,輕量級寫入,更高寫入效能(140%) |
磁碟擴容 | - | 磁碟擴容業務無感知、業務無影響 |
備份/回檔速率 | 回檔慢,資料恢復時間較長 | 每秒 GB 的備份/回檔速率,解決備份慢回檔慢問題 |
計算資源 | - | 具備 Serverless 能力 |
雲原生資料庫代表了資料庫技術的未來趨勢,它專為雲端計算環境設計,具備了傳統資料庫所不具備的特性。這些資料庫充分利用了雲平臺的彈性、可擴充套件性和自動化運維能力,能夠快速適應業務需求的變化,實現資源的最優分配。
隨著企業數字化轉型的加速,雲原生資料庫的這些優勢變得尤為重要,它們支援了微服務架構、容器化部署和DevOps實踐,使得應用開發和運維更加高效和敏捷。此外,雲原生資料庫的高可用性和災難恢復能力,確保了企業資料的安全性和業務的連續性。因此,雲原生資料庫不僅能夠滿足當前的技術需求,也為未來的技術發展奠定了基礎,成為推動企業創新和增長的關鍵力量。
總結
在資料技術不斷演進的背景下,雲資料庫的崛起和雲原生資料庫的普及標誌著資料庫技術的顯著變革。從最初的自建資料庫模式到如今的雲原生資料庫,企業在資料管理上的選擇變得更加豐富和靈活。雲資料庫不僅僅是對傳統資料庫技術的一個遷移,更是對其進行了一次全面的升級和最佳化。
回顧過去,傳統自建資料庫模式雖然為企業提供了極大的靈活性和控制權,但其高昂的硬體投資、複雜的維護工作和擴充套件困難,使得許多企業不得不面對諸多挑戰。特別是在面對業務快速增長和資料處理需求劇增的情況下,傳統模式顯得捉襟見肘。雲資料庫的出現恰逢其時,以其優越的自動化管理、彈性擴充套件和成本效益,為企業提供了一種更為高效的解決方案。
隨著雲技術的進一步發展,雲原生資料庫作為雲端計算環境下的新一代資料庫系統,展現了更為卓越的效能和適應能力。它們不僅在資源管理和排程上展現了極高的智慧化水平,還在資料處理的靈活性和擴充套件性方面遠超傳統資料庫。以騰訊雲 TDSQL 為例,其在彈性擴充套件、資料一致性和效能最佳化等方面的優勢,使得企業在處理大規模資料時能夠遊刃有餘,極大地提升了業務的持續性和穩定性。
面對日益複雜的業務需求和技術挑戰,雲原生資料庫的優勢愈發突出。它們不僅能夠有效應對現代資料處理的高負載和多樣化需求,還為企業數字化轉型提供了強有力的支援。從業務敏捷性到運營效率,從資料安全到成本控制,雲原生資料庫在各個方面都表現出色。
總結來看,資料技術的發展從未停止腳步,而云資料庫及雲原生資料庫的出現無疑為企業的資料管理和業務增長提供了新的動力。未來,隨著技術的進一步進步和應用場景的不斷擴充,雲原生資料庫將繼續發揮其重要作用,推動資料管理技術向更加智慧、靈活和高效的方向發展。企業在這一變革過程中,需要緊跟技術趨勢,靈活調整戰略,以確保在數字化時代中保持競爭力和創新力。
我是努力的小雨,一名 Java 服務端碼農,潛心研究著 AI 技術的奧秘。我熱愛技術交流與分享,對開源社群充滿熱情。同時也是掘金優秀作者、騰訊雲創作之星、阿里雲專家博主、華為云云享專家等多重身份。
💡 我將不吝分享我在技術道路上的個人探索與經驗,希望能為你的學習與成長帶來一些啟發與幫助。
🌟 歡迎關注努力的小雨!🌟