Pigsty v2 正式釋出:更好的RDS PG開源替代

碼農談IT發表於2023-02-28

2023/02/28Pigsty  v2.0.0 正式釋出,帶來了一系列重大的功能更新。

現在 PIGSTY 是 "PostgreSQL In Great STYle"的首字母縮寫,即"全盛狀態的 PostgreSQL"。而 Pigsty 的定位也不再是 “開箱即用的PostgreSQL資料庫發行版”,變成了 “Me Better 開源 RDS PG 替代”。

明人不說暗話,這是一個很有野心的目標:推翻雲資料庫壟斷,砸爛RDS的飯碗!詳見:《雲資料庫是不是智商稅?》

Pigsty v2 正式釋出:更好的RDS PG開源替代


2.0 新特性

Pigsty 是一個更好的、本地優先的,開源 RDS for PostgreSQL 替代。

Pigsty v2 正式釋出:更好的RDS PG開源替代

強力的發行版 

徹底釋放世界上最先進的關係型資料庫的力量!

PostgreSQL 是一個足夠完美的資料庫核心,但它需要更多工具與系統的配合,才能成為一個足夠好的資料庫服務(RDS),而 Pigsty 幫助 PostgreSQL 完成這一步飛躍。

Pigsty 深度整合了 PostgreSQL 生態的三大核心擴充套件外掛 PostGISTimescaleDBCitus,並確保它們可以協同工作,提供分散式的時序地理空間資料庫能力。Pigsty 還提供了執行企業級 RDS 服務的所需軟體,打包所有依賴為離線軟體包,所有元件均可在無需網際網路訪問的情況下一鍵完成安裝部署,進入生產可用狀態。

在 Pigsty 中功能元件被抽象 模組,可以自由組合以應對多變的需求場景。INFRA 模組帶有完整的現代監控技術棧,而 NODE 模組則將節點調諧至指定狀態並納入監控。在多個節點上安裝 PGSQL 模組會自動組建出一個基於主從複製的高可用資料庫叢集,而同樣的 ETCD 模組則為資料庫高可用提供共識與後設資料儲存。可選的 MINIO模組可以用作影像影片等大檔案儲存並可選用為資料庫備份倉庫。與 PG 有著極佳相性的 REDIS 亦為 Pigsty 所支援,更多的模組(如GPSQLMYSQLKAFKA)將會在後續加入,你也可以開發自己的模組並自行擴充套件 Pigsty 的能力。

Pigsty v2 正式釋出:更好的RDS PG開源替代


驚豔的觀測能力

使用現代開源可觀測性技術棧,提供無與倫比的監控最佳實踐!

Pigsty 提供了基於開源的 Grafana / Prometheus 可觀測性技術棧做監控的最佳實踐:Prometheus 用於收集監控指標,Grafana 負責視覺化呈現,Loki 用於日誌收集與查詢,Alertmanager 用於告警通知。PushGateway 用於批處理任務監控,Blackbox Exporter 負責檢查服務可用性。整套系統同樣被設計為一鍵拉起,開箱即用的 INFRA 模組。

Pigsty 所管理的任何元件都會被自動納入監控之中,包括主機節點,負載均衡 HAProxy,資料庫 Postgres,連線池 Pgbouncer,後設資料庫 ETCD,KV快取 Redis,物件儲存 MinIO,……,以及整套監控基礎設施本身。大量的 Grafana 監控皮膚與預置告警規則會讓你的系統觀測能力有質的提升,當然,這套系統也可以被複用於您的應用監控基礎設施,或者監控已有的資料庫例項或 RDS。

無論是故障分析還是慢查詢最佳化、無論是水位評估還是資源規劃,Pigsty 為您提供全面的資料支撐,真正做到資料驅動。在 Pigsty 中,超過三千類監控指標被用於描述整個系統的方方面面,並被進一步加工、聚合、處理、分析、提煉並以符合直覺的視覺化模式呈現在您的面前。從全域性大盤總攬,到某個資料庫例項中單個物件(表,索引,函式)的增刪改查詳情都能一覽無餘。您可以隨意上卷下鑽橫向跳轉,瀏覽系統現狀與歷史趨勢,並預測未來的演變。詳見公開演示:

Pigsty v2 正式釋出:更好的RDS PG開源替代

久經考驗的可靠性

開箱即用的高可用與時間點恢復能力,確保你的資料庫堅如磐石!

對於軟體缺陷或人為誤操作造成的刪表刪庫,Pigsty 提供了開箱即用的 PITR 時間點恢復能力,無需額外配置即預設啟用。只要儲存空間管夠,基於 pgBackRest 的基礎備份與 WAL 歸檔讓您擁有快速回到過去任意時間點的能力。您可以使用本地目錄/磁碟,亦或專用的 MinIO 叢集或 S3 物件儲存服務保留更長的回溯期限,豐儉由人。

更重要的是,Pigsty 讓高可用與故障自愈成為 PostgreSQL 叢集的標配,基於 patronietcd, 與 haproxy 打造的故障自愈架構,讓您在面對硬體故障時遊刃有餘:主庫故障自動切換的 RTO < 30s,一致性優先模式下確保資料零損失 RPO = 0。只要叢集中有任意例項存活,叢集就可以對外提供完整的服務,而客戶端只要連線至叢集中的任意節點,即可獲得完整的服務。

Pigsty 內建了 HAProxy 負載均衡器用於自動流量切換,提供 DNS/VIP/LVS 等多種接入方式供客戶端選用。故障切換與主動切換對業務側除零星閃斷外幾乎無感知,應用不需要修改連線串重啟。極小的維護視窗需求帶來了極大的靈活便利:您完全可以在無需應用配合的情況下滾動維護升級整個叢集。硬體故障可以等到第二天再抽空善後處置的特性,讓研發,運維與 DBA 都能安心睡個好覺。許多大型組織與核心機構已經在生產環境中長時間使用 Pigsty ,最大的部署有 25K CPU 核心與 200+ PostgreSQL 例項,在這一部署案例中, Pigsty 在三年內經歷了數十次硬體故障與各類事故,但依然可以保持 99.999% 以上的整體可用性。

Pigsty v2 正式釋出:更好的RDS PG開源替代

簡單易用可維護

Infra as Code, 資料庫即程式碼,宣告式的API將資料庫管理的複雜度來封裝。

Pigsty 使用宣告式的介面對外提供服務,將系統的可控制性拔高到一個全新水平:使用者透過配置清單告訴 Pigsty “我想要什麼樣的資料庫叢集”,而不用去操心到底需要怎樣去做。從效果上講,這類似於 K8S 中的 CRD 與 Operator,但 Pigsty 可用於任何節點上的資料庫與基礎設施:不論是容器,虛擬機器,還是物理機。

無論是建立/銷燬叢集,新增/移除從庫,還是新增資料庫/使用者/服務/擴充套件/黑白名單規則,您只需要修改配置清單並執行 Pigsty 提供的冪等劇本,而 Pigsty 負責將系統調整到您期望的狀態。使用者無需操心配置的細節,Pigsty將自動根據機器的硬體配置進行調優,您只需要關心諸如叢集叫什麼名字,有幾個例項放在哪幾臺機器上,使用什麼配置模版:事務/分析/核心/微型,這些基礎資訊,研發也可以自助服務。但如果您願意跳入兔子洞中,Pigsty 也提供了豐富且精細的控制引數,滿足最龜毛 DBA 的苛刻定製需求。

除此之外,Pigsty 本身的安裝部署也是一鍵傻瓜式的,所有依賴被預先打包,在安裝時可以無需網際網路訪問。而安裝所需的機器資源,也可以透過 Vagrant 或 Terraform 模板自動獲取,讓您在十幾分鍾內就可以從零在本地筆記本或雲端虛擬機器上拉起一套完整的 Pigsty 部署。本地沙箱環境可以跑在1核2G的微型虛擬機器中,提供與生產環境完全一致的功能模擬,可以用於開發、測試、演示與學習。

Pigsty v2 正式釋出:更好的RDS PG開源替代

紮實的安全性

加密備份一應俱全,只要硬體與金鑰安全,您無需操心資料庫的安全性。

每套 Pigsty 部署都會建立一套自簽名的 CA 用於證書籤發,所有的網路通訊都可以使用 SSL 加密。資料庫密碼使用合規的 scram-sha-256 演算法加密儲存,遠端備份會使用 AES-256 演算法加密。此外還針對 PGSQL 提供了一套開箱即用的的訪問控制體系,足以應對絕大多數應用場景下的安全需求。

Pigsty 針對 PostgreSQL 提供了一套開箱即用,簡單易用,精煉靈活的,便於擴充套件的訪問控制體系,包括職能分離的四類預設角色:讀(DQL) / 寫(DML) / 管理(DDL) / 離線(ETL) ,與四個預設使用者:dbsu / replicator / monitor / admin。所有資料庫模板都針對這些角色與使用者配置有合理的預設許可權,而任何新建的資料庫物件也會自動遵循這套許可權體系,而客戶端的訪問則受到一套基於最小許可權原則的設計的 HBA 規則組限制,任何敏感操作都會記入日誌審計。

任何網路通訊都可以使用 SSL 加密,需要保護的敏感管理頁面與API端點都受到多重保護:使用使用者名稱與密碼進行認證,限制從管理節點/基礎設施節點IP地址/網段訪問,要求使用 HTTPS 加密網路流量。Patroni API 與 Pgbouncer 因為效能因素預設不啟用 SSL ,但亦提供安全開關便於您在需要時開啟。合理配置的系統透過等保三級毫無問題,只要您遵循安全性最佳實踐,內網部署併合理配置安全組與防火牆,資料庫安全性將不再是您的痛點。

Pigsty v2 正式釋出:更好的RDS PG開源替代

廣泛的應用場景

使用預置的Docker模板,一鍵拉起使用PostgreSQL的海量軟體!

在各類資料密集型應用中,資料庫往往是最為棘手的部分。例如 Gitlab 企業版與社群版的核心區別就是底層 PostgreSQL 資料庫的監控與高可用,如果您已經有了足夠好的本地 PG RDS,又為什麼要為軟體自帶的土法手造資料庫掏錢?

Pigsty 提供了 Docker 模組與大量開箱即用的 Compose 模板。您可以使用 Pigsty 管理的高可用 PostgreSQL (以及 Redis 與 MinIO )作為後端儲存,以無狀態的模式一鍵拉起這些軟體:Gitlab、Gitea、Wiki.js、Odoo、Jira、Confluence、Habour、Mastodon、Discourse、KeyCloak 等等。如果您的應用需要一個靠譜的 PostgreSQL 資料庫, Pigsty 也許是最簡單的獲取方案。

Pigsty 也提供了與 PostgreSQL 緊密聯絡的應用開發工具集:PGAdmin4、PGWeb、ByteBase、PostgREST、Kong、以及 EdgeDB、FerretDB、Supabase 這些使用 PostgreSQL 作為儲存的"上層資料庫"。更奇妙的是,您完全可以基於 Pigsty 內建了的 Grafana 與 Postgres ,以低程式碼的方式快速搭建起一個互動式的資料應用來,甚至還可以使用 Pigsty 內建的 ECharts 皮膚創造更有表現力的互動視覺化作品。

Pigsty v2 正式釋出:更好的RDS PG開源替代

開源免費的自由軟體

Pigsty是基於 AGPLv3 開源的自由軟體,由熱愛 PostgreSQL 的社群成員用熱情澆灌

Pigsty 是完全開源免費的自由軟體,它允許您在缺乏資料庫專家的情況下,用幾乎接近純硬體的成本來執行企業級的 PostgreSQL 資料庫服務。作為對比,公有云廠商提供的 RDS 會收取底層硬體資源幾倍到十幾倍不等的溢價作為 “服務費”。

( 參考閱讀:為什麼說雲資料庫是殺豬盤

很多使用者選擇上雲,正是因為自己搞不定資料庫;很多使用者使用 RDS,是因為別無他選。我們將打破雲廠商的壟斷,為使用者提供一個雲中立的,更好的 RDS 開源替代:Pigsty 緊跟 PostgreSQL 上游主幹,不會有供應商鎖定,不會有惱人的 “授權費”,不會有節點數量限制,不會收集您的任何資料。您的所有的核心資產 —— 資料,都能"自主可控",掌握在自己手中。

Pigsty 本身旨在用資料庫自動駕駛軟體,替代大量無趣的人肉資料庫運維工作,但再好的軟體也沒法解決所有的問題。總會有一些的冷門低頻疑難雜症需要專家介入處理。這也是為什麼我們也提供專業的訂閱服務,來為有需要的企業級使用者使用 PostgreSQL 提供兜底。幾萬塊的訂閱諮詢費不到頂尖 DBA 每年工資的幾十分之一,讓您徹底免除後顧之憂,把成本真正花在刀刃上。當然對於社群使用者,我們亦用愛發電,提供免費的支援與日常答疑。


Pigsty v2 正式釋出:更好的RDS PG開源替代



2.0 快速上手

Pigsty 2.0 的安裝依然是一條命令搞定所有:

curl -fsSL ) | bash

Pigsty v2 正式釋出:更好的RDS PG開源替代

如果網際網路訪問受限,您可以提前從 Github 或 CDN 下載對應作業系統的離線軟體包進行離線安裝。監控系統部分提供公開的 Demo:

Pigsty v2 正式釋出:更好的RDS PG開源替代


v2.0.0 釋出註記

距離上一個版本 v1.5.1 已經過去 255 天,在這接近一年時間中的七百多個提交裡,大量來自使用者側的需求與反饋被接納、實現、打磨、測試。新增了一系列重磅特性。主要的亮點包括:

Pigsty v2 正式釋出:更好的RDS PG開源替代

具體細節如下:

Pigsty v2 正式釋出:更好的RDS PG開源替代

Pigsty v2 正式釋出:更好的RDS PG開源替代

Pigsty v2 正式釋出:更好的RDS PG開源替代

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2937364/,如需轉載,請註明出處,否則將追究法律責任。

相關文章