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