2023/02/28,Pigsty ?v2.0.0 正式發(fā)布,帶來了一系列重大的功能更新。
現(xiàn)在 PIGSTY 是 "PostgreSQL In Great STYle" 的首字母縮寫,即 "全盛狀態(tài)的 PostgreSQL"。而 Pigsty 的定位也不再是 “開箱即用的 PostgreSQL 數(shù)據(jù)庫發(fā)行版”,變成了 “Me Better 開源 RDS PG 替代”。
(資料圖片)
2.0 新特性
Pigsty 是一個更好的、本地優(yōu)先的,開源RDS for PostgreSQL替代。
開箱即用的 PostgreSQL 發(fā)行版,深度整合地理時序分布式三大核心擴展: PostGlS,TimescaleDB,Citus.
基于現(xiàn)代的 Prometheus 與 Grafana 技術(shù)棧,提供令人驚艷,無可比擬的數(shù)據(jù)庫觀測能力: Public Demo
基于 patroni,haproxy, 與 etcd,打造故障自愈的高可用架構(gòu):硬件故障自動切換,流量無縫銜接。?
基于 pgBackRest 與可選的 Minl0 集群提供開箱即用的 PITR 時間點恢復(fù),為軟件缺陷與人為刪庫兜底
基于 Ansible 提供聲明式的 API 對復(fù)雜度進(jìn)行抽象,以 Database-as-Code 的方式極大簡化了日常運維管理操作。
Pigsty 用途廣泛,可用作完整應(yīng)用運行時,開發(fā)演示數(shù)據(jù) / 可視化應(yīng)用,大量使用 PG 的軟件可使用 Docker 模板一鍵拉起
提供基于 Vagrant 的本地開發(fā)測試沙箱環(huán)境,與基于 Terraform 的云端自動部署方案,開發(fā)測試生產(chǎn)保持環(huán)境一致。
強力的發(fā)行版?
徹底釋放關(guān)系型數(shù)據(jù)庫的力量!
PostgreSQL 是一個足夠完美的數(shù)據(jù)庫內(nèi)核,但它需要更多工具與系統(tǒng)的配合,才能成為一個足夠好的數(shù)據(jù)庫服務(wù)(RDS),而 Pigsty 幫助 PostgreSQL 完成這一步飛躍。
Pigsty 深度整合了 PostgreSQL 生態(tài)的三大核心擴展插件?PostGIS,TimescaleDB,Citus,并確保它們可以協(xié)同工作,提供分布式的時序地理空間數(shù)據(jù)庫能力。Pigsty 還提供了運行企業(yè)級 RDS 服務(wù)的所需軟件,打包所有依賴為離線軟件包,所有組件均可在無需互聯(lián)網(wǎng)訪問的情況下一鍵完成安裝部署,進(jìn)入生產(chǎn)可用狀態(tài)。
在 Pigsty 中功能組件被抽象?模塊,可以自由組合以應(yīng)對多變的需求場景。INFRA模塊帶有完整的現(xiàn)代監(jiān)控技術(shù)棧,而?NODE模塊則將節(jié)點調(diào)諧至指定狀態(tài)并納入監(jiān)控。在多個節(jié)點上安裝?PGSQL模塊會自動組建出一個基于主從復(fù)制的高可用數(shù)據(jù)庫集群,而同樣的?ETCD模塊則為數(shù)據(jù)庫高可用提供共識與元數(shù)據(jù)存儲。可選的?MINIO模塊可以用作圖像視頻等大文件存儲并可選用為數(shù)據(jù)庫備份倉庫。與 PG 有著極佳相性的?REDIS亦為 Pigsty 所支持,更多的模塊(如GPSQL,?MYSQL,?KAFKA)將會在后續(xù)加入,你也可以開發(fā)自己的模塊并自行擴展 Pigsty 的能力。
驚艷的觀測能力
使用現(xiàn)代開源可觀測性技術(shù)棧,提供監(jiān)控最佳實踐!
Pigsty 提供了基于開源的 Grafana / Prometheus 可觀測性技術(shù)棧做監(jiān)控的最佳實踐:Prometheus 用于收集監(jiān)控指標(biāo),Grafana 負(fù)責(zé)可視化呈現(xiàn),Loki 用于日志收集與查詢,Alertmanager 用于告警通知。PushGateway 用于批處理任務(wù)監(jiān)控,Blackbox Exporter 負(fù)責(zé)檢查服務(wù)可用性。整套系統(tǒng)同樣被設(shè)計為一鍵拉起,開箱即用的 INFRA 模塊。
Pigsty 所管理的任何組件都會被自動納入監(jiān)控之中,包括主機節(jié)點,負(fù)載均衡 HAProxy,數(shù)據(jù)庫 Postgres,連接池 Pgbouncer,元數(shù)據(jù)庫 ETCD,KV 緩存 Redis,對象存儲 MinIO,……,以及整套監(jiān)控基礎(chǔ)設(shè)施本身。大量的 Grafana 監(jiān)控面板與預(yù)置告警規(guī)則會讓你的系統(tǒng)觀測能力有質(zhì)的提升,當(dāng)然,這套系統(tǒng)也可以被復(fù)用于您的應(yīng)用監(jiān)控基礎(chǔ)設(shè)施,或者監(jiān)控已有的數(shù)據(jù)庫實例或 RDS。
無論是故障分析還是慢查詢優(yōu)化、無論是水位評估還是資源規(guī)劃,Pigsty 提供全面的數(shù)據(jù)支撐,真正做到數(shù)據(jù)驅(qū)動。在 Pigsty 中,超過三千類監(jiān)控指標(biāo)被用于描述整個系統(tǒng)的方方面面,并被進(jìn)一步加工、聚合、處理、分析、提煉并以符合直覺的可視化模式呈現(xiàn)在您的面前。從全局大盤總攬,到某個數(shù)據(jù)庫實例中單個對象(表,索引,函數(shù))的增刪改查詳情都能一覽無余。您可以隨意上卷下鉆橫向跳轉(zhuǎn),瀏覽系統(tǒng)現(xiàn)狀與歷史趨勢,并預(yù)測未來的演變。
詳見公開演示 Demo:http://demo.pigsty.cc
久經(jīng)考驗的可靠性
開箱即用的高可用與時間點恢復(fù)能力
對于軟件缺陷或人為誤操作造成的刪表刪庫,Pigsty 提供了開箱即用的 PITR 時間點恢復(fù)能力,無需額外配置即默認(rèn)啟用。只要存儲空間管夠,基于?pgBackRest的基礎(chǔ)備份與 WAL 歸檔讓您擁有快速回到過去任意時間點的能力。您可以使用本地目錄 / 磁盤,亦或?qū)S玫?MinIO集群或?S3對象存儲服務(wù)保留更長的回溯期限,豐儉由人。
更重要的是,Pigsty 讓高可用與故障自愈成為 PostgreSQL 集群的標(biāo)配,基于?patroni,?etcd, 與?haproxy打造的故障自愈架構(gòu),讓您在面對硬件故障時游刃有余:主庫故障自動切換的?RTO
,一致性優(yōu)先模式下確保數(shù)據(jù)零損失?RPO = 0。只要集群中有任意實例存活,集群就可以對外提供完整的服務(wù),而客戶端只要連接至集群中的任意節(jié)點,即可獲得完整的服務(wù)。
Pigsty 內(nèi)置了 HAProxy 負(fù)載均衡器用于自動流量切換,提供 DNS/VIP/LVS 等多種接入方式供客戶端選用。故障切換與主動切換對業(yè)務(wù)側(cè)除零星閃斷外幾乎無感知,應(yīng)用不需要修改連接串重啟。極小的維護(hù)窗口需求帶來了極大的靈活便利:您完全可以在無需應(yīng)用配合的情況下滾動維護(hù)升級整個集群。硬件故障可以等到第二天再抽空善后處置的特性,讓研發(fā),運維與 DBA 都能安心睡個好覺。許多大型組織與核心機構(gòu)已經(jīng)在生產(chǎn)環(huán)境中長時間使用 Pigsty ,最大的部署有?25K CPU核心與 200+ PostgreSQL 實例,在這一部署案例中, Pigsty 在三年內(nèi)經(jīng)歷了數(shù)十次硬件故障與各類事故,但依然可以保持?99.999%以上的整體可用性。
簡單易用可維護(hù)
Infra as Code, 數(shù)據(jù)庫即代碼,聲明式的 API 將數(shù)據(jù)庫管理的復(fù)雜度來封裝。
Pigsty 使用聲明式的接口對外提供服務(wù),將系統(tǒng)的可控制性拔高到一個全新水平:用戶通過配置清單告訴 Pigsty “我想要什么樣的數(shù)據(jù)庫集群”,而不用去操心到底需要怎樣去做。從效果上講,這類似于 K8S 中的 CRD 與 Operator,但 Pigsty 可用于任何節(jié)點上的數(shù)據(jù)庫與基礎(chǔ)設(shè)施:不論是容器,虛擬機,還是物理機。
無論是創(chuàng)建 / 銷毀集群,添加 / 移除從庫,還是新增數(shù)據(jù)庫 / 用戶 / 服務(wù) / 擴展 / 黑白名單規(guī)則,您只需要修改配置清單并運行 Pigsty 提供的冪等劇本,而 Pigsty 負(fù)責(zé)將系統(tǒng)調(diào)整到您期望的狀態(tài)。用戶無需操心配置的細(xì)節(jié),Pigsty 將自動根據(jù)機器的硬件配置進(jìn)行調(diào)優(yōu),您只需要關(guān)心諸如集群叫什么名字,有幾個實例放在哪幾臺機器上,使用什么配置模版:事務(wù) / 分析 / 核心 / 微型,這些基礎(chǔ)信息,研發(fā)也可以自助服務(wù)。但如果您愿意跳入兔子洞中,Pigsty 也提供了豐富且精細(xì)的控制參數(shù),滿足最龜毛 DBA 的苛刻定制需求。
除此之外,Pigsty 本身的安裝部署也是一鍵傻瓜式的,所有依賴被預(yù)先打包,在安裝時可以無需互聯(lián)網(wǎng)訪問。而安裝所需的機器資源,也可以通過 Vagrant 或 Terraform 模板自動獲取,讓您在十幾分鐘內(nèi)就可以從零在本地筆記本或云端虛擬機上拉起一套完整的 Pigsty 部署。本地沙箱環(huán)境可以跑在 1 核 2G 的微型虛擬機中,提供與生產(chǎn)環(huán)境完全一致的功能模擬,可以用于開發(fā)、測試、演示與學(xué)習(xí)。
扎實的安全性
加密備份一應(yīng)俱全,只要硬件與密鑰安全,無需操心數(shù)據(jù)庫的安全性。
每套 Pigsty 部署都會創(chuàng)建一套自簽名的 CA 用于證書簽發(fā),所有的網(wǎng)絡(luò)通信都可以使用 SSL 加密。數(shù)據(jù)庫密碼使用合規(guī)的?scram-sha-256算法加密存儲,遠(yuǎn)端備份會使用?AES-256算法加密。此外還針對 PGSQL 提供了一套開箱即用的的訪問控制體系,足以應(yīng)對絕大多數(shù)應(yīng)用場景下的安全需求。
Pigsty 針對 PostgreSQL 提供了一套開箱即用,簡單易用,精煉靈活的,便于擴展的訪問控制體系,包括職能分離的四類默認(rèn)角色:讀 (DQL) / 寫 (DML) / 管理 (DDL) / 離線 (ETL) ,與四個默認(rèn)用戶:dbsu /replicator/monitor /admin。所有數(shù)據(jù)庫模板都針對這些角色與用戶配置有合理的默認(rèn)權(quán)限,而任何新建的數(shù)據(jù)庫對象也會自動遵循這套權(quán)限體系,而客戶端的訪問則受到一套基于最小權(quán)限原則的設(shè)計的 HBA 規(guī)則組限制,任何敏感操作都會記入日志審計。
任何網(wǎng)絡(luò)通信都可以使用 SSL 加密,需要保護(hù)的敏感管理頁面與 API 端點都受到多重保護(hù):使用用戶名與密碼進(jìn)行認(rèn)證,限制從管理節(jié)點 / 基礎(chǔ)設(shè)施節(jié)點 IP 地址 / 網(wǎng)段訪問,要求使用 HTTPS 加密網(wǎng)絡(luò)流量。Patroni API 與 Pgbouncer 因為性能因素默認(rèn)不啟用 SSL ,但亦提供安全開關(guān)便于您在需要時開啟。合理配置的系統(tǒng)通過等保三級毫無問題,只要您遵循安全性最佳實踐,內(nèi)網(wǎng)部署并合理配置安全組與防火墻,數(shù)據(jù)庫安全性將不再是您的痛點。
廣泛的應(yīng)用場景
使用預(yù)置的 Docker 模板,一鍵拉起使用 PostgreSQL 的海量軟件!
在各類數(shù)據(jù)密集型應(yīng)用中,數(shù)據(jù)庫往往是最為棘手的部分。例如 Gitlab 企業(yè)版與社區(qū)版的核心區(qū)別就是底層 PostgreSQL 數(shù)據(jù)庫的監(jiān)控與高可用,如果您已經(jīng)有了足夠好的本地?PG RDS,又為什么要為軟件自帶的土法手造數(shù)據(jù)庫掏錢?
Pigsty 提供了 Docker 模塊與大量開箱即用的 Compose 模板。您可以使用 Pigsty 管理的高可用 PostgreSQL (以及 Redis 與 MinIO )作為后端存儲,以無狀態(tài)的模式一鍵拉起這些軟件:Gitlab、Gitea、Wiki.js、Odoo、Jira、Confluence、Habour、Mastodon、Discourse、KeyCloak 等等。如果您的應(yīng)用需要一個靠譜的 PostgreSQL 數(shù)據(jù)庫, Pigsty 也許是最簡單的獲取方案。
Pigsty 也提供了與 PostgreSQL 緊密聯(lián)系的應(yīng)用開發(fā)工具集:PGAdmin4、PGWeb、ByteBase、PostgREST、Kong、以及 EdgeDB、FerretDB、Supabase 這些使用 PostgreSQL 作為存儲的 "上層數(shù)據(jù)庫"。更奇妙的是,您完全可以基于 Pigsty 內(nèi)置了的 Grafana 與 Postgres ,以低代碼的方式快速搭建起一個交互式的數(shù)據(jù)應(yīng)用來,甚至還可以使用 Pigsty 內(nèi)置的 ECharts 面板創(chuàng)造更有表現(xiàn)力的交互可視化作品。
開源免費的自由軟件
Pigsty 是基于 AGPLv3 開源的自由軟件,由熱愛 PostgreSQL 的社區(qū)成員用熱情澆灌
Pigsty 是完全開源免費的自由軟件,它允許您在缺乏數(shù)據(jù)庫專家的情況下,用幾乎接近純硬件的成本來運行企業(yè)級的 PostgreSQL 數(shù)據(jù)庫服務(wù)。作為對比,公有云廠商提供的 RDS 會收取底層硬件資源幾倍到十幾倍不等的溢價作為 “服務(wù)費”。
很多用戶選擇上云,正是因為自己搞不定數(shù)據(jù)庫;很多用戶使用 RDS,是因為別無他選。我們將打破云廠商的壟斷,為用戶提供一個云中立的,更好的 RDS 開源替代:Pigsty 緊跟 PostgreSQL 上游主干,不會有供應(yīng)商鎖定,不會有惱人的 “授權(quán)費”,不會有節(jié)點數(shù)量限制,不會收集您的任何數(shù)據(jù)。您的所有的核心資產(chǎn) —— 數(shù)據(jù),都能 "自主可控",掌握在自己手中。
Pigsty 本身旨在用數(shù)據(jù)庫自動駕駛軟件,替代大量無趣的人肉數(shù)據(jù)庫運維工作,但再好的軟件也沒法解決所有的問題??倳幸恍┑睦溟T低頻疑難雜癥需要專家介入處理。Pigsty?提供專業(yè)的訂閱服務(wù),來為有需要的企業(yè)級用戶使用 PostgreSQL 提供兜底。當(dāng)然對于社區(qū)用戶,團(tuán)隊亦用愛發(fā)電,提供免費的支持與日常答疑。
2.0 快速上手
Pigsty 2.0 的安裝依然是一條命令搞定所有
curl?-fsSL http://download.pigsty.cc/get) | bash
如果互聯(lián)網(wǎng)訪問受限,您可以提前從 Github 或 CDN 下載對應(yīng)操作系統(tǒng)的離線軟件包進(jìn)行離線安裝。監(jiān)控系統(tǒng)部分提供公開的 Demo:http://demo.pigsty.cc 。
v2.0.0 發(fā)布注記
距離上一個版本 v1.5.1 已經(jīng)過去 255 天,在這接近一年時間中的七百多個提交里,大量來自用戶側(cè)的需求與反饋被接納、實現(xiàn)、打磨、測試。新增了一系列重磅特性。主要的亮點包括:
具體細(xì)節(jié)如下:
關(guān)鍵詞: Pigsty 正式發(fā)布更好的 開源替代