基於用戶角色的數據庫智能監控系統應用場景分析

摘要:本文嘗試從概念和邏輯上推導了基於用戶角色的數據庫智能監控系統的可能應用場景。

本文分享自華為雲社區《GaussDB(DWS)數據庫智能監控系統應用場景分析》,原文作者:魯大師。

與互聯網產品的立項模式類似,當我們定義設計一款新產品時,首先需要對用戶做需求分析,歸納整理綜合分析用戶的需求,定義我們的產品定位,功能,業務邏輯,使用界面等等。因此,為了設計好數據庫智能監控系統,我們需要對數據庫監控系統的目標用戶做需求分析,收集用戶訴求,挖掘用戶潛在需求,繪製典型用戶畫像。最後,設計數據庫監控系統的實現架構,將典型用戶的各種需求納入到產品的設計架構管道中。

數據庫智能監控系統的用戶

實際應用場景中,數據庫監控系統的用戶可能會有很多種不同的角色。不同公司因為組織架構不同,可能存在更細分或者更聚合的用戶角色。但是總的來說可以歸納整理為如下三種用戶類型:

    • 應用開發(APP DEV)
    • 運維工程師(SRE)
    • 數據庫管理員(DBA)

應用開發工程師角色:主要負責開發雲應用中的業務SQL,對雲服務的功能和性能負責。同時需要保證寫出的SQL高效優質,不會對集群造成額外的資源消耗和時間消耗。因此,應用開發工程師,需要能夠對新開發的SQL進行監控,了解該新增查詢語句的執行效率以及資源消耗情況。

運維工程師角色:主要負責保證數據庫集群的長期穩定運行。需要分別從資源消耗和系統負載兩個角度對數據庫系統進行評估。需要能夠配置數據庫的告警場景,並且可以看到實時或預測的數據庫告警信息,將發現的問題報告給數據庫管理員角色做進一步處理。總的來說,運維工程師角色會監控大量的數據庫集群,他不會對每一個集群做非常深入的分析,而是更多的會以問題發現者的角色出現。

數據庫管理員角色:主要負責定位數據庫問題的根因並且提供相應的解決方案。數據庫管理員需要是數據庫領域的專家,熟悉數據庫的方方面面,他可以從多個維度分析數據庫監控數據,定位數據庫故障,並提供解決方案。

需要說明的是,以上三種角色並不是指實際生產環境中的崗位,而是為了方便分析用戶需求而歸納總結出來的典型角色符號。實際生產環境中,可能出現三種角色為同一個人的場景,或者SRE崗位會身兼SRE與DBA角色的場景。我們這裡將用戶區分為三種角色,主要是為了方便我們做需求分析並且構建對應的人物畫像,從而進一步鎖定對應角色人物所需要的工具。最終,呈現給大家一個思路清晰的數據庫監控系統開發概念脈絡。

數據庫智能監控系統工具及應用場景

通過上面的抽象和梳理,我們發現在數據庫監控運維過程中三種角色分別對應着不同的需求,而不同的需求必將導致不同工具或者同一個工具的不同側重點。下面我們圍繞三種角色,分別展開詳細介紹其將要用到的工具:

應用開發角色,他們只關心自己寫的SQL是否高效,是否有利用到集群的各種優化特性,是否佔用了集群的過多資源?因此,他需要一個能夠讓他評估其所寫SQL執行效率的工具,也就是WebSQL工具,允許用戶簡單的連接到數據庫,並且執行SQL語句。WebSQL可以返回SQL語句的執行結果,也可以返回其執行計劃,幫助應用開發角色,了解其SQL語句的執行效率。同時,用戶的SQL語句並不是簡單的單條語句執行的,而是需要將其放在整個作業流中去執行的。那麼衡量其在作業流中的執行時間和資源消耗的基線就變得非常重要。因此,我們就需要查詢監控可以針對特性的SQL記錄其執行時間和資源的消耗,並且計算最大值,最小值和平均值,作為比對基線,來進一步幫助用戶評估其SQL的執行效率。在用戶現場,因為資源隔離需求,用戶的作業是需要綁定到某個工作負載隊列執行的,那麼工作敷在隊里的資源配置,以及工作負載隊列的負載水平等數據又變得非常重要,新加的SQL語句是否會造成工作負載隊列的超載?當前工作敷在隊列的資源是否合理,這個都需要應用開發角色在新開發的應用上線前有個直觀的了解。

系統運維角色角色(SRE),他們關心雲上數量龐大的數據庫系統的長穩運行,基於這個需求,我們打算提供三個方面的工具來解決問題。

健康指數指標,該指標是一個複合指標,該指標主要由兩方面的指標支撐,資源消耗指數和數據庫系統負載指數。而這兩種指標又有其更下一層的原子指標和延伸指標支撐。集群健康指數的計算需要設計一套相應的數學模型,以該模型為基礎我們就可量化系統的健康指數,從而可以使系統管理員非常簡單的從雲上數以百計的數據庫中快速發現有問題的數據庫。

除了健康指數這樣需要系統管理員親自去查看的被動指標以外,DMS還會進一步提供覆蓋全面的告警能力。DMS將從三個層次上提供數據庫的告警能力,(1)在dms-agent端,通過日誌分析的手段,實時分析dms-agent所處節點上,操作系統以及數據庫的日誌,當發現威脅關鍵詞後,立刻觸發告警,通過相應渠道上報到告警平台;(2)在DMS服務端,因為DMS擁有數據庫集群的全部監控數據,通過數據分析手段和數據庫專業知識,我們將能設計相應的告警規則,周期性的對數據庫集群做檢查,發現問題後直接觸發告警;(3)對於DMS採集的數據庫集群指標數據,能夠作為閾值告警的指標,全部對接CES,通過CES服務做閾值告警。以上三種告警的配置和展示都需要在DMS的前端頁面上呈現。

人工智能與雲計算有的天然的聯繫,當數據庫上雲後,人工智能與數據庫運維的交叉節點AIOps就順理成章的出現了。因為DMS擁有數據集群的全部監控數據,因此使用歷史監控數據對集群的工作模式做判別,推薦最優化的配置參數;對數據庫磁盤的空間增長趨勢做預測,提前通知用戶擴容或運維需求等等。在人工智能的加持下這一切都變成為可能。

數據庫管理員角色(DBA),數據庫管理員一直都是數據庫的大管家,在傳統的數據中心裏,他們負責數據庫的性能優化,也負責數據庫的長穩運行,有時候甚至也要幫助應用開發工程師優化SQL。但是在雲時代,數據庫管理員的工作分工會變得更精細,應用開發和系統管理員分擔了數據庫管理的一部分工作,從而使得數據庫管理員角色職責變的更純粹。數據庫管理員作為一個數據庫領域的專家,他將負責定位數據庫問題的根因,以及提供解決問題的方法。系統管理員+數據庫管理員兩個角色最終就形成了發現問題,分析問題,解決問題的任務閉環。因此,在雲上,SRE崗位往往會包含SRE+DBA兩個角色的職責。

DBA是一個數據庫專家,也是一個使用數據庫工具定位各種數據庫問題的大師。針對問題根因定位,他將需要故障分析工具和故障自愈工具兩類工具。其中,故障分析工具,將會提供各種監控數據和數據的不同可視化形式,為數據庫管理員快速定位問題根因提供幫助。故障自愈類工具,則是將數據庫管理員過去定位問題,解決問題經驗的固化。未來隨着我們對DBA工作方法的進一步了解,將會有越來越多的自愈類工具。

數據庫管理員另一類重要的職責就是提供故障的解決方案,這一塊是運維繫統非常重要的一環。再好的故障定位工具,定位到的問題,如果最後沒有解決方案,那麼最終還是不能真正幫助到用戶。因此,我們需要建立一套問題根因-解決方案的專業搜索引擎,幫助用戶也是幫助我們加速解決問題的流程,緩解一線客戶支持工作人員的工作強度。

本文是介紹雲上的數據庫監控運維體系設計的核心概念的三篇文章之二,嘗試從概念和邏輯上推導了基於用戶角色的數據庫智能監控系統的可能應用場景。有了這個基本框架,則我們後續所需要做的工作和工具都變得清晰可見。願我們的期待早日成為顯示,讓雲端的數據庫運維工作變得更輕鬆與智能。

想了解GuassDB(DWS)更多信息,歡迎微信搜索「GaussDB DWS」關注微信公眾號,和您分享最新最全的PB級數倉黑科技,後台還可獲取眾多學習資料哦~

 

點擊關注,第一時間了解華為雲新鮮技術~