廣州總校區(qū)切換校區(qū)
復(fù)制成功
微信號(hào):togogoi
添加微信好友, 詳細(xì)了解課程
已復(fù)制成功,如果自動(dòng)跳轉(zhuǎn)微信失敗,請(qǐng)前往微信添加好友
打開微信
圖片

行業(yè)新聞

運(yùn)維,請(qǐng)警惕腳本災(zāi)難!

發(fā)布時(shí)間: 2020-05-22

  運(yùn)維,請(qǐng)警惕腳本災(zāi)難!

  過分依賴是腳本,是運(yùn)維非標(biāo)準(zhǔn)化的體現(xiàn)!腳本災(zāi)難,就是運(yùn)維場景管理上直接依賴大量的腳本來完成事務(wù)。
  做運(yùn)維的同學(xué)都知道,腳本是一個(gè)必備技能,在每個(gè)JD的崗位中必然出現(xiàn)。在我們的日常運(yùn)維過程中,腳本發(fā)揮作用的地方也比比皆是:系統(tǒng)管理的腳本;應(yīng)用發(fā)布的腳本;網(wǎng)絡(luò)管理的腳本;存儲(chǔ)管理腳本等等,更復(fù)雜的場景也有用腳本封裝來實(shí)現(xiàn)的都有。仿佛腳本成了運(yùn)維的大殺器,特別是python語言起來之后,更是一發(fā)不可收拾。在某銀行客戶中遇到,他們運(yùn)維積累了近兩千個(gè)腳本,這真的是對(duì)的?
  今天我們過分依賴腳本作為一種最初的操作入口,對(duì)各類對(duì)象進(jìn)行操作,我形象的給他比喻為是過程編程的模式。在大部分客戶中,由于自動(dòng)化運(yùn)維平臺(tái)的缺失,腳本還處于混亂的管理之中,這種混亂表現(xiàn)在:無版本管理;無測試管理;無集中管理,還散亂在各個(gè)運(yùn)維人員手中 。這種情況下,腳本的災(zāi)難不可避免。
  隨著這兩年的自動(dòng)化運(yùn)維平臺(tái)被不斷接受,很多客戶開始接受平臺(tái)的管理模式,大家更接受了一種形態(tài)是——原子作業(yè)庫和基于原子作業(yè)之上的調(diào)度編排。運(yùn)維開始變一股腦往運(yùn)維平臺(tái)中寫原子工具,然后通過運(yùn)維工具來構(gòu)建復(fù)雜場景的運(yùn)維場景編排。這個(gè)地方尤其要注意:這種編排還是一種過程編排的模式。
  在這種模式下,大家不知道注意到一個(gè)有意思的現(xiàn)象沒?復(fù)雜的過程編排,存在大量的復(fù)雜參數(shù)傳遞,每一個(gè)工具都有入口參數(shù)和出口參數(shù)的設(shè)置,調(diào)度設(shè)置界面非常難以簡化。
  如果這么復(fù)雜,是不是設(shè)計(jì)上又是錯(cuò)的呢?那錯(cuò)的根源到底在哪兒?方式、方法或者是理念設(shè)計(jì)上就出現(xiàn)了錯(cuò)誤。在這個(gè)機(jī)制之下,出于腳本安全的需要,我們有必要強(qiáng)化幾個(gè)能力的管理:
  1.版本的管理。讓工具的修改有序進(jìn)行,可以回溯,對(duì)比等等
  2.工具的開放性管理。工具設(shè)置成公開和私有管理,確保工具使用的范圍。
  3.工具的審核管理。工具的每一次變更,必須通過審核才能入庫。
  4.工具在流程中的引用管理。調(diào)度流程是引用工具,當(dāng)工具產(chǎn)生修改,不直接對(duì)流程產(chǎn)生影響。
  最后一點(diǎn),我要把具體的做法明確一下,就是流程引用的是工具的快照,確保工具發(fā)生修改,能夠避免對(duì)流程帶來影響。就如同在AppStore中應(yīng)用更新,客戶可以收到更新的通知,但不代表系統(tǒng)給你立即更新了。尤其注意?。?!
  這個(gè)時(shí)候我想說,引起腳本災(zāi)難的核心原因:非標(biāo)準(zhǔn)化的過程管理的思維嚴(yán)重,腳本便是最快的是想工具。
  那到底如何解決?如何避免腳本依賴引起的腳本災(zāi)難?
  首先我必須得說,大量不標(biāo)準(zhǔn)的IT對(duì)象存在,我們需要接受腳本存在的合理性,而我們必須要面向未來做出一些改變。如何更有效的管理腳本?在之前講到的引入version control能力,版本化控制,還不夠。我覺得更需要引入IT對(duì)象管理的概念,把所有的方法附著到對(duì)象上,讓工具方法自動(dòng)繼承對(duì)象的屬性,簡化工具的參數(shù)管理。何為IT對(duì)象?從角色出發(fā),所有行程IT場景管理的都可以稱之為對(duì)象,比如說網(wǎng)絡(luò)管理員管理的網(wǎng)絡(luò)設(shè)備;系統(tǒng)管理員管理的OS;DBA管理的數(shù)據(jù)庫等等,是一種業(yè)務(wù)邏輯世界的理解;應(yīng)用看到的應(yīng)用系統(tǒng),應(yīng)用組件等等。

  對(duì)于任何對(duì)象,從技術(shù)的角度來設(shè)定的抽象邏輯是:

  01、對(duì)象屬性
  是一個(gè)對(duì)象的描述,和面向?qū)ο笠粯樱渲邪芏鄬傩耘c對(duì)象的關(guān)系。拿主機(jī)做例子,
  屬性維度:固定資產(chǎn)編號(hào),采購時(shí)間,過保時(shí)間;

  關(guān)系維度:負(fù)責(zé)人,網(wǎng)卡、CPU、內(nèi)存和IO

  02、對(duì)象的方法
  對(duì)象的方法就是我們平時(shí)的管理動(dòng)作或者場景,比如說主機(jī)的重啟,主機(jī)的啟動(dòng)/停止,主機(jī)的回收,主機(jī)的申請(qǐng)等等。這些動(dòng)作比如對(duì)其狀態(tài)和屬性產(chǎn)生影響。
  03、對(duì)象的狀態(tài)
  對(duì)象在服務(wù)支撐過程中,必然會(huì)產(chǎn)生一些狀態(tài)信息,是一種運(yùn)行健康狀態(tài)的表達(dá)。
  04、對(duì)象的事件
  事件是一種狀態(tài)變化產(chǎn)生的結(jié)果,比如說狀態(tài)異常產(chǎn)生的簡單事件,如告警,狀態(tài)經(jīng)過模型計(jì)算產(chǎn)生的復(fù)雜事件,比如說容量事件。當(dāng)然還有一個(gè)維度是人工操作事件。
  當(dāng)然提到了IT對(duì)象管理能力,如何降低對(duì)象復(fù)雜度的表述?這就轉(zhuǎn)換成一個(gè)IT對(duì)象標(biāo)準(zhǔn)化的課題了,是不是邏輯就簡單了。對(duì)象的標(biāo)準(zhǔn)化是運(yùn)維必須面臨的課題,必須要直面。把IT對(duì)象復(fù)雜度降低,你的管理復(fù)雜度隨之下降。
  此時(shí)對(duì)服務(wù)編排就有更高的要求了,不限于過去簡單的類流程引擎編排能力,需要把過程編排和對(duì)象編排(藍(lán)圖編排)合二為一。此時(shí)提到的藍(lán)圖編排方法,我還不提TOSCA規(guī)范,那個(gè)我依然今天對(duì)很多基礎(chǔ)設(shè)施來說要求很高,畢竟支持TOSCA的基礎(chǔ)設(shè)施也不多。請(qǐng)對(duì)你的流程編排引擎進(jìn)行升級(jí)吧,讓他支持對(duì)象編排。自定義對(duì)象管理庫,把過程編排和對(duì)象編排的混合編排能力構(gòu)建起來,從而滿足不同業(yè)務(wù)管理的需要。
  總結(jié)來說,避免腳本災(zāi)難的方式,必須從過程管理模式變成對(duì)象管理模式。以對(duì)象作為管理視角,為其構(gòu)建管理方法(或者腳本或者代碼),通過對(duì)象來收斂管理入口,避免運(yùn)維人員直面腳本泛濫。同時(shí)基于復(fù)雜的場景能力,也起到收斂工具腳本編排的作用。

上一篇: RHCA培訓(xùn)的相關(guān)課程都有哪些?

下一篇: 詳細(xì)解析虛擬化的起源和分類

<
在線咨詢 ×

您好,請(qǐng)問有什么可以幫您?我們將竭誠提供最優(yōu)質(zhì)服務(wù)!