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