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