Pigsty 近況與 v1.4 前瞻

2022-03-02 09:00:49

Pigsty v1.4 將於 3 月內釋出,對監控系統進行了顯著改進;探探所有PostgreSQL完整搬遷至Pigsty;Pigsty開始接洽VC

探探全量遷移至 Pigsty

探探是Pigsty最大的使用者案例,也始終是第一個吃螃蟹的人。今天探探下線了最後一套遺留的舊PostgreSQL資料庫 pg.meta.tt。至此,探探主生產環境所有資料庫均已遷移至Pigsty,近一百套叢集全部由Pigsty v1.3.1 所託管。所有叢集全部啟用了高可用自動切換,歷時近兩年的資料庫飛昇專案正式宣告完工。

 

探探主生產環境的Pigsty部署:96叢集12688核的PostgreSQL OLTP叢集。

在探探,Pigsty經過了長時間,大規模,高強度的實際生產環境測試。在兩年的時間裡不斷打磨完善,最終演變為今天的樣子。在近日的混沌工程演練中,運維隨機挑選資料庫機器進行多次宕機演練,Pigsty在無人值守的情況下可以自動進行高可用主從/流量切換。從庫宕機無業務影響,主庫宕機對業務寫入影響不超過在1分鐘。

一次典型從庫宕機現場,讀流量迅速由主庫承擔,業務只有極個別現場查詢中斷報錯,而後立即恢復。

一次典型主庫宕機現場。主庫宕機30s後,從庫被提升新主庫,影響30s業務寫入請求後自愈。

Pigsty 與 VC

Pigsty是一個開源專案,致力於PostgreSQL的推廣,極大降低資料庫的使用與管理門檻,顯著拉高社群使用者使用PostgreSQL的下依託於PostgreSQL中文社群,屬於用愛發電的公益開源專案。

不過,資料庫作為資訊系統的核心元件,很多使用者在使用中反饋,希望有專業的商業服務來兜底。因此Pigsty也不排斥進行一些商業化方面的探索,最近接觸了一些VC機構,也與不少投資人聊過。

Pigsty的使用者痛點與產品定位

今日,Pigsty很榮幸通過了由陸奇博士主辦的創業孵化器 奇績創壇 的面試,有機會進入 2022春季創業營。如果您也對投資Pigsty感興趣,現在確實是一個好機會哦,請聯絡我。

Pigsty v1.4 新特性前瞻

 

最近經常聽到一類使用者的反饋:

  1. Pigsty可不可以用來監控管理其他型別的資料庫?

    例如Redis,MySQL,Greenplum?

  2. Pigsty的工作假設,DB:Node 1:1部署是否合理?

    如何支援單機多範例的部署與監控?

  3. Pigsty的主機監控能不能獨立使用?

    我不想用資料庫,只想用主機節點監控怎麼弄?

應。Pigsty 將於3月內釋出v1.4 ,對這些使用者關心的問題做出迴應,帶來一系列體驗改進與新功能特性,包括:

  1. 獨立的主機節點監控部署功能

  2. 改進的PostgreSQL資料庫監控

  3. 對Greenplum/MatrixDB部署與監控的初步支援

  4. 改進的監控資料模型,支援單機多範例。

Pigsty v1.4 Home 主頁

節點監控

Pigsty v1.4 引入了一個全新的功能:節點監控。

這並不是說以前Pigsty沒有關於機器節點的監控指標,而是在以前,機器的監控指標是1:1與PostgreSQL範例繫結的。對於一個PostgreSQL資料庫發行版來說,這樣的設計是沒有問題的。但隨著Pigsty的發展,這樣的設計就開始顯得不合時宜了。

使用者可能有各種各樣的使用方式與部署策略,例如,在一個節點上部署多個資料庫範例,甚至部署多種不同型別的資料庫。在這種情況下,合適的做法是把節點的管理與監控單獨抽離出來,不與具體的資料庫型別繫結。

這樣做有兩個顯著的好處:一是如果使用者不需要資料庫監控與管理,只需要節點的監控與管理,那麼會比以前簡單很多;第二是一個節點上可以部署多個甚至多種資料庫,並複用同樣的節點監控指標資料。

 

Node Overview 面板,關注所有節點的指標。

雖然Pigsty的定位是開箱即用的PostgreSQL發行版,但其中也包含著主機監控的最佳實踐。有些使用者根本不care資料庫,只是拿Pigsty做主機監控…。

新增的Nodes Cluster 面板,關注一組節點的聚合指標與叢集內的水平對比

節點監控提供了全域性概覽,叢集,以及單個節點三種不同的層次。節點的叢集可以獨立設定,也可以設定為預設與PostgreSQL資料庫叢集保持一致。

多資料庫支援

節點監控與置備的剝離,為第二件事打下了基礎,那就是多資料庫支援。

PostgreSQL是一個相當全能、相當完美的資料庫核心了,但正所謂:紅花還需綠葉配,一個好漢三個幫。當組織與資料成長到一定規模後,使用專有資料元件的需求也會隨之出現。最典型的兩類是:以Redis為代表的快取,以及以Greenplum為代表的資料倉儲。

Redis可以進一步強化業務系統的OLTP處理能力,分擔資料庫壓力,模型簡單易用,受到廣受開發者的喜愛。而Greenplum則可以顯著強化業務系統的OLAP能力,採用與PostgreSQL一致的語言、驅動與介面,將資料分析的量級從幾十TB提升到PB乃至ZB的級別。

Redis與Greenplum在兩個方向上擴充套件了PostgreSQL的能力邊界,這兩者都是PostgreSQL的拍檔,經常在一起組合使用。因此,Pigsty在v1.4中提供了對Redis與Greenplum的初步支援。

Redis Overview 監控面板

複用 Postgers 劇本,宣告一個MatrixDB叢集

PG監控例行改進

Pigsty v1.4 提供了對新資料庫種類的監控支援,但對於經典的PostgreSQL監控也沒有落下。在1.4中,大量PGSQL的監控面板進行了調整與重置,最具有代表性的就是PGSQL Cluster面板。

 

全新的 PGSQL Cluster 監控面板

PGSQL Cluster是Pigsty資料庫監控中最核心的監控面板之一,承上啟下,用於呈現一個自治資料庫叢集的關鍵狀態。新的設計隱藏了不必要的資訊,聚焦於叢集資源。您可以從首屏快速點選叢集內的資源物件,前往細分的監控面板:包括節點,範例,負載均衡器,服務,資料庫,服務元件。

除了叢集資源物件,PGSQL Cluster的首屏只呈現最關鍵的監控指標,報警事件,叢集/範例壓力水位。其他細節都隱藏在下面的專題欄中。

成員詳情表在預設隱藏的第二欄中

第二個顯著改進是 PGSQL Database 面板。在過去,這個監控面板的存在感與使用頻率並不高。因此在v1.4中,PGSQL Database進行了徹底的改版。從籠統地介紹一個資料庫範例的庫級指標,變為關注整個資料庫叢集內部物件的詳情。例如,您可以查閱一張表或一類查詢在叢集主庫與從庫範例上的QPS,或者確認某一個索引在叢集不同範例上的使用情況,從而對業務與應用進行有針對性的優化。

其他一些新的主題監控面板也在製作打磨完善中。例如,關注叢集維護任務的PGSQL Maintenance面板,可以觀察備份、建立索引、垃圾回收任務的實時進度。PGSQL Shard面板,則關注多個水平分片的業務叢集之間的橫向比較。這些Dashboard都將在生產環境中不斷打磨優化,臻至成熟後進入到Pigsty中。

使用方式與介面

Pigsty v1.4 提供了一系列新的 Playbook / 劇本。

在 v1.4 中,Pigsty的使用方式變得更加直觀了。如果您將Pigsty用作單機資料庫或監控核心,只需要執行 meta.yml 即可。如果你希望部署額外的資料庫叢集,使用 node.yml 將這些節點先納入管理,而後選擇對應資料庫的劇本( pgsql.yml , redis.yml, gpsql.yml )執行即可。

meta.yml 用於替代以前的 infra.yml ,負責在單臺節點上完整安裝一套Pigsty系統。包括一套完整就緒的的PostgreSQL資料庫。同時,新增的 meta-remove.yml 劇本用於Pigsty的解除安裝。

node.ymlpgsql.yml 中剝離,用於將新的節點納入Pigsty管理。執行此劇本,會自動將目標節點置備為指定的狀態,並安裝DCS(Consul Agent)與節點監控。如果你希望使用 Pigsty 在部署資料庫叢集,則應當使用此劇本將目標節點先納入 Pigsty 管理。同時,新增的 node-remove.yml 劇本用於將節點從Pigsty中移除。

pgsql.yml 現在移除了節點初始化的部分,只負責在已經初始化好的節點上部署PostgreSQL叢集與範例,並將其納入監控。一些新的開關選項被新增至相關的Ansible Roles中,但主體設定仍與先前保持相容。pgsql-remove.yml 劇本亦進行了相應調整,移除DCS服務現在由 node-remove.yml 負責。

redis.yml 也移除了節點初始化的部分,您需要在已經初始化好的節點上執行此劇本以部署Redis服務。新增的 redis-remove.yml 劇本用於從目標節點上移除Redis服務。

gpsql.yml 是新增的,用於部署MatrixDB的劇本(實際上是Greenplum 7的超集),目前仍然處於Beta階段,可以對MatrixDB/Greenplum提供基本的部署與安裝支援。

未來的路線圖

從長期來看,我希望在 Pigsty 中再新增 Minio,Kafka 支援,讓整個產品形成一個以PostgreSQL為核心的整體解決方案,覆蓋中小型企業完整生命週期的資料儲存需求,打造一個開源的、私有的雲資料庫管控整體解決方案。關係型資料庫PostgreSQL作為核心,快取Redis強化TP能力,數倉Greenplum/MatrixDB強化大規模資料分析能力,物件儲存Minio用於備份管理以及儲存影象音視訊等資料,訊息佇列Kafka提供資料匯流排的能力。通過完備的ETL/CDC支援將這些資料元件融為一體,實現turning the database inside-out!

從中期來看,Pigsty將盡可能充分利用元節點上的CMDB。CMDB模式應當儘快適配多模資料庫,命令列工具也應當及時更新,提供類似於雲CLI工具的使用體驗。多雲部署與雲廠商適配也應當儘快弄起來。

從短期來看,Pigsty的監控面板還有大量的改善空間,包括Catalog資料探勘與呈現,紀錄檔分析與提煉。從可觀測性的角度講,Blackbox黑盒探測與Mtail紀錄檔衍生指標還有很大挖掘空間。此外,針對Greenplum的客製化Dashboard也將提上日程。

當然,這些都需要大量的人力腦力投入。作者表示,一個人用愛發電速度畢竟有限,特別是最近在熱戀中,對Pigsty的愛被分走了很多。所以,也非常歡迎大家一起來Contrib,一起打造一款屬於我們自己的 「RDS」 。

詳情可。 

展開閱讀全文