不降功能只降資源,六個應用場景帶你瞭解OCP Express

OceanBase技術站發表於2023-04-05

歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/


作者簡介: 謝志剛,OceanBase 管控平臺(OCP)技術負責人,主持 OCP 的整體研發工作。在雲端計算及資料庫領域深耕多年,對資料庫管控、資料庫自動化運維、資料庫多雲部署等方向具有深刻的理解和豐富的實踐經驗。

在 OceanBase 開源後,為了協助使用者更加高效地管理 OceanBase 叢集,降低使用者對 OceanBase 的學習成本及企業的 IT 運維成本,我們推出了社群版 OCP(OceanBase Cloud Platform),為使用者提供了 OceanBase 叢集的圖形化管理能力,包括資料庫元件及相關資源(主機、軟體包等)的全生命週期管理、備份恢復、監控告警等。這樣一來,使用者能夠實時掌握 OceanBase 的執行動態,並將 DBA 從繁雜的運維工作中解放出來。

但是,隨著業務探索的不斷深入和最佳實踐的不斷積累,OCP 也遇到了更多場景的挑戰。

社群版 OCP 定位於資料庫叢集的管理平臺,面向規模化管理場景,對於單叢集、小規模叢集以及個人開發者不太友好。對於個人開發者來說,如果要體驗 OCP 的管理能力,需要付出一定成本。由於 OCP 是中心化部署的,因此需要單獨的機器進行安裝,且部署和運維都有一定門檻。並且為了實現平臺級功能,OCP 對資源佔用的要求也較高。因此,對於單叢集、小規模叢集、個人開發者來說,社群版 OCP 在可獲得性、易用性上較難滿足要求。

為了解決在社群場景下使用者對 OceanBase 圖形化管理的可獲得性和易用性問題,我們 在保留並繼承了 OCP 原有體驗和基礎能力的前提下,推出了 OCP Express ,可以幫助使用者更好的管理 OceanBase 資料庫。在滿足資料庫基礎管理和資料庫可觀測性的同時, 大幅降低了 OceanBase 資料庫圖形化管理的使用門檻和總擁有成本 。本文將和大家分享 OCP Express 的架構特點、關鍵能力、安裝部署、應用場景,以及一些常見問題。

一、以極小資源消耗部署於任一節點的OCP Express

OCP Express 是一個基於 Web 的 OceanBase 4.x 輕量化管理工具,作為 OceanBase 資料庫的工具元件,它整合在 OceanBase 資料庫叢集中,支援資料庫叢集關鍵效能指標檢視及基本資料庫基礎管理功能。OCP Express 源自於 OceanBase 雲平臺(OceanBase Cloud Platform,OCP), 在保留核心能力的基礎上,調整了整體的功能佈局,給予使用者全新的使用體驗。 同時,OCP Express 的功能配置也進一步調整,能夠以極小的資源消耗部署在任意一臺資料庫節點上。從而使 OCP Express 使用者 以最小的成本,獲取全新的 OceanBase 4.x 管控體驗。 透過 OCP Express,使用者可以執行基礎的 OceanBase 資料庫管理任務,例如建立或變更租戶、管理資料庫及使用者等,還可以檢視有關 OceanBase 資料庫的監控、效能、診斷、日誌等資訊。OCP Express 的特點參考圖1。

1679735105

圖1 OCP Express 特點

1、特性介紹

OCP Express 支援以下五個部分的 OceanBase 叢集管理功能:

  • 叢集總覽:檢視叢集拓撲結構、狀態資訊、資源消耗等核心資訊,掌握叢集整體實時執行狀況。
  • 租戶管理:提供叢集下租戶的全生命週期管理,以及租戶下資料庫管理、使用者管理等。
  • 監控服務:提供叢集與租戶維度的監控,覆蓋效能監控、主機監控等數十種監控指標。
  • 診斷服務:可以對租戶會話、慢 SQL、Top SQL 進行有效的管理,如關閉會話、SQL 限流等。
  • 日誌服務:可以線上分析叢集 OBServer、OBAgent 的相關日誌,定位故障更加便捷簡單。

2、架構介紹

OCP Express 的架構採用了 Agent-Server 模式,Agent 負責資料採集與命令執行,Server 負責資料聚合處理及展示。Agent 複用了已經開源的 OBAgent,在 OBAgent 現有功能上做了功能增強,配合實現了對本地叢集的管理。Server 端在聚合了叢集和租戶資料後,以圖形化方式展示叢集當前的實時狀態及監控診斷資訊,並支援使用者在圖形化介面上對叢集和租戶進行管理操作。

OCP Express 的架構(見圖2 )具備以下特點:

  • OCP Express Server 可以選擇部署到任意一臺 OBServer 所在主機上,也可以獨立部署到其他主機上,OBAgent 部署在每個 OBServer 節點所在的主機上,與 OBServer 一一對應;
  • OBAgent 負責採集叢集及租戶的監控、效能、日誌等資料,同時也負責執行由 OCP Express Server 下發的各種管理操作;
  • OCP Express Server 會對 OBAgent 採集到的資料進行聚合處理及展示等,同時也負責下發各種管理操作指令;
  • OCP Express 的元資訊及監控資料儲存在本地叢集下的專用租戶中,無需額外的叢集來儲存 OCP Express 資料,且能做到與業務租戶隔離;
  • OCP Express 僅管理本地 OceanBase 叢集,邏輯更加簡單,能力更加聚焦。

1679735396

圖2 OCP Express 架構

二、OCP Express 是如何簡化資料庫管理的

作為 OCP 的輕量版,OCP Express 在產品定位、部署方式、資源佔用等方面都與 OCP 有所差異(見圖3)。

產品定位: OCP 定位為 OceanBase 資料庫的管理平臺,面向規模化運維場景 ,可以實現一個平臺管理多套 OceanBase 叢集,同時支援更豐富的平臺功能,比如備份恢復、巡檢、告警等;而 OCP Express 定位為叢集內建的資料庫管理工具, 面向輕量化資料庫管控場景 ,它與被管理的 OceanBase 叢集深度融合,支援對本地叢集的基礎管理,以及監控、效能、診斷、日誌等實時資訊展示,功能聚焦,操作簡單。

部署方式:OCP 為中心化部署,需要配置專用的 OceanBase 叢集作為後設資料儲存倉庫。 安裝包以 Docker 映象方式提供,大小約 1.7 GB, 由於依賴 Docker 管理,因此對運維要求也略高;而 OCP Express 作為 OceanBase 資料庫的工具元件,可在使用 OBD 部署 OceanBase 叢集時選擇 一鍵安裝部署,安裝包僅 80 MB ,安裝後開啟即用,無額外配置。且運維非常簡單,可使用 OBD 對其進行管理。

資源佔用:由於 OCP 面向規模化叢集管理,並提供了很多的平臺級功能,因此 對儲存和計算等資源佔用較多,有一定的使用門檻 ;而 OCP Express 僅管理本地叢集,整體 資源佔用和開銷都較少 ,僅在本地叢集中建立一個專屬租戶來儲存後設資料和監控資料即可,可以做到在滿足基本運維管理需求的前提下儘可能地降低資源消耗。

1679735413

圖3 OCP Express 與 OCP 的區別

除了上述三方面的區別外,OCP Express 透過提供資料庫管理、資料庫可觀測性和外部整合這三大關鍵能力來簡化對 OceanBase 資料庫的日常管理。

1、資料庫管理

OCP Express 保留並繼承了 OCP 的原有體驗以及基礎的 OceanBase 叢集及租戶管理能力,能讓使用者擺脫黑屏,方便快捷地在圖形化介面檢視和管理本地叢集及租戶。由於 OCP Express 被設計為僅管理本地叢集,因此在管理功能上非常聚焦,操作便捷、易於使用,使 OceanBase 資料庫的管理變得更加簡單和高效。下面以叢集總覽和租戶管理為例,結合頁面功能做一下簡單介紹。

OCP Express 將叢集的關鍵資訊都彙總在了叢集總覽頁面(見圖4),在該頁面中,使用者可以掌握叢集當前的實時執行狀態。比如可以瞭解到叢集當前的資源水位、租戶合併情況、SlowSQL 統計,以及叢集的拓撲結構等。除此之外,使用者也可以在該頁面上對叢集的 Unit 分佈進行調整,以及修改叢集引數。

1679735426

圖4 叢集總覽介面

OCP Express 提供了租戶的全生命週期管理功能,使用者可以根據業務需要透過 OCP Express 頁面來建立或刪除租戶,同時還支援在租戶下對資料庫及資料庫使用者進行全生命週期的管理。除此之外,租戶的副本擴縮容、引數設定、合併管理、Zone 優先順序設定、白名單設定等都可以透過 OCP Express 頁面來完成,如圖5所示。

1679735436

圖5 租戶總覽介面

2、資料庫可觀測性

資料庫可觀測性是對於資料庫的執行狀態、效能指標以及異常事件進行監控、收集、分析和視覺化展示的能力。可以幫助使用者及時發現和解決問題、提高系統穩定性、改善資料庫設計、提高資料庫效能等。OCP Express 提供了以下三個層次的資料庫可觀測性。

  • 自動資料收集:OCP Express 透過 OBAgent 對 OceanBase 進行實時資料採集,包括效能、SQL 等各類指標,採集到的資料儲存在本地叢集下的專用租戶中。同時也支援將 OBAgent 採集到的資料對接到第三方平臺,後面章節中會詳述。
  • 資料庫監控:OCP Express 提供了豐富的監控項和監控圖表。對採集到的指標資料進行聚合處理,然後透過圖表的形式展示在介面上,便於使用者檢視資料庫執行的實時狀況。
  • 資料庫診斷:OCP Express 提供了會話診斷和 SQL 診斷的能力。使用者可以透過 OCP Express 識別出不健康的會話和 SQL,最佳化資料庫訪問,提升資料庫效能。

下面結合 OCP Express 的功能頁面,對監控、診斷和日誌服務做簡單介紹。

透過 OCP Express,使用者可以檢視 OceanBase 叢集和租戶的實時效能監控。監控資訊分為叢集和租戶兩個維度,叢集監控下分為資料庫效能和主機效能兩類,租戶監控下分為效能與SQL、事務、儲存與快取三類,總計 50+ 監控圖表。叢集監控如圖6所示。

1679735449

圖6 叢集監控介面

透過 OCP Express,使用者可以檢視租戶會話列表與會話統計,可以檢視 TopSQL 與 SlowSQL,還可以對租戶會話及慢 SQL 進行有效的管理,如關閉會話、SQL 限流等。SQL 診斷頁面見圖7 。

1679735458

圖7 SQL 診斷介面

除此之外,使用者還可以透過 OCP Express 提供的日誌查詢功能,線上分析叢集 OBServer 的相關日誌,包括observer 日誌、rootservice 日誌、選舉日誌等(見圖8),使得故障定位更加的簡單便捷。

1679735471

圖8 日誌查詢介面

3、外部整合

OCP Express 透過 OBAgent 完成資料庫實時指標資料的自動收集,同時也將資料自動收集能力進行了開放。使用者可以利用 OBAgent 的開放資料採集能力,整合到第三方平臺或自有外部監控系統,例如:Prometheus、Zabbix 等。

OBAgent 提供了標準 HTTP 介面,以 Prometheus 資料模型將 OceanBase 數十種監控指標暴露給 Prometheus Server,包括主機指標與資料庫指標等。詳見:https://github.com/oceanbase/obagent/blob/master/docs/obagent-metrics/exporter-metrics.md 使用者可以將這些 metric 資料整合到自有的 Prometheus Server中,並在 Grafana 上進行圖表化展示。效果如圖9所示。

1679735482

圖9 Grafana 資料圖表化展示

具體的對接指導請參考:https://github.com/oceanbase/obagent/tree/master/docs

三、如何安裝與部署 OCP Express

1、安裝部署

OCP Express 作為 OceanBase 的工具元件,在安裝部署方面做到了極致的簡單與便捷。在使用新版 OBD (帶圖形化介面,見圖10)部署 OceanBase 資料庫時,使用者可選擇一鍵安裝 OCP Express,以獲得對本地叢集的基礎管理能力。整個安裝過程清晰簡單,使用者 僅需確認 OCP Express 和 OBAgent 的服務埠即可,無需額外配置 。當完成安裝過程後,就自動擁有了 OceanBase 資料庫的圖形化管理能力, 開啟即用

1679735491

圖10 新版 OBD 的圖形化部署介面

如上圖所示,在 OBD 的部署配置頁面,當選擇“完全部署”的部署型別後,OBD 會在安裝 OceanBase 資料庫的同時,一鍵安裝 OCP Express 和 OBAgent 兩個工具元件,這兩個工具元件共同配合,完成 OCP Express 的所有功能。當然也可以選擇“精簡部署”,此時僅安裝 OceanBase 資料庫。為了能更好地使用 OceanBase 資料庫, 推薦採用“完全部署”的部署型別 。OCP Express 的安裝包僅有 80 MB 大小,OBAgent 的安裝包也僅有 20 MB 大小,安裝簡單,管理便捷。

當使用者不再需要 OceanBase 叢集時,可透過 OBD 命令obd cluster destroy一鍵銷燬叢集。此時 OCP Express 及 OBAgent 元件也會隨之一起停止並解除安裝。

2、資源佔用

OCP Express 服務

OCP Express 服務在執行過程中會有計算和儲存的開銷,具體的資源消耗參考如表1所示。資源的消耗與叢集規模以及租戶數量有關,以下配置是以叢集中包含 10 個租戶為標準,根據叢集規模進行預估得出的資料。

叢集的 OBServer 數CPU(核)記憶體(GB)
≤ 1012
≤ 2024
≤ 5048

表1 OCP Express 服務資源消耗

當叢集規模較小時,例如 OBServer 數量在 10 以內,OCP Express 服務的資源消耗僅為 1C2G

OCP Express 租戶

OBD 在部署 OCP Express 時,會在 OceanBase 叢集下為 OCP Express 建立名為 ocp 的專用租戶。該租戶被用於儲存 OCP Express 的後設資料和監控資料。該租戶的副本所需的資源也與叢集規模以及租戶數量有關,以下配置是以叢集中包含 10 個租戶為標準,根據叢集規模進行預估得出的資料。

叢集的 OBServer 數CPU(核)記憶體(GB)
≤ 1014
≤ 2028
≤ 50416

表2 OCP Express 專用租戶資源消耗

當叢集規模較小時,例如 OBServer 數量在 10 以內,OCP Express 租戶的資源消耗僅為 1C4G。

四、OCP Express 的六大應用場景

OCP Express 定位為 OceanBase 叢集內建的資料庫管理工具, 面向輕量化資料庫管控,因此特別適用於以下六個場景。

場景1:快速部署和體驗 OceanBase 功能。 由於 OCP Express 作為管控元件內建於 OceanBase 4.x 叢集中,因此在部署 OceanBase 後,即可擁有 OCP Express 的圖形化管理能力,無需額外部署操作。對於新上手使用者來說非常方便,能快速的部署並在圖形化介面上體驗 OceanBase 的功能。同時也非常有利於新手使用者利用圖形化介面來學習和理解 OceanBase 資料庫。

場景2:個人開發者日常使用。 對於個人開發使用者來說,一般情況下可利用的機器資源較為有限,不太適合透過部署中心化的 OCP 來滿足日常資料庫管理需要。且個人開發者對於 OceanBase 叢集的部署和銷燬操作都較為頻繁,管控工具的部署便捷性和可獲得性是非常核心的需求。OCP Express 在安裝 OceanBase 叢集時即可一鍵安裝獲得,在銷燬 OceanBase 叢集時也隨之一起停止並解除安裝,並且不需要額外的機器資源,因此對於個人開發者來說使用起來非常便捷,且能滿足日常管理需要。

場景3:小規模單叢集管理。 對於小規模單叢集的管理來說,往往需要簡單和高效的管理工具即可。如果透過部署中心化的 OCP 來滿足管理需要,不但使得很多 OCP 的平臺級能力處於“閒置”狀態,而且也浪費了部署資源。這種場景下使用 OCP Express 來對叢集進行管理是比較合適的選擇,既能滿足日常管理需要,又無需額外的機器資源用於部署管控服務。

場景4:資料庫效能最佳化和故障排除。 OCP Express 提供了豐富的資料庫監控及診斷能力,並且還能在圖形化介面上線上分析 OBServer 的相關日誌。使用者可以透過 OCP Express 識別出不健康的會話和 SQL,最佳化資料庫訪問,提升資料庫效能,也可以透過 OCP Express 的日誌分析功能來使得故障定位更加地簡單和便捷。

場景5:監控整合到外部平臺。 OCP Express 開放了監控資料採集的對接能力。透過 OBAgent 提供的 HTTP 介面,使用者可以很方便地把 OceanBase 的監控指標整合到自建的監控系統中,比如業界流行的 Prometheus、Zabbix 等。如果使用者有這方面的對接需要,在使用 OBD 一鍵安裝部署 OceanBase 4.x 之後,即可自動擁有該能力。

場景6:降低資料庫管理成本。 由於部署中心化的 OCP 需要一定的機器資源,且有一定的維護門檻,因此對於需要降低資料庫管理成本的場合來說,使用 OCP Express 是較為合適的選擇。OCP Express 的部署不佔用額外機器資源,僅需在 OBServer 節點下佔用少量計算和儲存資源,以及在本地叢集中內建一個專用租戶。OCP Express 在執行時佔用資源較少,在滿足日常管理功能的同時,也能進一步降低使用者的資料庫管理成本。

五、常見問題及建議

Q:OCP Express 與 OCP 有哪些區別?

A:OCP Express 面向輕量化管控,作為管控元件內建於被管理的 OceanBase 叢集,可以做到在滿足基本管理需求的前提下儘量地降低資源消耗。OCP 面向規模化管理場景,可以實現一個平臺管理多套 OceanBase 叢集,支援更豐富的管理能力,需要額外配置 OceanBase 叢集作為 OCP 的後設資料儲存介質,同時也需要更高資源佔用來實現更多的平臺級能力。

Q:OCP Express 是否可以單獨部署?

A:目前 OCP Express 需要透過 OBD 使用一體化安裝包來實現一鍵安裝部署,部署完成後 OCP Express 開啟即用,不需要任何的配置即可管理 OceanBase 叢集。

Q:OCP Express 的使用場景是什麼?

A:OCP Express 面向開發測試、中小規模 OceanBase 叢集管理、個人開發者使用者,適合單叢集在 20 臺主機、5 個租戶以內的使用場景。

Q:OCP Express 支援哪些 OceanBase 資料庫版本?

A:OCP Express 是基於 OceanBase 4.x 推出的輕量化管理工具,支援 4.0 及以上版本的 OceanBase 資料庫。

Q:OCP Express 未來是否開源?

A:OCP Express 計劃於 2023 年 6 月進行程式碼開源,同時會更新 OBAgent 已開原始碼版本。

Q:OCP Express 中使用的 OBAgent 和 OceanBase 開源社群中的 OBAgent 是什麼關係?

A:OCP Express 中使用的 OBAgent 是基於開源 OBAgent 開發的,對原有功能做了增強,計劃於 2023 年 6 月對開源 OBAgent 做新版本釋出,開放本次新增的程式碼。


歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/

相關文章