- Kubernetes云原生數據管理
- (美)Jeff Carpenter(杰夫·卡彭特)等
- 906字
- 2024-05-11 18:18:57
基礎設施類型
在過去20年中,根據分布式應用部署方式逐漸將數據基礎設施劃分為兩類,如圖1-1所示。

圖1-1 無狀態服務與有狀態服務的對比
無狀態服務
無狀態服務僅在當前請求的生命周期內存儲信息,如向手機客戶端發送格式化的購物車信息。執行購物車業務邏輯的應用服務器便是一個典型用例。有關購物車內容的信息都保存在這些服務之外,只需在從請求到響應的短時間內在線即可。提供這種服務的數據基礎設施可輕松實現彈性伸縮,按需擴展計算和網絡資源,幾乎不會影響到應用本身。因為關鍵數據沒有存儲在單項服務中,所以幾乎不需要協調就可以快速創建和銷毀各項服務。無狀態服務是分布式系統中的關鍵組成部分。
有狀態服務
有狀態服務需要跨越請求的生命周期存儲信息。這些信息存儲在磁盤和內存中,以便不同請求調用。數據庫或文件系統就是典型用例。為了實現高可用性,通常需要復制信息,這就需要使用數據同步機制保障數據副本的一致性。因此,有狀態服務的彈性伸縮要復雜得多。此外,有狀態服務通常有不同的橫向和縱向伸縮方式,其與無狀態服務的任務操作集也不同。
信息的存儲方式正在轉變,開發系統也朝著能實現數據基礎設施自動化部署的方向轉變。以下是最新進展:
? 虛擬機正逐步取代物理服務器,這是因為虛擬機能夠實現快速部署和運維。
? 虛擬機最終顯著簡化,并專注于容器。
? 容器允許數據基礎設施工程師將應用對操作系統的依賴項打包到單個可執行文件中。
容器的使用無疑提高了應用部署的一致性,使得批量部署和運行數據基礎設施更加容易。面對容器的爆炸式增長,幾乎沒有其他系統能像Kubernetes一樣勝任容器編排任務。而Kubernetes驚人的發展速度更是彰顯了它的實力。Kubernetes官方文檔(見網址列表條目[12])描述如下:
Kubernetes是一個可移植、可擴展的開源平臺,用于管理容器化的工作負載和服務,促進聲明式配置和自動化部署。Kubernetes擁有一個龐大且快速增長的生態系統。Kubernetes有很多可用的服務、支持和工具。
Kubernetes最初是為無狀態工作負載設計的,這是過去它做得卓越的地方。“一個構建平臺的平臺”是Kubernetes在云原生領域贏得的贊譽。然而,完整的云原生解決方案必須將數據包含在內,這一點無可厚非。因此,本書旨在探索如何通過Kubernetes構建云原生數據解決方案。下面讓我們一起了解一下“云原生數據”的定義。