與DevOps緊綁才算實(shí)現(xiàn)運(yùn)維自動(dòng)化嗎?接地氣的運(yùn)維自動(dòng)化什么樣?

何為數(shù)據(jù)中心的自動(dòng)化運(yùn)維?很多人把DevOps與運(yùn)維自動(dòng)化緊綁,認(rèn)為只有實(shí)現(xiàn)了容器化,只有實(shí)現(xiàn)了自動(dòng)編排等等才算是實(shí)現(xiàn)了運(yùn)維的自動(dòng)化。

本文來(lái)自twt企業(yè)IT社區(qū),作者/趙海。

很多人把DevOps與運(yùn)維自動(dòng)化緊綁,認(rèn)為只有實(shí)現(xiàn)了容器化,只有實(shí)現(xiàn)了自動(dòng)編排等等才算是實(shí)現(xiàn)了運(yùn)維的自動(dòng)化。且不說(shuō)有多少企業(yè)可以完全實(shí)現(xiàn)這種IT轉(zhuǎn)型,就概念本身而言,這也是一種不太合乎邏輯的思維。那么接地氣的運(yùn)維自動(dòng)化如何設(shè)計(jì)和建設(shè)?

1.何為運(yùn)維自動(dòng)化?

何為數(shù)據(jù)中心的自動(dòng)化運(yùn)維?很多人把DevOps與運(yùn)維自動(dòng)化緊綁,認(rèn)為只有實(shí)現(xiàn)了容器化,只有實(shí)現(xiàn)了自動(dòng)編排等等才算是實(shí)現(xiàn)了運(yùn)維的自動(dòng)化。且不說(shuō)有多少企業(yè)可以完全實(shí)現(xiàn)這種IT轉(zhuǎn)型,就概念本身而言,我覺(jué)得這也是一種不太合乎邏輯的思維。我們來(lái)看Gartner對(duì)運(yùn)維自動(dòng)化的理解“通過(guò)運(yùn)維工具或平臺(tái),實(shí)現(xiàn)IT基礎(chǔ)設(shè)施及業(yè)務(wù)應(yīng)用日常任務(wù)處理和運(yùn)維流程的自動(dòng)化,從而提高效率和降低風(fēng)險(xiǎn),促進(jìn)運(yùn)維組織的成熟和各種能力的升級(jí)”。從傳統(tǒng)企業(yè)數(shù)據(jù)中心運(yùn)維工程師角度來(lái)看,所謂自動(dòng)化運(yùn)維,即在最少的人工干預(yù)下,結(jié)合運(yùn)用腳本與第三方工具,保證業(yè)務(wù)系統(tǒng)7*24小時(shí)高效穩(wěn)定運(yùn)行。所以,筆者認(rèn)為最接地氣的運(yùn)維自動(dòng)化即為在企業(yè)數(shù)據(jù)中心原有IT基礎(chǔ)架構(gòu)條件下,能夠?qū)崿F(xiàn)IT資源標(biāo)準(zhǔn)化定義,并且實(shí)現(xiàn)運(yùn)維數(shù)據(jù)采集、加工、分析的自動(dòng)化流程,最終能保障IT運(yùn)維的及時(shí)性和效率化的建設(shè)體系。

2.運(yùn)維自動(dòng)化框架

首先,我們先來(lái)從企業(yè)數(shù)據(jù)中心運(yùn)維發(fā)展的歷史階段來(lái)分析運(yùn)維自動(dòng)化。從很多傳統(tǒng)企業(yè)來(lái)看,尤其是金融企業(yè)的數(shù)據(jù)中心,大部分已經(jīng)經(jīng)歷了三個(gè)階段:

(1)復(fù)運(yùn)維工作精簡(jiǎn)化的階段,利用標(biāo)準(zhǔn)統(tǒng)一的工作流來(lái)避免重復(fù)的人力工作;

(2)局部運(yùn)維工作自動(dòng)化的階段,在不同的系統(tǒng)上部署針對(duì)不同對(duì)象的腳本來(lái)收集處理運(yùn)維數(shù)據(jù);

(3)IT運(yùn)維平臺(tái)整合自動(dòng)化的階段,平臺(tái)實(shí)現(xiàn)IT基礎(chǔ)架構(gòu)的半自動(dòng)化運(yùn)維。

總結(jié)以上歷史階段的發(fā)展過(guò)程,運(yùn)維自動(dòng)化的最初目的是為了提高效率和準(zhǔn)確率的基礎(chǔ)之上減少人力成本投入。運(yùn)維具體工作內(nèi)容包括:日常監(jiān)控任務(wù)中的日志配置、數(shù)據(jù)采集、報(bào)警過(guò)濾等;日常運(yùn)維任務(wù)當(dāng)中的腳本執(zhí)行、系統(tǒng)安裝、配置備份、配置檢查、配置變更、補(bǔ)丁分發(fā)等;作業(yè)調(diào)度中的應(yīng)用發(fā)布流程、應(yīng)用部署流程、變更流程、故障處理、災(zāi)備切換、資源交付等。那么,要實(shí)現(xiàn)對(duì)以上所有工作內(nèi)容的自動(dòng)化整合需要經(jīng)歷以下三個(gè)步驟的建設(shè):

QQ截圖20211119092508.png

首先,實(shí)現(xiàn)標(biāo)準(zhǔn)化是實(shí)現(xiàn)自動(dòng)化的前提條件,因?yàn)樽詣?dòng)化的工作流是必須要在標(biāo)準(zhǔn)化的基礎(chǔ)之上才能實(shí)現(xiàn)識(shí)別、判斷、處理等相關(guān)動(dòng)作。標(biāo)準(zhǔn)化又包括資源定義的標(biāo)準(zhǔn)化、工作流程的標(biāo)準(zhǔn)化以及數(shù)據(jù)的標(biāo)準(zhǔn)化;然后,需要選擇數(shù)據(jù)采集的工具和方式,因?yàn)樗械淖詣?dòng)化動(dòng)作都是基于數(shù)據(jù)判斷的基礎(chǔ)上采取的后續(xù)步驟;最后需要對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行加工處理以及最終的分析和決策,這里面包括常規(guī)性的決策、為后續(xù)采取動(dòng)作需做的評(píng)估和預(yù)警、需要根據(jù)數(shù)據(jù)變化及時(shí)做出的動(dòng)態(tài)調(diào)整等。

3.數(shù)據(jù)標(biāo)準(zhǔn)化體系建設(shè)

3.1資源標(biāo)準(zhǔn)化

所謂資源的標(biāo)準(zhǔn)化,涉及到的資源主要包括設(shè)備、系統(tǒng)、軟件等三類對(duì)象資源。

針對(duì)物理設(shè)備的標(biāo)準(zhǔn)化,首先,我們需要做到對(duì)物理設(shè)備的資產(chǎn)定義標(biāo)準(zhǔn)化。例如:對(duì)設(shè)備的命名、地址、位置、配置、參數(shù)、管理等一系列屬性信息的定義需要有統(tǒng)一規(guī)劃標(biāo)準(zhǔn)。不一定是一個(gè)標(biāo)準(zhǔn),但是一定要建立一系列標(biāo)準(zhǔn)模板。其次,我們需要對(duì)物理設(shè)備的規(guī)劃使用設(shè)置標(biāo)準(zhǔn)。例如:設(shè)備的網(wǎng)絡(luò)配置、遠(yuǎn)程控制、存儲(chǔ)配置等方面的配置使用標(biāo)準(zhǔn)。最后,我們需要對(duì)設(shè)備使用設(shè)置運(yùn)維管理標(biāo)準(zhǔn)。例如:設(shè)備當(dāng)中的硬件環(huán)境的報(bào)警閥值規(guī)則定義。

針對(duì)系統(tǒng)層面的標(biāo)準(zhǔn)化,首先,與物理設(shè)備類似的資產(chǎn)定義標(biāo)準(zhǔn)化。例如:操作系統(tǒng)的主機(jī)名稱、類型、版本等相關(guān)資產(chǎn)屬性信息的標(biāo)準(zhǔn)化定義。其次,關(guān)于系統(tǒng)的標(biāo)準(zhǔn)化配置管理。例如:操作系統(tǒng)的初始化配置(地址、網(wǎng)關(guān)、掩碼、DNS、NTP、內(nèi)核參數(shù)調(diào)優(yōu)、日志、存儲(chǔ)使用、Agent)。最后,我們需要對(duì)操作系統(tǒng)設(shè)置運(yùn)維監(jiān)控標(biāo)準(zhǔn)。例如:CPU使用率、內(nèi)存使用率、硬盤(pán)使用率、IO延時(shí)、網(wǎng)絡(luò)狀況、進(jìn)程指標(biāo)、運(yùn)行時(shí)間等。一方面需要確定運(yùn)維監(jiān)控的指標(biāo),另外一方面需要確定每一個(gè)指標(biāo)或者指標(biāo)組合的閥值預(yù)警判定規(guī)則。

針對(duì)軟件(主要是指系統(tǒng)上運(yùn)行的數(shù)據(jù)庫(kù)及應(yīng)用中間件)層面的標(biāo)準(zhǔn)化,首先,我們需要對(duì)應(yīng)用中間件的使用進(jìn)行標(biāo)準(zhǔn)化管理。例如:數(shù)據(jù)庫(kù)的類型和版本、同類中間件的類型和版本。其次,需要對(duì)所有軟件的初始化以及配置使用進(jìn)行標(biāo)準(zhǔn)化管理。例如:軟件安裝配置規(guī)范、配置文件規(guī)范、配置腳本規(guī)范、日志收集規(guī)范、端口監(jiān)聽(tīng)規(guī)范等。最后,我們同樣需要對(duì)軟件的運(yùn)維監(jiān)控設(shè)定標(biāo)準(zhǔn)。也就是需要監(jiān)控的軟件服務(wù)指標(biāo)體系,以此來(lái)判斷軟件提供的服務(wù)的正常與否以及性能如何。

3.2流程標(biāo)準(zhǔn)化

所謂流程標(biāo)準(zhǔn)化就是指在數(shù)據(jù)中心運(yùn)維管理過(guò)程當(dāng)中涉及到的日常工作流程的標(biāo)準(zhǔn)化管理。如果沒(méi)有工作流程的標(biāo)準(zhǔn)化規(guī)范,那么所有的運(yùn)維工作就會(huì)變成隨機(jī)性流程,這樣的流程是沒(méi)有辦法利用腳本或者軟件工具來(lái)實(shí)現(xiàn)自動(dòng)化的。具體說(shuō)來(lái),數(shù)據(jù)中心運(yùn)維工作流程的標(biāo)準(zhǔn)化需要做到以下幾個(gè)方面:

(1)資源管理流程:包括軟硬件資源的申請(qǐng)、審批、提供、銷毀等;

(2)資源初始化流程:包括操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件、應(yīng)用等方面的初始化配置工作;

(3)資源動(dòng)態(tài)管理流程:包括資源在使用過(guò)程中根據(jù)監(jiān)控?cái)?shù)據(jù)進(jìn)行動(dòng)態(tài)調(diào)整的各類流程;

(4)事件處理流程:包括預(yù)警、報(bào)警、常規(guī)事件、常規(guī)故障的標(biāo)準(zhǔn)處理流程;

(5)監(jiān)控管理流程:包括監(jiān)控?cái)?shù)據(jù)收集、加工、報(bào)送、分析、處理等各環(huán)節(jié)的處理方法及步驟;

(6)應(yīng)急處理流程:預(yù)定義的系列應(yīng)急處理流程,例如:流量限制、容災(zāi)切換。

3.3數(shù)據(jù)標(biāo)準(zhǔn)化

很多做運(yùn)維平臺(tái)的廠家到了客戶現(xiàn)場(chǎng)進(jìn)行調(diào)研的時(shí)候都會(huì)發(fā)現(xiàn)一個(gè)非常頭痛的問(wèn)題??蛻魧?shí)際環(huán)境當(dāng)中的軟件、硬件、應(yīng)用等各方面的日志數(shù)據(jù)會(huì)呈現(xiàn)出很多形態(tài)。既有加密日志(日志表現(xiàn)形式為代碼,需要根據(jù)代碼查詢?nèi)罩窘忉屨f(shuō)明才能定位問(wèn)題的日志)也有非加密日志;既有字段形式表示的也有不加任何分割的文字串表示的,而且內(nèi)容表示的方式也是各有千秋;既有文本文件也有壓縮包或者其他非文本文件形式;既有保存在數(shù)據(jù)庫(kù)的又有保存在目錄當(dāng)中的。總而言之,運(yùn)維數(shù)據(jù)從形態(tài)、內(nèi)容、載體等各個(gè)方面都沒(méi)有經(jīng)過(guò)標(biāo)準(zhǔn)化規(guī)范,最終導(dǎo)致運(yùn)維平臺(tái)可做的工作非常有限。

要實(shí)現(xiàn)運(yùn)維自動(dòng)化,數(shù)據(jù)是前提條件,沒(méi)有數(shù)據(jù)的支撐就不會(huì)有后續(xù)的預(yù)警、報(bào)警以及與之相匹配的自動(dòng)化運(yùn)維處理過(guò)程。因此在系統(tǒng)、中間件、應(yīng)用上線之前的設(shè)計(jì)階段,IT運(yùn)維的標(biāo)準(zhǔn)化規(guī)范就應(yīng)該輸入到規(guī)劃設(shè)計(jì)當(dāng)中。

4.數(shù)據(jù)收集手段和工具的使用

4.1腳本工具

很多人覺(jué)得談腳本有點(diǎn)落伍,應(yīng)該談一些高大上的自動(dòng)化運(yùn)維集成工具或者產(chǎn)品。其實(shí)看到本質(zhì)上,任何自動(dòng)化運(yùn)維平臺(tái)底層都是靠一些腳本去完成具體工作的,只不過(guò)是選取的腳本根據(jù)不同的運(yùn)維任務(wù)在類型、定義、執(zhí)行方式等方面會(huì)有所區(qū)別。拋開(kāi)上層管理集成平臺(tái),聚焦到腳本本身來(lái)看的話,腳本工具在自動(dòng)化運(yùn)維過(guò)程當(dāng)中應(yīng)該在以下幾個(gè)方面發(fā)揮作用:

(1)數(shù)據(jù)收集:從很多企業(yè)的運(yùn)維來(lái)看,大家都會(huì)部署一些腳本來(lái)收集硬件、系統(tǒng)、軟件等各維度的運(yùn)維信息,有些是基于實(shí)時(shí)執(zhí)行結(jié)果的收集,有些是基于一定周期內(nèi)的日志文件內(nèi)容;

(2)數(shù)據(jù)加工:面對(duì)大量的原始日志信息,相信依靠人力去完成價(jià)值信息的提煉是比較耗費(fèi)時(shí)間的,這個(gè)時(shí)候就需要腳本基于已經(jīng)收集的原始日志信息進(jìn)行重復(fù)加工,最終提煉價(jià)值信息。

(3)任務(wù)流程處理:所謂任務(wù)處理就是要根據(jù)預(yù)定義的一些需求輸入數(shù)據(jù),串聯(lián)或者并聯(lián)一些工作步驟,從而完成一個(gè)完整的運(yùn)維任務(wù)工作流程,例如:系統(tǒng)初始化、軟件安裝、資源擴(kuò)展;

4.2工具使用

首先,多數(shù)實(shí)現(xiàn)運(yùn)維自動(dòng)化的思維是選擇一個(gè)大而全的產(chǎn)品,然后讓這個(gè)產(chǎn)品滲透到運(yùn)維工作的各個(gè)維度,從而實(shí)現(xiàn)整體的自動(dòng)化。但是結(jié)果往往差強(qiáng)人意,你選擇的產(chǎn)品最終沒(méi)有辦法與你現(xiàn)有的環(huán)境非常融洽的相處,所謂的自動(dòng)化只是一個(gè)局部而已。所以,筆者認(rèn)為真正落地的思路是先選擇設(shè)計(jì)好運(yùn)維工作每一個(gè)角落的腳本工具,然后再考慮上層的管理整合。

其次,當(dāng)我們?cè)诰劢褂谀骋粋€(gè)數(shù)據(jù)采集環(huán)節(jié)或者某一個(gè)運(yùn)維工作任務(wù)的工具的時(shí)候,要考慮到工具本身的擴(kuò)展性以及交互性。比如Shell和Python,大多數(shù)數(shù)據(jù)采集的工具都是用Shell實(shí)現(xiàn)的,無(wú)論從效率上還是從與系統(tǒng)的融洽度角度來(lái)考慮,它都是最佳選擇。但是某些需要人機(jī)交互的自動(dòng)化任務(wù)就只能靠Python了,比如輸入登錄信息這個(gè)操作。

再次,從運(yùn)維管理整體的集成角度,我們需要考慮到頂層運(yùn)維工作和底層運(yùn)維任務(wù)的整合邏輯。完整的運(yùn)維工作解耦分解之后就是一個(gè)個(gè)聚焦到有限動(dòng)作的運(yùn)維任務(wù),但是這些運(yùn)維任務(wù)要組成一個(gè)完整的運(yùn)維工作流是需要嚴(yán)密的判斷邏輯和控制機(jī)制的。

5.運(yùn)維數(shù)據(jù)分析及自動(dòng)化決策

運(yùn)維自動(dòng)化與監(jiān)控自動(dòng)化最大的區(qū)別就在于是否有后續(xù)的動(dòng)作。當(dāng)我們把所有的運(yùn)維數(shù)據(jù)都采集完成并且按照既定邏輯進(jìn)行加工處理之后,就下來(lái)就是價(jià)值信息的提取和有效動(dòng)作的實(shí)施。

什么是價(jià)值信息的提取呢?舉個(gè)例子:比如我們想看存儲(chǔ)設(shè)備的負(fù)載是否正常,是否需要調(diào)整資源配置?傳統(tǒng)模式下,工程師需要收集存儲(chǔ)上的各種性能日志(端口性能、存儲(chǔ)控制器CPU及緩存、存儲(chǔ)卷的IO性能、吞吐量等等),而且是需要收集一定周期內(nèi)的均值和峰值數(shù)據(jù)。然后綜合判斷之后,決策需要調(diào)整資源或者無(wú)需調(diào)整。如果是自動(dòng)化運(yùn)維,我們就需要把工程師如何分析和判斷的邏輯以及經(jīng)驗(yàn)設(shè)計(jì)到腳本當(dāng)中。邏輯可以提煉成算法,經(jīng)驗(yàn)可以提煉為歷史數(shù)據(jù)的概率算法。

什么是有效動(dòng)作的實(shí)施呢?舉個(gè)例子:比如大多數(shù)金融企業(yè)都會(huì)面臨的購(gòu)物刷卡的特殊節(jié)日或者時(shí)間段,如果是可預(yù)知的情況,很多相關(guān)的工程師會(huì)提前值守,應(yīng)用工程師實(shí)時(shí)觀察應(yīng)用處理業(yè)務(wù)的情況,IT工程師觀察計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等各類資源的使用情況,一旦監(jiān)控出現(xiàn)異常情況,IT工程師會(huì)把提前準(zhǔn)備好的相關(guān)服務(wù)器資源安裝配置好應(yīng)用之后丟進(jìn)資源池,這是通常的應(yīng)急處理方法。如果是自動(dòng)化運(yùn)維,我們就需要把工程師對(duì)應(yīng)用、系統(tǒng)、網(wǎng)絡(luò)等各方面實(shí)時(shí)監(jiān)控到的信息進(jìn)行判斷的邏輯進(jìn)行標(biāo)準(zhǔn)固化,同時(shí)需要將準(zhǔn)備資源、初始化資源、分配資源以及對(duì)外提供服務(wù)的一系列操作進(jìn)行腳本化。

6.結(jié)語(yǔ)

總結(jié)而言,運(yùn)維自動(dòng)化是企業(yè)IT運(yùn)維追求的重要目標(biāo)。實(shí)現(xiàn)運(yùn)維自動(dòng)化的前提條件在于標(biāo)準(zhǔn)化,保障運(yùn)維自動(dòng)化質(zhì)量的關(guān)鍵在于運(yùn)維數(shù)據(jù)的利用,落地運(yùn)維自動(dòng)化項(xiàng)目的思路在于從下往上的設(shè)計(jì)思路。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論