企業考慮雲原生分散式資料庫的三個原因

danny_2018發表於2022-07-08

資料庫未來的發展方向已經漸漸明朗,作為學習者,當下重要的是要沉下來,打好基礎,根據實際需求,有的放矢地嘗試,切忌盲目跟風。本文分享了雲原生、雲原生資料庫、雲原生分散式資料庫的概念和特徵,以及雲原生分散式資料庫的優勢。對此您怎麼看?也歡迎大家進行探討。

1. 雲原生

“雲原生”這一概念的提出者Matt Stine於2017年將雲原生歸納為模組化、可觀察、可部署、可測試、可替換、可處理6特質。而云原生領域影響力最大最有話語權的組織CNCF,他們給出的定義則是這樣的:

雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和執行可彈性擴充套件的應用。雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和宣告式API。

這些技術能夠構建容錯性好、易於管理和便於觀察的松耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆地對系統作出頻繁和可預測的重大變更。

雲原生中的“雲”表示存在於雲中,而不是傳統的部署於本地。比如雲盤中的檔案就在雲中,而不是儲存在使用者電腦的硬碟中。“原生”則代表著應用從設計環節便考慮到雲環境的因素,為雲而設計,在雲上執行。

一句話概括,“雲原生”就是為“雲”而設計,且適合上“雲”。更有人形容,雲原生是生在雲上,長在雲上,也應用於雲上。

2. 雲原生資料庫

雲原生資料庫,是一種透過雲平臺進行構建、部署和分發的服務。這種雲原生屬性是它相比於其他型別資料庫最大的特點。作為一種雲平臺,雲原生資料庫以PaaS(平臺即服務, Platform-as-a-Service)的形式進行分發,經常被稱作DBaaS(資料庫即服務, DataBase-as-a-Service)。使用者可以將該平臺用於多種目的,例如儲存,管理和提取資料。

雲原生資料庫通常透過在雲基礎設施之上安裝資料庫軟體來實現,這種方式使得雲原生資料庫具備了傳統資料庫所不具備的直接訪問性和執行時可伸縮性。

首先是普遍可訪問和高可用性。因為雲原生資料庫是完全存在於雲上的,所以他可以隨時隨地的從多前端訪問,提供雲服務的計算節點。因其叢集部署在雲上,所以單點失敗對服務的影響特別小。而且當需要升級或更換服務的時候,可以對節點進行不中斷服務的逐漸升級。

其次是高擴充套件性與可遷移性。雲原生資料庫會與底層的雲端計算基礎設施分離,所以能夠靈活及時的調動資源進行擴容和縮容,以從容應對流量激增可能帶來的壓力,以及流量低谷期因資源過剩造成的浪費。也正是因為能夠靈活擴縮容,雲原生資料庫也具備很強的可遷移性,我們甚至可以粗暴的理解為在新的位置擴容100%又在舊的位置縮容全部的50%。

此外,基於高擴充套件性、高可用性以及可遷移性等特徵,雲原生資料庫還具備可監控性和安全性的特徵。

一方面黑箱狀態下無法保證及時處理擴容、節點故障等需求和問題;另一方面全盤部署在雲上且各服務之間相互獨立,可以對應用或服務提供更多層的安全防護和實現許多新的容錯服務。

最後是演進式設計與快速迭代。雲原生資料庫中的各項服務之間是相互獨立的,個別服務的更新並不會對其他部分產生不利影響,而不是一旦出了問題就只能全場熄火。此外,雲原生的研發測試和運維工具是高度自動化的,這使得應用的更新會更加快速頻繁。

將網路資源和雲更好的融合在一起,處處獨立而又自然聯絡著,才能更充分的發揮資料庫上雲的優勢,得到更高的效率。

雲原生資料庫有以下幾個優點:

(1) 易處置性簡單來講, 易處置性是指資料庫在無需事先通知的情況下,即時處理崩潰或啟動程式的能力。儘管現在有先進的技術,但是像磁碟故障、網路隔離故障,以及虛擬機器異常等,仍然不可避免。

(2) 對於傳統資料庫,這些故障尤其有害,因為用單個機器執行整個資料庫,即便一個很小的問題都可能影響所有功能。而云原生資料庫的設計具有顯著的易處置性,即允許虛擬機器在即時通知下立即重啟或重新排程。實際上,易處置性已從單個虛擬機器擴充套件到了整個資料中心。隨著我們的環境持續朝著更加穩定的方向發展,雲原生資料庫將發展到對此類故障無感知的狀態。

(3) 增強的安全性DBaaS執行在受高度監控和安全的環境裡,受到反惡意軟體、反病毒軟體和防火牆的保護。除了全天候的監控和定期的軟體升級以外,雲環境還提供了額外的安全性。相反,傳統資料庫容易遭受資料丟失和被不受限制的訪問。基於服務提供商透過即時快照副本提供的資料能力,使用者可以達成“RPO=0,RTO<60秒”的目標。

(4) 可擴充套件效能夠在執行時進行按需擴充套件的能力是任何企業成長的先決條件。因為這種能力讓企業可以專注於追求商業目標,而不用擔心儲存空間大小的限制。

(5) 傳統資料庫將所有檔案和資源都儲存在同一主機中,而云原生資料庫則不同,它不僅允許你以不同的方式儲存,而且不受儲存問題的影響。

(6) 更好的可訪問性傳統資料庫最重要的限制之一,是它只能透過連線資料庫系統本身進行訪問。而云原生資料庫提供對資料庫全天候的訪問,以便你隨時進行任何修改,而你只需要一個可以訪問internet的計算機。這樣一來,就消除了可能發生的潛在的延遲,同時也為多個開發人員之間的協作開闢了途徑。

(7) 顯著的成本節約建立一個資料中心是一項獨立而完備的工程,需要大量的硬體投資,還需要能可靠管理和維護資料中心的訓練有素的運維人員。此外,持續的運維會給你的財務帶來相當大的壓力。而使用雲原生的DBaaS平臺,你可以以較低的前期成本,獲得一個可擴充套件的資料庫,這可以讓你騰出雙手,實現更最佳化的資源分配。

雲最開始受益的就是應用端,傳統架構下曾經以“天”為單位的擴容,雲端能實現“秒級”擴容,降低軟硬體成本的同時,提高了系統的快速擴容能力,以應對像“雙十一”這種可預見且短時間的請求量高峰。但是有些雲端應用還是訪問傳統的資料庫架構,資料庫層沒得到雲端的實惠。現在這種雲原生資料庫,就解決了這問題,計算和儲存分離,讓資料庫資源能從雲端得到靈活擴容、故障快速恢復、更高的可靠性、資料快速遷移等,更快滿足業務的各種需求。

3. 雲原生分散式資料庫

分散式資料庫是由多個相互連線的資料庫組成的集合,這些資料庫組合在一起形成一個面向使用者的單個資料庫。實際上,它們分散式在各個資料中心,透過中央伺服器進行通訊。

正如微軟的著名工程師布倫丹•伯恩斯(Brendan Burns)在其著作《設計分散式系統》(Designing Distributed Systems)中所說:“這些系統越來越重要,這意味著必須基於冗餘、容錯和高可用來構建這些線上系統。這些要求的融合導致需要構建的分散式系統數量增加了一個數量級。”

雲原生資料庫,是透過雲平臺進行構建、部署和交付的資料庫服務,通常以 DBaaS(Database-as-a-Service)的形態,將資料庫底層細節隱藏起來,提供給使用者一個能夠彈性伸縮,高可用、高可靠、可以隨時隨地訪問的資料庫服務,它代表了資料庫的發展趨勢,雲原生資料庫的優勢,加上分散式資料庫的效率,代表了未來理想的解決方案。

以下是你可能考慮採用分散式資料庫系統的一些原因:

(1) 水平可伸縮性。在選擇正確的資料儲存方式時,可伸縮性是一個重要的考慮因素。這就是雲原生分散式資料庫是理想解決方案的原因,因為它允許企業輕鬆擴充套件。分散式資料庫的關鍵特性之一是跨不同資料來源的計算過程彼此獨立,這使得按需新增節點和調整功能變得非常容易。選擇以如此大規模提高計算能力是一個強大的增長手段,它使現代企業能夠以前所未有的方式在全球發展。

(2) 沒有單點故障。衡量應用程式效能的唯一標準是它為終端使用者提供的使用者體驗水平。對於傳統資料庫,由於高度的相互依賴,中央伺服器的單個問題會損害工作負載的可用性。如果一臺(唯一的)伺服器出現故障,則可能導致整個應用程式崩潰,而這將導致使用者體驗指標急劇下降。鑑於資料庫系統的複雜性,而伺服器崩潰是不可避免的,這進一步破壞了傳統資料儲存的方法。相反,由於數百臺計算機伺服器相互配合工作,因此分散式資料庫可以確保即使多個節點發生故障,應用程式仍能繼續正常執行。即使部分功能受到影響,整體功能卻能正常執行。

(3) 增強的效能潛力。應用程式每秒都要面對數百個針對資料庫的請求,這需要強大的處理能力。對於傳統的方式,可能會導致效能問題、使用者介面延遲等,從而影響整體的使用者體驗。比如,異常多的請求甚至可能導致應用程式崩潰。而在雲原生的分散式資料庫中,工作負載和訪問請求被分散到多個伺服器和計算機系統上。這意味著每個任務都由特定系統處理,而不是透過單個系統處理。因此,資料庫持續無縫地工作,並提高了工作效率。分散式資料庫中的每個請求和工作負載都是並行完成的,然後將其執行結果返回給中央伺服器,以便在資料庫的使用者端實時更新。

國產資料庫正在雲的道路上探索,資料庫未來的發展方向,已經漸漸明朗,但是,作為學習者,還是要沉下來,打好基礎,根據實際需求,有的放矢地嘗試,切忌盲目跟風。

來自 “ twt社群 ”, 原文作者:twt社群;原文連結:https://mp.weixin.qq.com/s/K1ZkKxd4lj_aRPgx9iRyMg,如有侵權,請聯絡管理員刪除。

相關文章