讓運維智能高效,輕松搞定運維管理平臺
?什么是任務(wù)運維中心
先從一段不太正經(jīng)的推理開始:
根據(jù)某百科的官方解釋,運維主要目的是確保網(wǎng)站、軟件服務(wù)的安全和穩(wěn)定運行。
那么“任務(wù)運維”就是確保任務(wù)的安全、穩(wěn)定運行。
那么”任務(wù)運維中心“就是輔助任務(wù)運維人員進行離線任務(wù)管理和實例運維的工作,幫助運維人員提高運維效率,及時發(fā)現(xiàn)問題并提供診斷建議,確保任務(wù)的安全、穩(wěn)定運行。
2.任務(wù)運維中心能干什么
2.1 發(fā)送報警
什么時候會需要運維人員出馬?
- 任務(wù)出錯的時候
- 任務(wù)運行變慢的時候
- 任務(wù)應(yīng)該運行卻沒有運行的時候……
但是運維人員又不能一天到晚盯著任務(wù)看,所以任務(wù)運維中心就提供“報警”功能,在出現(xiàn)異常的時候,及時的把告警信息發(fā)送給運維人員,喊他們來處理異常。
2.1.1 值班組
與報警功能相關(guān)的第一個問題,就是報警發(fā)送給誰?
任務(wù)運維中心支持設(shè)置值班組,創(chuàng)建值班組后,可以添加值班人員,并設(shè)置值班規(guī)則,指定主值班人與備值班人以及連續(xù)值班天數(shù)和值班時間。
2.1.2 基線運維
與報警功能相關(guān)的第二個問題,就是什么時候發(fā)送報警?
- 任務(wù)出錯的時候
- 任務(wù)運行變慢的時候
- 任務(wù)應(yīng)該運行卻沒有運行的時候
針對第二個問題,我們提出“基線運維”模塊,先來介紹一下基線是什么,以及與之密切關(guān)聯(lián)的“關(guān)鍵路徑”又是什么。
基線:即時間線,在基線運維場景中,通過設(shè)定幾條時間線(即基線),并將線上任務(wù)關(guān)聯(lián)到這些時間線上,當(dāng)這些任務(wù)的實例或上游實例運行失敗,或者這些實例的預(yù)計產(chǎn)出時間超過對應(yīng)的時間線時,系統(tǒng)會觸發(fā)報警通知給值班人員。
預(yù)警時間:如果系統(tǒng)計算出基線上最晚產(chǎn)出實例的完成時間超過預(yù)警時間時,會觸發(fā)基線報警。
破線時間:指基線任務(wù)中所有實例都必須在該時刻前運行成功,是掛載在該基線上的任務(wù)的實例產(chǎn)出時間的承諾時間。建議預(yù)警時間設(shè)置比破線時間早半小時,相當(dāng)于留給運維人員一個處理的時間,破線時間相當(dāng)于是底線。
關(guān)鍵路徑:關(guān)于關(guān)鍵路徑,可以用下圖來說明。此例子中,基線根據(jù)數(shù)倉分層進行設(shè)置,任務(wù)A-E分別是掛載在2點基線上的任務(wù)。
所以我們可以看到,基線的作用其實就是批量監(jiān)督任務(wù),把一批任務(wù)掛在一根基線上,那么基線就會不斷去計算基線上這些任務(wù)的預(yù)計完成時間,一旦計算到預(yù)計完成時間超過預(yù)期的時間,就會向值班人員發(fā)出基線報警。
值班人員在收到報警信息后,就要去排查到底是哪個任務(wù)延遲了,這時候就需要查看關(guān)鍵路徑,向上溯源,最終精準(zhǔn)找出問題的源頭。
任務(wù)運維中心支持基線運維,通過權(quán)限授權(quán),運維人員可以在運維配置中創(chuàng)建與管理基線。將相關(guān)任務(wù)與基線關(guān)聯(lián)后,在基線運維模塊,就可以查看任務(wù)的執(zhí)行時間情況,例如下圖中就是“數(shù)倉3點基線”上掛載任務(wù)的相關(guān)實例運行情況。不同顏色表示實例不同狀態(tài),運維人員可以直觀高效地查看任務(wù)執(zhí)行情況,并對異常實例進行相關(guān)操作。
2.2 定位問題
現(xiàn)在我們已經(jīng)收到了報警,并且知道是哪個任務(wù)出了問題,那么接下來就要想辦法知道任務(wù)究竟出了什么問題,是因為代碼錯誤,還是資源不足,還是DQC異常,抑或是平臺bug呢。
2.2.1 智能診斷
為了能夠幫助運維人員快速定位問題,我們推出了“智能診斷”功能。如果你想快速體驗這一功能,可以前往周期實例列表,選擇狀態(tài)為失敗的實例,就能看到一個放大鏡的圖標(biāo),點擊即可進入智能診斷頁面。
智能診斷的詳情頁面展示異常節(jié)點,以及異常處理建議。例如下圖,就是針對數(shù)據(jù)同步節(jié)點運行失敗所提供的診斷結(jié)果與處理建議。
2.3 解決方案
2.3.1 重跑
當(dāng)我們發(fā)現(xiàn)任務(wù)出了問題,并且定位到了失敗原因,通過修改代碼、重新發(fā)布上線后,還需要將原先運行失敗的問題進行重跑操作。如果實例狀態(tài)是失敗、終止,則支持實例重跑/批量重跑。
重跑的操作步驟包括:
選擇需要重跑的節(jié)點,系統(tǒng)支持自動勾選失敗、終止及撤銷節(jié)點;
進行重跑設(shè)置,包括通知設(shè)置、運行設(shè)置等,支持重跑成功或失敗時消息通知用戶
重跑完成后,周期實例列表會更新實例ID,并支持查看重跑記錄。
2.3.2 補數(shù)據(jù)
補數(shù)據(jù)的場景主要有:
當(dāng)任務(wù)新建后希望對歷史數(shù)據(jù)進行加工,可通過補數(shù)據(jù)功能選擇歷史某個時間段來執(zhí)行任務(wù);
當(dāng)任務(wù)某個時間段內(nèi)數(shù)據(jù)有問題或者任務(wù)異常,可通過補數(shù)據(jù)對歷史異常的數(shù)據(jù)或任務(wù)進行重新生成實例并執(zhí)行,達到修復(fù)歷史數(shù)據(jù)的目的。
補數(shù)據(jù)的步驟包括:
選擇源頭任務(wù)需要補數(shù)據(jù)的節(jié)點
選擇下游任務(wù)需要補數(shù)據(jù)的節(jié)點
進行補數(shù)據(jù)運行設(shè)置
這里用gl_ods_user_info任務(wù)為例,這個任務(wù)首次執(zhí)行時間是2022年7月份的某一天,我想要補這個任務(wù)以及他的下游任務(wù)2022年6月份的數(shù)據(jù),我就可以使用補數(shù)據(jù)功能。
第一步:選擇源頭任務(wù)要補數(shù)據(jù)的節(jié)點
第二步:選擇下游任務(wù)要補數(shù)據(jù)的節(jié)點,這里任務(wù)有點多,我可以根據(jù)實際需要來勾選要補數(shù)據(jù)的任務(wù)節(jié)點
第三步:配置補數(shù)據(jù)設(shè)置,我可以設(shè)置要補數(shù)據(jù)的時間范圍,計劃執(zhí)行時間、執(zhí)行隊列等參數(shù)
第四步:前往補數(shù)據(jù)任務(wù)運維列表,查看補數(shù)據(jù)實例執(zhí)行情況
3.總結(jié)
下圖是從用戶日常運維視角來看的產(chǎn)品閉環(huán)圖。任務(wù)運維中心的本質(zhì)就是為用戶打造從發(fā)現(xiàn)問題、定位問題再到解決問題的完整、高效的運維鏈路。尤其是現(xiàn)在企業(yè)用戶數(shù)據(jù)爆發(fā)增長,數(shù)據(jù)任務(wù)往往具有任務(wù)量龐大、調(diào)度類型復(fù)雜、業(yè)務(wù)影響范圍廣等特點,任務(wù)運維人員往往肩負(fù)巨大壓力,一個智能高效的運維平臺能夠幫助運維人員提高工作效率、最大化減少因故障處理不及時而產(chǎn)生的損失,保障數(shù)據(jù)任務(wù)健康運行。
通過提供強大的基線運維、靈活的告警規(guī)則配置、自動化的任務(wù)管理和監(jiān)視等功能,致力于打造一個運維人員輕松從容、運維工作高效敏捷的智能化運維工具。?