基於使用者角色的資料庫智慧監控系統應用場景分析

華為雲開發者社群發表於2021-07-20
摘要:本文嘗試從概念和邏輯上推導了基於使用者角色的資料庫智慧監控系統的可能應用場景。

本文分享自華為雲社群《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級數倉黑科技,後臺還可獲取眾多學習資料哦~

 

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

相關文章