現代PostgreSQL部署:三種你應該了解的云原生方法
在當今的云原生環境中,在 Kubernetes 上部署 PostgreSQL 是顯而易見的選擇。
譯自Modern PostgreSQL Deployment: 3 Cloud Native Approaches You Should Know,作者 Sylvain Kalache。
PostgreSQL已經鞏固了其作為世界上最流行的數據庫之一的地位,根據Statista的數據,目前排名第四。正如2023年PostgreSQL現狀調查所發現的,它的采用不僅穩定,而且還在加速增長。自從1990年首次發布以來,安裝、部署和管理PostgreSQL的方法已經發生了變化。
在本文中,我將探討三種云原生和開源的PostgreSQL部署方法。
使用CloudNativePG進行Kubernetes部署
在當今的云原生環境中,在Kubernetes上部署PostgreSQL是顯而易見的選擇。Helm圖表將使部署變得簡單明了,但是它不會涵蓋有狀態工作負載的第二天運維,例如擴展、備份、故障轉移和升級。這就是Kubernetes操作符發揮作用的地方。
CloudNativePG,一個開源的Kubernetes操作符,由于其健壯性以及它是廠商中立的且由社區擁有而獲得了顯著的關注。兩年前,該項目背后的公司EDB將知識產權捐贈給了社區。
該操作符與其他操作符(如Crunchy Data和Zalando)并駕齊驅,但它更注重簡單性和數據安全。CloudNativePG最突出的特點之一是它專注于數據完整性和高可用性。它支持同步復制和自動故障轉移,確保您的數據即使在節點發生故障的情況下也能保持一致性和可訪問性。該項目最近被提交為CNCF沙箱項目,這反映了其對開源原則和協作開發的承諾。
使用Cloud Foundry Marketplace for Korifi實現自助服務
平臺工程的興起增加了對自助服務能力的需求,允許開發人員部署和管理服務而無需過多依賴運維團隊。Cloud Foundry長期以來一直是提供以開發人員為中心的PaaS體驗的先驅。
Korifi提供了Cloud Foundry 的相同開發人員體驗,但在幕后利用Kubernetes而不是虛擬機。Korifi 隱藏了Kubernetes的復雜性,提供了一個對開發人員來說熟悉且無縫的界面。
其一個關鍵的歷史特性是Cloud Foundry Marketplace,平臺運營商和開發人員可以在其中部署預構建的應用程序和服務,包括現在可用于Korifi的PostgreSQL。一個簡單的cf create-service postgresql
命令就足以部署PostgreSQL實例。
使用Neon分離計算和存儲
傳統的PostgreSQL部署將計算和存儲資源耦合在一起,這可能會導致可擴展性和資源利用率方面的挑戰。Neon提供了一種無服務器方法,將存儲和計算分離。
作為AWS Aurora PostgreSQL的無服務器替代方案,標準存儲層被替換為一個分布式架構,該架構將數據重新分布到節點集群中。這種分離允許計算和存儲獨立擴展,從而優化性能和成本。
Neon最受歡迎的功能之一是其數據庫的即時克隆和分支,類似于Git處理代碼分支的方式。這允許開發團隊快速有效地創建隔離的數據庫實例。
結論
雖然本文并非旨在詳盡列舉現代部署PostgreSQL的方法,但所討論的方法反映了三個重要的趨勢。 首先是基礎設施向云原生原則的轉變。曾經,在 Kubernetes 上運行有狀態工作負載被認為是不切實際的,但現在已成為標準實踐,需要 Kubernetes Operators 來完成額外的工作。
第二個趨勢是對符合平臺工程原則的自助服務的日益增長的需求,允許開發人員獨立地配置和管理資源。
最后,出于成本、合規性和安全性等原因,公司越來越多地希望擺脫托管服務,并采用開源或私有 SaaS 解決方案,這些解決方案提供相同級別的功能,但允許他們完全控制自己的數據。