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