Postgres.ai 團隊很高興宣布發布 3.0 版本的 Database Lab Engine (DLE),這是迄今為止發布的最先進的開源軟體,它為快速成長的專案提供開發、測試和故障排除環境。 使用 Database Lab Engine 3.0 通過在軟體開發中實施 "Shift-left testing" 方法,為公司提供競爭優勢。
Database Lab Engine 是一種開源技術,可為 PostgreSQL 實現輕量複製(Thin Cloning)。 當您需要擴展開發流程時,輕量複製非常有用。 DLE 可以在單台機器上管理數十個獨立的資料庫複製,因此每個工程師或自動化流程都可以使用他們自己的資料庫,這些資料庫可以在幾秒鐘內配置完成,而無需額外成本。
DLE 3.0 中的主要變更包括:
從 3.0.0 版本開始,DLE 會收集非個人身份識別資訊的遙測資料。 此功能預設為啟用,但可以關閉。 在DLE 文件中閱讀更多內容。 保持啟用遙測可以被視為您對 DLE 開發的貢獻,因為它可以幫助我們在開源產品開發的道路上做出決策。
接下來,我們將討論 DLE 3.0 中實現的最常見的變更——所有這些變更都是基於真實的用戶體驗以及來自不斷增長的用戶和貢獻者社群的寶貴回饋而創建的。
作為開源軟體,DLE 始終配備 API 和 CLI。 至於 UI,它最初僅以 SaaS 的形式提供 – 在 Postgres.ai 上運行的 Database Lab Platform。
為了回應來自 DLE 用戶的眾多請求,UI 已集成到 DLE 3.0 的核心發行版中。 這一變更使開源 DLE 對用戶更具吸引力,使其易於使用並簡化了在快速成長的公司的採用。
您可以觀看 展示 DLE UI 的短片。
一些用戶告訴我們,有了 UI,向同事解釋 DLE 非常有用的各種用例變得容易得多。 如果您喜歡 Database Lab,請嘗試從此變更中受益——使用 UI,向其他人展示在幾秒鐘內複製大型資料庫的想法,並討論它如何影響您的軟體開發、測試流程以及事件故障排除和 SQL 優化。
添加到 DLE 3.0 的另一個功能也是 DLE 用戶經常詢問的。 在 3.0 之前,任何 DLE 重新啟動都意味著創建的所有複製都將丟失 – 因此 DLE 升級、VM 重新啟動,甚至 DLE 的簡單重新配置始終需要維護窗口,從而中斷工作。
為了解決此問題,DLE 2.0 中引入了 無需重新啟動即可重新配置 DLE 的功能。 但是,這對於 DLE 升級或 VM 重新啟動的情況沒有幫助。 現在有了 DLE 3.0,這個問題已完全解決
當然,在 VM 重新啟動的情況下,DB 連接將丟失,需要重新創建。 但是,如果您只需要重新啟動 DLE,所有複製容器將繼續運行,並且用戶現在即使在 DLE 重新啟動期間也可以繼續使用它們,而不會中斷任何工作。
在 DLE 2.5 中,我們實施了重置為任何可用快照的功能——對於您的複製快速穿越時間來說,這是一種方便的方法。 在 2.5 中,這僅適用於「物理」配置模式(從物理備份還原資料目錄 PGDATA,或使用 pg_basebackup
從來源獲取)。 換句話說,它僅在您自己管理 Postgres 並且可以複製 PGDATA 或建立與您的資料庫的物理複製連線時才能正常工作。 這是 RDS 和其他託管 Postgres 服務的用戶無法使用的功能。
對於在「邏輯」資料配置模式下運行的 DLE(基於 dump/restore——這是大多數託管 Postgres 雲端產品(如 Amazon RDS)的唯一選項),DLE 2.5 提供了操作多個 PGDATA 副本的功能,這允許在不停機的情況下進行完整刷新。 但是,如果 DLE 用戶在「舊」PGDATA 版本上運行複製,他們需要重新創建它們才能解鎖下一個完整刷新——由於端口分配相當不可預測,這有些不方便。
在 DLE 3.0 中,現在可以將 Clone 的狀態重設為任何資料庫版本(快照),即使該版本是由在不同 Pool/Dataset 上運行的另一個 PGDATA 副本所提供。這意味著使用者可以讓他們的 Clone 長時間運行在相同的 Port 上,擁有穩定的 DB 憑證(包括 Port),並且在需要時,一旦完整的 Refresh 完成,就可以在幾秒鐘內切換到最新的資料庫版本。這使得使用 "Logical" 的體驗幾乎與 "Physical" 的體驗相同。
最初,DLE 被設計為在專用機器上運行,無論是實體機還是虛擬機。然而,許多使用者發現這樣很不方便 - 在某些情況下,開發和測試環境會受到預算優化的限制,因此在單一機器上運行多個 DLE 很有意義,尤其是當組織擁有許多較小的資料庫時(對於那些處理微服務架構的人來說,這是一個典型的案例)。
DLE 3.0 有一些改進,簡化了在單一機器上運行多個 DLE 的操作。特別是,新的配置選項 selectedPool
允許使用單個 ZFS Pool 並以每個 DLE 擁有自己的 Dataset 的方式運行多個 DLE。這極大地簡化了可用磁碟空間管理:DLE 管理員現在只需要控制一個數字,並減少調整磁碟大小的頻率,而不是零碎的空間分配和處理許多 "可用磁碟空間" 數字。
我們計劃在另一篇文章中討論在單一機器上運行多個 DLE 的各個方面。
歡迎提供回饋和貢獻