“沒有折騰,就沒有故障”這句話雖糙,但卻很有道理,尤其在運(yùn)維上。據(jù)有關(guān)咨詢機(jī)構(gòu)統(tǒng)計(jì),數(shù)據(jù)中心的故障中有百分之七十是人為故障,也就是與人的活動(dòng)強(qiáng)相關(guān),可見人對(duì)于數(shù)據(jù)中心來(lái)說(shuō)是多么可怕。人為故障其中也可以分為有意的和無(wú)意的。有意的是指明知道一些操作會(huì)造成數(shù)據(jù)中心故障,仍執(zhí)意去做的,這些人往往希望通過(guò)造成數(shù)據(jù)中心運(yùn)行癱瘓,而達(dá)到不可告人的目的,這種故障占到了人為故障的80%,剩余的就是無(wú)意的。
數(shù)據(jù)中心本身是一個(gè)復(fù)雜龐大的系統(tǒng),運(yùn)維的人員不可能面面俱到都精通所有技術(shù)細(xì)節(jié),當(dāng)接觸到自己不熟悉或不了解的地方,操作易引發(fā)意想不到的結(jié)果。還有不少的設(shè)備,軟件質(zhì)量不高,反復(fù)操作下發(fā)就容易引發(fā)軟件問(wèn)題,從而造成業(yè)務(wù)中斷。這種情況在數(shù)據(jù)中心里還不少見,數(shù)據(jù)中心里設(shè)備成千上萬(wàn),數(shù)量龐大,動(dòng)一動(dòng)問(wèn)題就來(lái)了,所以運(yùn)行穩(wěn)定的數(shù)據(jù)中心不要輕易去改動(dòng),就讓它自己處于最佳狀態(tài)去運(yùn)行下去。
眾所周知,但凡遇到一些重大節(jié)日和活動(dòng),大型的數(shù)據(jù)中心都會(huì)進(jìn)行封網(wǎng),停止一切操作和活動(dòng)行為,目的就是為了減少故障發(fā)生,將人為操作風(fēng)險(xiǎn)降低,將觸發(fā)BUG的風(fēng)險(xiǎn)降低。這種方式行之有效,除了可能出現(xiàn)一些硬件故障外,幾乎很少發(fā)生其它類問(wèn)題。
我們都知道烏龜?shù)膲勖荛L(zhǎng),活上幾百年輕飄飄的,就是因?yàn)闉觚敽苌賱?dòng),移動(dòng)緩慢,這大大延長(zhǎng)了它的生存壽命。數(shù)據(jù)中心運(yùn)維也喜靜不喜動(dòng),少動(dòng)慎動(dòng),這能最大程度減少故障發(fā)生。金融銀行業(yè)的數(shù)據(jù)中心對(duì)可靠性要求很高,為了避免出故障,銀行的數(shù)據(jù)中心內(nèi)部制定了嚴(yán)格的操作制度,所有的操作都要遵守統(tǒng)一規(guī)范,任何命令的下發(fā)和變更都要經(jīng)過(guò)行里提前審核,甚至在模擬環(huán)境中驗(yàn)證過(guò)沒問(wèn)題,才開始到現(xiàn)網(wǎng)中去實(shí)施操作,銀行業(yè)的數(shù)據(jù)中心操作最為規(guī)范,使得數(shù)據(jù)中心的可靠性也最高。
不過(guò),為了快速響應(yīng)業(yè)務(wù)需求和提高資源利用率,運(yùn)維又不得不頻繁折騰,不動(dòng)基本做不到。一個(gè)數(shù)據(jù)中心可能每周晚上都有安排變更,還有設(shè)備軟件升級(jí)、配置優(yōu)化、設(shè)備替換等工作,數(shù)據(jù)中心總是有沒完沒了的變更操作,這樣不可避免地在操作過(guò)程中出現(xiàn)一些新問(wèn)題,導(dǎo)致數(shù)據(jù)中心總是無(wú)法穩(wěn)定下來(lái),業(yè)務(wù)經(jīng)常受到影響,這其實(shí)就違背了運(yùn)維祖訓(xùn)的宗旨。
數(shù)據(jù)中心里需要的技術(shù)知識(shí)太多,涵蓋多個(gè)學(xué)科幾十個(gè)門類,沒有誰(shuí)能全部掌握,完全掌握一門都很難,這時(shí)制定相應(yīng)的操作,受限知識(shí)面,總會(huì)有考慮不周的地方,一旦有漏掉就可能在操作過(guò)程中產(chǎn)生問(wèn)題。對(duì)于變更操作,任何人都沒有絕對(duì)的把握,凡事都可能有意外,就像是做手術(shù),再小的手術(shù)也是有風(fēng)險(xiǎn)的,也要家屬簽字,萬(wàn)一出了事故手術(shù)操作者能免責(zé)。
既然不能避免折騰,那就想辦法不讓折騰出問(wèn)題。
首先要分治。分治就是把風(fēng)險(xiǎn)高的和風(fēng)險(xiǎn)低的分開、重要性高的和不高的分開、簡(jiǎn)單的和復(fù)雜的分開、頻繁變動(dòng)的和不頻繁的分開。歸根到底都在做兩件事:封裝復(fù)雜度、隔離變化。運(yùn)維架構(gòu)層的分治,在業(yè)界已經(jīng)非常普遍了,比如應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器分離、交易數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)分離,生產(chǎn)環(huán)境和測(cè)試環(huán)境隔絕。數(shù)據(jù)中心是有很多小系統(tǒng)組成的,相互之間要松耦合,最好是隔離的,這樣一個(gè)小系統(tǒng)故障,影響是局部的,不會(huì)影響全局。
其次是管人。要減少人為折騰出的故障,就要加強(qiáng)對(duì)人的約束和管理。不同技術(shù)等級(jí)的人能做的操作權(quán)限是不同的,一個(gè)新手要上線操作,必須要由老工程師來(lái)指導(dǎo)。要制定詳細(xì)的人員管理規(guī)章制度,對(duì)運(yùn)維的人員形成約束力,對(duì)運(yùn)維的人員進(jìn)行考核、監(jiān)控、管理,增強(qiáng)運(yùn)維人員工作的責(zé)任心,有獎(jiǎng)有罰。制定嚴(yán)格的各項(xiàng)規(guī)章制度,一般的數(shù)據(jù)中心都需要24小時(shí)常年不間斷向外提供服務(wù),所以要給數(shù)據(jù)中心人員充分的休息時(shí)間,按時(shí)的上下班,避免長(zhǎng)時(shí)間工作、疲勞工作,減少出錯(cuò)概率。
第三是管事。當(dāng)數(shù)據(jù)中心需要變更和優(yōu)化操作時(shí),需要運(yùn)維團(tuán)隊(duì)的人員進(jìn)行整體討論,對(duì)預(yù)知的風(fēng)險(xiǎn)進(jìn)行分析,確保操作不會(huì)對(duì)運(yùn)行業(yè)務(wù)造成影響。每個(gè)變更都是整個(gè)技術(shù)團(tuán)隊(duì)的討論通過(guò)做出的決定,而不是個(gè)人的行為,這樣能將技術(shù)性人為故障降到最低。要制定好回退方案,一旦出現(xiàn)異常情況立即回退,事后將原因分析情況后再進(jìn)行二次變更。畢竟運(yùn)維的人員都不是專業(yè)搞設(shè)備的,對(duì)設(shè)備內(nèi)部處理和實(shí)現(xiàn)并不見得很清楚,重大的變更操作可以邀請(qǐng)?jiān)O(shè)備廠家的技術(shù)人員參與和支持,降低操作錯(cuò)誤的風(fēng)險(xiǎn)。每次操作都要做好充分準(zhǔn)備,必要的模擬演練、提前的業(yè)務(wù)搬移、緊急通道的準(zhǔn)備等都需要,這樣才能降低故障發(fā)生的風(fēng)險(xiǎn)。
“沒有折騰,就沒有故障”是金口良言,聽上去很有道理,實(shí)際卻很難做得到。數(shù)據(jù)中心本就是一個(gè)數(shù)據(jù)高速流動(dòng)的場(chǎng)所,業(yè)務(wù)需求時(shí)時(shí)都在變化,為了滿足業(yè)務(wù)部署和發(fā)展的需求,不讓對(duì)數(shù)據(jù)中心變更、折騰,根本就是做不到,“沒有折騰”只是一種理想的狀態(tài)罷了。不過(guò),的確是應(yīng)該最大限度地去主動(dòng)降低數(shù)據(jù)中心操作頻率,盡量少動(dòng),這樣可極大降低故障發(fā)生概率。人是數(shù)據(jù)中心活動(dòng)中的最重要因素,沒有人的參與哪里來(lái)的數(shù)據(jù)中心,而偏偏人也同時(shí)給數(shù)據(jù)中心帶來(lái)成長(zhǎng)的煩惱,人在運(yùn)維的過(guò)程中作用依然舉足輕重。作為數(shù)據(jù)中心的運(yùn)維人,要時(shí)刻牢記祖訓(xùn)。