雲原生資料庫成熟度模型分析
如今,很多公司都在利用Kubernetes以及相關技術,將工作負載遷移到雲端。只是,雲遷移會面臨幾個重要挑戰,比如:如何將資料和應用遷移上雲,如何儲存雲上資料,涉及哪些核心技術等等。說白了,雲上的各種問題,都與資料庫息息相關。
事實上,在雲原生概念出現之前,企業一直採用傳統資料庫處理各種資料問題。雲原生概念出現後,企業有了更靈活的選擇,可以透過更現代化的應用程式,讓資料庫應用更具可擴充套件性,更具彈性,以及更能滿足自動化和視覺化需求。
問題是,雲原生資料庫到底是怎樣一種架構?為什麼那麼多企業選擇雲原生路線?本文將推薦幾個雲原生資料庫成熟度模型,企業可以根據雲架構實際情況來評估,看看更適合哪種技術堆疊或者應用模型!
雲應用模式演進
在傳統雲服務模式下,使用者主要API即服務的形式獲得服務,也就是我們常說的基礎架構即服務 (IaaS)、平臺即服務 (PaaS) 和軟體即服務 (SaaS)。
雲原生技術出現後,為使用者帶來了新的體驗,透過類似於PaaS模式的“變體”,即容器即服務 (CaaS) 和功能即服務 (FaaS),企業可以獲得更好的雲上自服務能力,能以最佳方式編排雲上服務,並且可以讓權責分配更明晰。
雲原生全景圖詳解(金色部分由雲廠商負責,藍色部分由使用者自己負責)
上述圖片有很多重要資訊點,我們可以逐一拆解:
IaaS:所謂IaaS,是指雲提供商只需配置企業所需要的伺服器,使用者仍然需要配置帳戶並安裝應用程式所需的所有元件,包括中介軟體。
PaaS:使用PaaS以後,使用者的工作量少了很多,無須經過冗繁的配置,就可以將所有元件部署在現有的應用程式中,包括伺服器也可以作為平臺以雲的形式提供服務,使用者可以在上面開發、執行和管理自己的應用程式。
SaaS:SaaS,也被稱為是託管服務,使用者可以透過 API 使用軟體,這些 API 可以提供更強大、更高階別以及更抽象的業務功能。
CaaS:CaaS 是提供一種上傳、執行、擴充套件以及管理應用程式容器的方法,和PaaS一樣,都能幫助開發人員部署並執行應用程式。只是,PaaS會隱藏一部分容器化任務,有點獨斷專行。CaaS能更輕鬆地運用多雲託管功能,包括可以利用Kubernetes進行容器管理。
FaaS:FaaS,有時也稱為“無伺服器”,是更抽象的 PaaS 版本,使用者只需要關注業務程式碼邏輯,無需關注伺服器資源。可以說,FaaS提供了一個更加細分和抽象的服務化能力。
值得一提的是,上述這些服務模式都可以組合使用,比如:企業可以將自己的業務系統部署在基於IaaS的虛擬機器 (VM) 上,也可以在基於CaaS 的容器中部署多個微服務,或者採用完全來自第三方服務的SaaS,再或者透過FaaS來協調各種服務之間的工作流以及資料流。
雲原生資料庫成熟度模型
不同雲應用模式,為雲原生架構的誕生奠定了堅實的技術基礎。回到前文提到的雲原生資料庫以及資料服務成熟度模型問題,我們首先要弄清楚雲原生的概念。
根據Bill Wilder 在其 2012 年的著作《雲架構模式》中提出的雲原生定義:“是指任何可以充分利用雲平臺的應用程式。”
根據這個定義來理解,IaaS 和 PaaS 可以被稱為“雲就緒”,因為企業可以按原樣安裝希望臨時的任何應用程式,而無需進行調整。然而,這是以真正的雲原生解決方案所提供的靈活性為代價的。只有 CaaS、SaaS 和 FaaS 才能真正被認為是為雲架構而生。因此,雲原生可以認為是,代表了雲原生架構的不同成熟度級別:
成熟度模型
在此模型中,我們將 CaaS 表示為“Kubernetes 原生”,SaaS 表示為“託管服務”,FaaS 表示為“無伺服器”。如果我們將“雲就緒”成熟度級別表示為 IaaS/PaaS 作為基線,我們得到一個看起來像這樣的成熟度模型:
雲原生成熟度級別
讓我們從最不成熟到最成熟,逐一分析這些成熟度級別。
成熟度級別0:雲資料就緒
第一個成熟度級別很容易達到。這是經典的提升和轉移正規化。任何可以部署在 IaaS 上的系統都將被視為雲就緒。我們經常觀察到的一種模式是,部署在 VM 中的單體應用程式,其中包含嵌入式資料庫。只要企業將應用程式打包在一個 VM(或多個VM)中並連線任何所需的網路,就可以在雲中執行它。這是一個完全有效的部署選項,通常是組織採用雲的重要過渡階段,但不能完全被視為雲原生。
成熟度級別1:基於Kubernetes 構建的執行模式
此級別通常代表企業已將單體應用程式分解為更小的微服務狀態,這些微服務可以部署在容器中並獨立擴充套件。這是非常重要的一步,但是像 Docker 這樣的容器技術本身並不能提供管理應用程式生命週期和確保高可用性和可擴充套件性所需的一切。
Docker 執行時和 Docker-compose 非常適合開發和測試環境;但對於生產使用來說,企業需要監控正在發生的事情並採取行動來維持服務水平,所以以Kubernetes等為代表的容器編排正是為此目的而建立。
眾所周知,Kubernetes發展迅猛,2020 年雲原生計算基金會 (CNCF) 的一項調查發現,92% 的受訪公司在生產中執行容器,其中83%的企業已經部署並使用了 Kubernetes。
有意思的是, Kubernetes 在部署微服務和應用程式方面很受歡迎,但是我們卻很少看到資料庫部署在上面,這其中的原因是什麼?
雖然 ,Kubernetes 最初是為無狀態工作負載而設計的,但透過最新的改進,也可以引入有狀態應用,比如透過Cassandra,就可以有效地將資料庫部署到容器中。
但事實上,我們經常看到容器化應用程式將儲存職責委託給在 Kubernetes 之外執行的元件架構,比如透過虛擬機器或裸機上執行自我管理的資料庫。這種方式導致網路和安全的複雜性增加,以及監控等功能的重複。這種轉移儲存能力的方式,將雲原生資料庫推向下一個成熟度模型。
成熟度級別 2:託管資料服務
僅在 Kubernetes 等容器化環境中部署資料庫,本身並不足以提供雲原生資料庫所需要的特性,包括可擴充套件性、彈性、視覺化和自動化等。
要達到託管服務或“資料庫即服務”(DBaaS) 的級別,企業需要額外的操作邏輯,例如:維護操作,包括擴充套件/縮減、備份/恢復、軟體更新和故障排除,監控和可觀察性,包括指標、日誌記錄和跟蹤等。
例如,cass-operator 是 Cassandra 的開源 Kubernetes 運算子,用於處理上述維護任務。K8ssandra 是另一個基於cass-operator 的開源專案,為在 Kubernetes 上部署和執行 Cassandra 提供完整的生態系統。這種方法使企業可以靈活地建立自己定製化的管理應用,該部署近似於第三方 DBaaS 的功能。
只不過,企業需要的是“資料即服務”,而不僅僅是“資料庫即服務”。所以,要想在資料平臺中提供成熟的 SaaS 解決方案,企業不僅僅需要支援資料庫查詢語言(如 CQL 或 SQL)的端點,開發人員還渴望使用熟悉的語言和框架輕鬆訪問的API。這就是另一個開源專案啟動背後的最根本原因——一個名為 Stargate 的資料閘道器。
Stargate 提供了一個 RESTful API,支援開發人員習慣的熟悉的 HTTP 訪問模式,同時也是一個新的 GraphQL API,對於Web 和移動應用程式以及無模式的面向文件的 API 特別有用。
成熟度級別3 :資料的無伺服器模式
即使企業擁有自己的管理平臺,或從第三方購買了託管服務,仍然需要考慮成本問題。
這兩種情況的典型問題是:如何根據工作負載的實際需求調整部署的資源量,以最大程度地減少浪費?即使在像 Cassandra 這樣的高度可擴充套件的彈性系統中,也很難獨立擴充套件計算和儲存資源。如果企業能夠僅擴充套件所需要的資料庫部分怎麼辦?
FaaS 或無伺服器方式迎來用武之地。透過將 Cassandra 等雲原生資料庫分解為更小的功能,可以更有效地解耦和管理計算和儲存利用率。不管是介面、路由器,還是讀取和寫入功能,都成為可擴充套件的獨立功能。該模式的最大優勢是,可以極大地提高資源的利用率,並支援多租戶。
無伺服器的架構模式,改變了很多人的觀點,不再考慮類似於“我的資料庫可以在 Kubernetes 中執行嗎?”這樣的話題,而是轉移到“我如何才能為我的特定資料庫工作負載獲得成本最低的解決方案?”
小結
隨著雲端計算實踐的不斷成熟,我們將雲原生架構理念和設計方法應用於我們堆疊的各個層面,是雲原生資料庫落地的最有效路徑。筆者認為,基於容器化 (CaaS)、託管服務 (SaaS) 和無伺服器 (FaaS) 等最佳實踐的雲原生資料庫成熟度模型代表了雲中資料有效利用的最佳方法論。而K8ssandra 和 Stargate 等開源專案的誕生,則為雲原生資料庫獲得更高發展提供了絕佳機會,使得更多企業可以在資料架構成熟度方面取得長足猛進的發展。
最後,我們期待更多企業加入到雲原生資料庫這個大的技術生態中來,對成熟度模型和相關問題發表更多觀點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2896686/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《資料安全能力成熟度模型》實踐指南11:資料分析安全模型
- DCMM(資料管理能力成熟度模型)模型
- 到底什麼是雲原生資料庫?資料庫
- 資料庫的未來:雲原生+分散式資料庫分散式
- 騰訊雲TDSQL-C雲原生資料庫技術SQL資料庫
- 平安雲原生資料庫開發與實踐資料庫
- 阿里雲資料庫李飛飛:雲端計算推動資料庫向雲原生快速演進阿里資料庫
- 資料庫效能需求分析及評估模型資料庫模型
- ICT技術成熟度曲線安全觀察:零信任、資料安全、雲原生安全的興起
- SphereEx 正式步入雲原生時代:Database Mesh 2.0 實現雲原生資料庫理念革新Database資料庫
- 雲原生時代,資料庫該何去何從?資料庫
- 聊聊雲原生資料庫的一致性資料庫
- 《資料安全能力成熟度模型》實踐指南10:資料脫敏模型
- 天翼雲釋出雲原生關係型資料庫TeleDB for openGauss資料庫
- Mysql資料庫-資料模型MySql資料庫模型
- 《資料安全能力成熟度模型》實踐指南02:資料採集管理模型
- 《資料安全能力成熟度模型》實踐指南04:資料質量管理模型
- 《資料安全能力成熟度模型》實踐指南05:資料傳輸加密模型加密
- 雲原生時代資料庫運維體系演進資料庫運維
- 資料庫應用需要什麼樣的雲原生能力資料庫
- 雲原生資料庫夯實企業數字新基建資料庫
- 阿里雲原生資料庫POLARDB壓力測試報告阿里資料庫測試報告
- 中國信通院:資料資產運營能力成熟度模型模型
- 《資料安全能力成熟度模型》實踐指南01:資料分級分類模型
- 基於雲原生的大資料實時分析方案實踐大資料
- 分析型資料庫:分散式分析型資料庫資料庫分散式
- GaussDB(for MySQL)雲原生資料庫技術演進和挑戰MySql資料庫
- 華為:2022年雲原生資料庫白皮書(附下載)資料庫
- 華為雲GaussDB NoSQL雲原生多模資料庫的超融合實踐SQL資料庫
- 阿里雲「雲原生記憶體資料庫Tair」「資料庫備份DBS」雙雙斬獲“2022技術卓越獎”阿里記憶體資料庫AI
- 雲原生資料庫TDSQL-C和傳統主備方式資料庫有什麼區別?資料庫SQL
- 啟用資料價值 阿里雲重磅釋出雲原生資料庫備份DBS新版本阿里資料庫
- 《資料安全能力成熟度模型》實踐指南09:資料備份和恢復模型
- .NET雲原生應用實踐(三):連線到PostgreSQL資料庫SQL資料庫
- 如何用好雲原生資料湖?
- 資料庫圈周盤點:騰訊Q2財報首次披露資料庫收入增幅;《雲原生資料庫白皮書》釋出資料庫
- 一整個分析模型庫,大資料分析工具都這麼玩了嗎?模型大資料
- 【大資料雲原生系列】大資料系統雲原生漸進式演進最佳實踐大資料