騰訊雲資料庫智慧型化海量運維的建設與實踐

2021-08-20 17:20:39 字數 2392 閱讀 3877

資料庫架構師團隊的組建

自動化運維平台的建設

智慧型海量運維的實踐

由於資料庫產品的特殊性和複雜性,我們在平時服務客戶的過程中常遇到一些問題,例如:分布在各行各業的客戶,他們會有不同的場景需求,這對於資料庫的應用來說存在有非常大的差別。而我們的售前架構師可能沒辦法對各行各業在資料庫方面的應用、對不同客戶需求的架構都做到非常精通,因此無法推薦出最優的架構。

另一方面,我們的客戶非常多,但可能我們的一些售後服務工程師對於這麼複雜的資料庫產品並不是非常精通,對於難度較大的問題不能做到完全覆蓋,或是與客戶交流不夠平滑等,所以服務質量亟需提高。

基於以上兩大原因,我們組建了資料庫架構師團隊。

架構師團隊組建起來後,我們整個資料庫產品的服務體系就變成了以下這樣乙個三層架構:第一層是運維,負責處理平台穩定性相關的工作;第二層是架構師,負責在中間督促重難點的攻堅,包括資料庫的建設、運維工具的建設等等;第三層是一線服務工程師,負責處理主要的諮詢類、流程類的問題。

目前整個架構師團隊的工作包括四方面:

解決方案:包括基礎解決方案和行業解決方案;

服務體系:包括平台運維和基礎產品運維;

平台建設:包括客戶運營平台、解決方案出口、支撐服務體系。

要更好地服務客戶、提高服務質量,光有資料庫架構師團隊和售後服務體系是不夠的,我們還要有乙個非常穩定的自動化運維平台來支援環境。因此,為什麼需要自動化運維平台,這個問題的答案是顯而易見的。到目前為止,我們一共有10w+的例項、2w+的物理機,對於平台的穩定性要求肯定是非常高。

整個自動化運維平台的模組是非常多的,在此我將重點分享一下監控模組。前面也提及到了,我們的監控模組分為兩個部分,第一部分是效能方面的監控,第二部分是可用性方面的監控。

如上圖所示,我們的監控模組主要是通過兩面兩個主線組成,乙個是db master,乙個是撥測svr。如果監測到有異常的話,會把這個資訊傳送到db master,收到反饋的例項異常的資訊之後,會通過長鏈結,再去驗證是否真的異常。

cdb例項方面的效能監控,主要是通過cdb_report這個模組去監控的,會實時拉取效能方面的監控,將資料、包括cdb告警都彙總到我們的apd netman模組,這是比較重要的乙個元件。

在乙個普通場景下,撥測svr的操作比較簡單,但這樣的場景在海量例項的架構下,可能會有什麼問題?主要包括兩點,第一點是撥測svr的效能問題,也就是每一次在有這麼多例項的情況下,撥測請求是否能夠成功發出、按時發出;如果這個撥測svr的效能不太好,會直接影響到每一次撥測svr的時間間隔。如果撥測svr效能不好,只能被迫地去把撥測svr的時間間隔調大,這樣對我們發現例項的問題可能是不及時的。第二點是撥測svr自身的問題,如果撥測svr是乙個單點的話,萬一它掛掉了,整個例項的狀態對於我們來說都是不可知的,將會是非常危險的狀態。

基於以上兩點原因,我們在海量場景下的撥測svr設計會考慮到以下三點優化目標:

根據這三點優化目標,我們做出了如下圖所示的撥測svr架構。這個節點又會將這些例項發射到後面的pingsvr的節點,是實際去進行撥測操作的節點,這個節點在執行了撥測操作之後,會將撥測失敗結果存入db中,會有乙個alarmchecker去實時讀取,然後進行告警。不管是成功還是失敗的請求,全部都會寫進去,會有模組去拉取,並實時地存入資料庫中。在這些節點中,其實都有乙個災備的部署。

經過實踐和思考,發現在海量資料運維中,我們的自動化運維平台還不能解決以下這些問題:

從資料探勘的結果以及平常與客戶的一些溝通來看,我們把一些比較特殊的使用方法總結為以下四種型別:

針對這四種特殊的使用方法,我們其實可以做一些定製化的服務,如下圖所示:

對於計算型應用,如bi報表類,它的業務特點是凌晨才執行,而整個機器在凌晨這個時間段內是比較空閒的,所以我們就可以針對這樣的計算型場景,進行一些允許閒時超用的優化。

對於儲存型應用,客戶可能比較關心的是整個容量的使用情況,那麼我們就可以相應地提供自動載入、資料壓縮的壓縮引擎。

對於流量型應用,可能會對sql的要求非常高,如果中間有一兩個效能不是特別好的sql,就可能會影響到整個資料庫。所以對於這種應用,我們可以給客戶提供乙個類似自助sql優化的工具,幫助客戶把sql做一定的優化。

對於熱點型應用,我們可以提供乙個例項動態公升降配的功能,在業務高峰前,快速地將這個例項公升到乙個較高的配置。

針對前文提到的資料庫自動調優的問題,我們可以做乙個實時分析和**分析的工作,來分析例項的質量得分。

其中,**分析是通過例項過去的歷史資料,來分析它在未來兩到三個月的走勢。其實這個分析也是可以做定製化的,例如上文提及的計算型應用,如果客戶對cpu比較敏感,我們在分析時就可以把cup使用權重的比例調大;如果是對儲存、空間利用率比較敏感,我們可以把儲存方面的一些指標相應調大。通過這樣的**分析,再加上大資料、ai的一些模型,我們就可以得出乙個例項得分的指標,並以此自動地優化資料庫,或是提出一些優化建議。

問答雲資料庫如何回檔?

如何運營億級qps的redis系統

騰訊雲資料庫智慧型化海量運維的建設與實踐

資料庫架構師團隊的組建 自動化運維平台的建設 智慧型海量運維的實踐 由於資料庫產品的特殊性和複雜性,我們在平時服務客戶的過程中常遇到一些問題,例如 分布在各行各業的客戶,他們會有不同的場景需求,這對於資料庫的應用來說存在有非常大的差別。而我們的售前架構師可能沒辦法對各行各業在資料庫方面的應用 對不同...

如何快速構建資料庫智慧型化運維平台(一)

顧名思義,自動化是將手工操作變革為機器自動操作。但是,許多人在平台建設初期往往會進入乙個誤區 要窮舉可能用到的所有場景,把所有的運維工作都做成自動化,徹底解放人工。想法固然是好,但是由於資料庫運維的複雜性,在實際建設過程中會舉步維艱,難以為繼。我所理解的自動化,是要解決dba的痛點,而且是最痛的點,...

騰訊雲林曉斌 騰訊雲資料庫運維進入智慧型時代

11 月 6 日,2019techo開發者大會在北京正式召開,在資料庫核心優化與最佳實www.cppcns.com踐分論壇上,來自業內的多位專家交流 了資料庫未來的發展趨vzthtb勢。騰訊雲資料庫負責人林曉斌表示,目前騰訊雲的三款自研資料庫cynosdb tdsql tbase已取得重要突破,受到...