加入收藏 設(shè)為首頁(yè) 聯(lián)系我們 歡迎光臨本網(wǎng)站!
郵箱:support@zcecs.com
地址:北京市西城區(qū)南濱河路27號(hào)貴都國(guó)際中心A座1111室
運(yùn)維是數(shù)據(jù)中心生命周期中持續(xù)時(shí)間最長(zhǎng)的一部分,隨著數(shù)據(jù)中心建設(shè)規(guī)模和復(fù)雜度的增加,運(yùn)維的工作變得更加繁瑣。在運(yùn)維的工作中,有相當(dāng)大部分工作都是重復(fù)性的指令行操作。所以,不少的運(yùn)維工程師研究出不少提升工作效率方法,減少人力成本,這就是腳本。將一些重復(fù)性的、邏輯關(guān)系明確的操作工作通過(guò)腳本下發(fā)來(lái)完成,這樣可節(jié)省很大一部分人力,同時(shí)還能避免人為操作的失誤,這就是腳本的力量。在運(yùn)維的工作中,腳本正扮演者越來(lái)越重要的角色。
腳本語(yǔ)言代表了簡(jiǎn)單,快速,易重用的開(kāi)發(fā)。不需要編譯可以直接執(zhí)行。不需要管理內(nèi)存。腳本語(yǔ)言易于理解,越往后的開(kāi)發(fā)將越來(lái)越簡(jiǎn)單,復(fù)雜的東西將被丟掉。開(kāi)發(fā)將越來(lái)越能利于普通人使用,這是一種必然的發(fā)展趨勢(shì)。運(yùn)維工程師經(jīng)常重復(fù)性做一個(gè)變更,他就會(huì)想寫(xiě)個(gè)腳本自動(dòng)完成,久而久之輸出越來(lái)越多個(gè)執(zhí)行腳本,當(dāng)要進(jìn)行變更時(shí),找到對(duì)應(yīng)的變更腳本自動(dòng)執(zhí)行即可,不僅效率極高,而且不會(huì)變錯(cuò)。當(dāng)然,數(shù)據(jù)中心是不斷更新變化的,腳本也要隨之更新,不然執(zhí)行起來(lái)就會(huì)犯錯(cuò),一旦錯(cuò)誤的腳本執(zhí)行起來(lái),結(jié)果就不好預(yù)測(cè)了,往往比人工破壞力更大,所以設(shè)計(jì)腳本的人一定要對(duì)數(shù)據(jù)中心系統(tǒng)相當(dāng)了解,或者將腳本已經(jīng)在模擬測(cè)試環(huán)境中反復(fù)驗(yàn)證沒(méi)問(wèn)題后,才能在承載業(yè)務(wù)的數(shù)據(jù)中心系統(tǒng)上運(yùn)行。
腳本的種類(lèi)也多,數(shù)據(jù)中心里常用的腳本有:監(jiān)控腳本(監(jiān)控運(yùn)行設(shè)備的各種狀態(tài))、備份腳本(備份數(shù)據(jù)庫(kù)、設(shè)備配置)、部署腳本(游戲環(huán)境安裝腳本、設(shè)備新業(yè)務(wù)部署、系統(tǒng)初始化腳本)、業(yè)務(wù)腳本(游戲日志合并腳本、查詢數(shù)據(jù)庫(kù)腳本)等等,不同種類(lèi)的腳本可以使用相同的腳本語(yǔ)言,相同種類(lèi)的腳本也可以使用不同種類(lèi)的腳本語(yǔ)言,這完全取決于運(yùn)維人員的技能水平,使用哪種腳本語(yǔ)言得心應(yīng)手。一個(gè)數(shù)據(jù)中心規(guī)模越大,承載的業(yè)務(wù)種類(lèi)越多,腳本也就越復(fù)雜。不同的數(shù)據(jù)中心,使用的腳本差異會(huì)相當(dāng)大,相互之間可借鑒性不大,所以一個(gè)數(shù)據(jù)中心的腳本基本都是一部數(shù)據(jù)中心成長(zhǎng)史的縮影,腳本的種類(lèi)和內(nèi)容會(huì)隨著數(shù)據(jù)中心的運(yùn)行不斷增加,不斷完善,是數(shù)據(jù)中心運(yùn)維最為寶貴的經(jīng)驗(yàn)。
腳本語(yǔ)言的涵蓋范圍也較廣,我們知道服務(wù)器和網(wǎng)絡(luò)設(shè)備基本都是命令行交互方式操作,這種方式執(zhí)行效率高,受到廣泛使用,這種方式為腳本的部署提供了天然土壤。早期的腳本有命令行復(fù)制的方式,將需要執(zhí)行的腳本命令放在記事本中,當(dāng)需要執(zhí)行時(shí),將這些腳本命令直接到設(shè)備上拷貝粘貼執(zhí)行即可,直到現(xiàn)在很多的網(wǎng)絡(luò)變更方案,還是采用這種傳統(tǒng)方式執(zhí)行。一旦發(fā)現(xiàn)問(wèn)題,可以立即停止拷貝,進(jìn)行命令刪除操作進(jìn)行回退。在監(jiān)控中,我們常用TCL腳本或Shell腳本采集一些設(shè)備的運(yùn)行狀態(tài)和信息,將這些信息收集起來(lái)進(jìn)行顯示和分析,一旦出現(xiàn)異?梢约皶r(shí)告警,或者故障隔離。這類(lèi)腳本往往有強(qiáng)烈的先后依賴關(guān)系,對(duì)顯示信息也有判斷。比如:通過(guò)腳本采集所有運(yùn)行設(shè)備的CPU占用率,這樣就要周期性地通過(guò)腳本登錄到所有設(shè)備,收集CPU占用率的信息進(jìn)行紀(jì)錄,同時(shí)將采集的數(shù)據(jù)與預(yù)先設(shè)定好的閾值進(jìn)行對(duì)比,如果有不符合的給出警示。通過(guò)腳本可以將數(shù)據(jù)中心里的所有運(yùn)行指標(biāo)監(jiān)控起來(lái),這就是自動(dòng)化運(yùn)維的重要部分。到了如今,perl,python,ruby,javascript等腳本語(yǔ)言開(kāi)始走入人們的視線,這些腳本語(yǔ)言可以對(duì)數(shù)據(jù)中心設(shè)備進(jìn)行二次開(kāi)發(fā)。這些腳本語(yǔ)言都是基于Linux實(shí)現(xiàn),Shell腳本是實(shí)現(xiàn)Linux系統(tǒng)自動(dòng)管理以及自動(dòng)化運(yùn)維所必備的工具,Linux底層以及基礎(chǔ)應(yīng)用軟件的核心大都涉及Linux腳本內(nèi)容。Perl比Shell強(qiáng)大很多,在2010年以前很流行,但它的語(yǔ)法靈活、復(fù)雜,不容易讀,團(tuán)隊(duì)協(xié)作困難,使得這個(gè)腳本語(yǔ)言早早消亡。Python是近幾年非常流行的語(yǔ)言,它不但可以用于腳本程序開(kāi)發(fā),也可以實(shí)現(xiàn)Web程序開(kāi)發(fā),要知道知乎、豆瓣、YouTube都是用Python開(kāi)發(fā),Python語(yǔ)言優(yōu)勢(shì)在于開(kāi)發(fā)復(fù)雜的運(yùn)維軟件、Web頁(yè)面管理工具和Web業(yè)務(wù)開(kāi)發(fā),對(duì)于一鍵自動(dòng)化安裝、優(yōu)化,監(jiān)控報(bào)警腳本,軟件啟動(dòng)腳本,日志分析腳本等運(yùn)維監(jiān)控類(lèi)的功能,使用Shell腳本更加順手,開(kāi)發(fā)會(huì)更簡(jiǎn)單、更快速。Ruby是日本開(kāi)發(fā)的,還不錯(cuò),風(fēng)格跟Python有點(diǎn)像,因?yàn)閞uby onrails出了名,國(guó)外用的比較多,國(guó)內(nèi)沒(méi)戲,Python已經(jīng)把它的想象空間都占死了。
由此可見(jiàn),從數(shù)據(jù)中心變更、擴(kuò)容、業(yè)務(wù)部署、監(jiān)控、故障恢復(fù)、二次開(kāi)發(fā)等方面都有腳本的身影,腳本質(zhì)量的高低體現(xiàn)了一個(gè)數(shù)據(jù)中心的運(yùn)維水平,是通向自動(dòng)化運(yùn)維的必要條件。我們常說(shuō)要做自動(dòng)化運(yùn)維,很多程度上要靠腳本來(lái)打天下,通過(guò)各種復(fù)雜的運(yùn)行腳本,采集運(yùn)行狀態(tài)和信息,及時(shí)發(fā)現(xiàn)隱患,出了問(wèn)題也能及時(shí)收集定位,高級(jí)的腳本可以通過(guò)采集故障時(shí)的設(shè)備信息做故障診斷,根據(jù)之前存儲(chǔ)的各種可能故障現(xiàn)場(chǎng),來(lái)執(zhí)行其對(duì)應(yīng)的已經(jīng)設(shè)計(jì)好的恢復(fù)操作腳本,從而實(shí)現(xiàn)自動(dòng)化處理故障并恢復(fù)業(yè)務(wù)的能力。在數(shù)據(jù)中心里,腳本無(wú)處不在,所有的地方都體現(xiàn)出了腳本的力量。一個(gè)數(shù)據(jù)中心運(yùn)維技術(shù)人員,只有將腳本玩好,才能成為真正的運(yùn)維專家。數(shù)據(jù)中心部署腳本的目的,就是要提升運(yùn)維生產(chǎn)力,提升運(yùn)維效率,降低人為失誤。通過(guò)腳本技術(shù),把運(yùn)維的能力沉淀到運(yùn)維的技術(shù)平臺(tái)上,讓周邊所有人和系統(tǒng)依賴腳本運(yùn)維能力,而不是依賴運(yùn)維的人。