監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

高手親歷:遠(yuǎn)離培訓(xùn)機(jī)構(gòu)才能做好網(wǎng)絡(luò)運(yùn)維

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

【編者按】本文作者老曹,在車聯(lián)網(wǎng)、互聯(lián)網(wǎng)、通訊等行業(yè)都有豐富的運(yùn)維工作經(jīng)驗(yàn),在運(yùn)維自動(dòng)化熱潮如火如荼之時(shí),他幽幽的說(shuō)了這句話:“如果你入職第一個(gè)月就被要求設(shè)計(jì)部署自動(dòng)化方案,那只能證明這個(gè)公司確實(shí)沒(méi)有運(yùn)維人才,且這個(gè)公司很閑其實(shí)不需要運(yùn)維。”

早在2010年,老曹就開(kāi)始了puppet運(yùn)維自動(dòng)化之旅,但他逐漸了解到運(yùn)維自動(dòng)化是一個(gè)很雞肋的技能,就像屠龍之術(shù)一樣,對(duì)大部分人來(lái)說(shuō)學(xué)會(huì)了很炫的技能,但是無(wú)龍可屠?,F(xiàn)在的自動(dòng)化運(yùn)維都有很大的忽悠成分,大公司請(qǐng)個(gè)外來(lái)戶搞自動(dòng)化幾乎不太可能,小公司就那么兩臺(tái)機(jī)器,做運(yùn)維自動(dòng)化更是浪費(fèi)人力。老曹希望做運(yùn)維的小伙伴們不要沉迷于自動(dòng)化培訓(xùn)的熱潮上,而是把更多精力用在技術(shù)浪潮上——只有這樣才能真的提高競(jìng)爭(zhēng)力,故而寫下了此文,給大家做個(gè)參考,純屬個(gè)人建議,歡迎拍磚。

運(yùn)維自動(dòng)化是2010年開(kāi)始炒得很熱的一個(gè)概念,也讓很多工程師、用人單位瞎激動(dòng)了很久,我也跟風(fēng)學(xué)過(guò)puppet和python,求職雙方也經(jīng)常在面試時(shí)花大量時(shí)間談運(yùn)維自動(dòng)化。

但冷靜下來(lái)想想,所謂自動(dòng)化,只是讓培訓(xùn)機(jī)構(gòu)賺錢的噱頭而已。

一句話概括運(yùn)維自動(dòng)化

單說(shuō)“運(yùn)維自動(dòng)化”幾個(gè)字太抽象容易被主觀塞進(jìn)去很多概念,上百科搜索到上網(wǎng)行為運(yùn)維自動(dòng)化的介紹又太詳細(xì)、大帽子太多。

如果把運(yùn)維自動(dòng)化在一句話說(shuō)清楚,比較官派的說(shuō)法就是:“運(yùn)維自動(dòng)化就是在企業(yè)業(yè)務(wù)越來(lái)越復(fù)雜、對(duì)上網(wǎng)行為人員要求越來(lái)越高……balabalabla……的前提下,靠人工已經(jīng)無(wú)法滿足運(yùn)維工作的需求,只能靠自動(dòng)化技術(shù)來(lái)解決這一問(wèn)題。”

如果用比較粗糙的說(shuō)法就是“活多人少的情況下,運(yùn)維不想靠堆人力去解決繁瑣的問(wèn)題,只能靠運(yùn)維自動(dòng)化來(lái)給自己減負(fù)。”

運(yùn)維自動(dòng)化理論與現(xiàn)實(shí)相悖

粗看這些理論挺有道理,但仔細(xì)分析根本不是這么回事。首先,我們真的忙了嗎?

我認(rèn)為運(yùn)維的工作量并沒(méi)有隨著企業(yè)需求越來(lái)越復(fù)雜而變大,就算變大也不是靠自動(dòng)化能解決的體力活。

運(yùn)維自動(dòng)化是給運(yùn)維用的,請(qǐng)各位運(yùn)維想想,我們的日常工作,這些年來(lái)有太大變化嗎?

初級(jí)運(yùn)維大部分時(shí)間在做上線和監(jiān)控,高級(jí)運(yùn)維在改結(jié)構(gòu)修bug。對(duì)于那些重復(fù)性的工作,云計(jì)算供應(yīng)商能比你做的更好,云主機(jī)、云監(jiān)控、云RDS、云存儲(chǔ)等等服務(wù)都是在給運(yùn)維減負(fù)。

企業(yè)業(yè)務(wù)需求越來(lái)越復(fù)雜是真的,具體來(lái)說(shuō)是技術(shù)進(jìn)步企業(yè)要求越來(lái)越刁鉆了。數(shù)據(jù)庫(kù)要求主從實(shí)時(shí)同步,存儲(chǔ)不能用NFS要用分布式,前端業(yè)務(wù)要求無(wú)縫切換等等。我是不是談偏題了,這些東西跟運(yùn)維自動(dòng)化有什么關(guān)系?你意識(shí)到問(wèn)題就好,我們這些年新增的業(yè)務(wù)需求,沒(méi)多少是可以靠運(yùn)維自動(dòng)化解決的,要解決這些問(wèn)題,還要靠我們自己的腦子。

運(yùn)維自動(dòng)化=shell腳本

其實(shí)我們一直在做運(yùn)維自動(dòng)化,因?yàn)槲覀儠?huì)用shell腳本。

我們可以說(shuō)只要企業(yè)需求有變動(dòng),我們就要搭服務(wù)、搭監(jiān)控,做這些事情都要寫自動(dòng)化腳本。當(dāng)你激動(dòng)的說(shuō)到“自動(dòng)化腳本”的時(shí)候,我想問(wèn)一下,你不會(huì)寫shell腳本嗎?

搭完某個(gè)服務(wù)以后,一個(gè)有經(jīng)驗(yàn)有責(zé)任心的運(yùn)維,自然會(huì)寫好系統(tǒng)優(yōu)化腳本,復(fù)制監(jiān)控監(jiān)控模版。如果我們用puppet,用python,最后一樣脫不了指定主機(jī)名的工作。

我們完全可以用shell腳本完成各種模擬運(yùn)維操作的動(dòng)作,熟練使用shell腳本也是每個(gè)運(yùn)維的必修課,我們有必要為了一個(gè)噱頭去學(xué)習(xí)python嗎?

我曾經(jīng)看過(guò)puppet的官方文檔,他能管理的資源列出來(lái)的有“文件”“屬主屬組”“掛載”“軟件包”“服務(wù)”“-exec使用本地shell”,在我看來(lái)其實(shí)也就是“文件”和“-exec”。

在Linux shell腳本里,關(guān)于運(yùn)維有這么多命令“cp、scp、nc、ssh、rsync、svn、chmod、chown、service、/etc/init.d/”,這些命令已經(jīng)夠用了。

我用puppet的時(shí)候,只是用他頻繁監(jiān)控幾個(gè)重要的系統(tǒng)配置文件。上線的工作真正繁瑣在要把realserver從LB上摘下來(lái),且需要用人力去判斷能不能摘。

具體摘設(shè)備、傳新備老代碼、重啟java容器、回滾代碼的工作我都寫好腳本了,就這樣還因?yàn)槁楸源笠舛隽藥状胃哓?fù)載或丟步驟的情況。

如果能運(yùn)維自動(dòng)化的東西,必然能寫shell腳本搞定,如果用shell腳本搞不定的東西,“運(yùn)維自動(dòng)——掛”。

運(yùn)維自動(dòng)化≠優(yōu)化

老生常談,運(yùn)維應(yīng)該眼界高一些,不要總是忙著優(yōu)化手頭的工作,而要想手頭的工作有沒(méi)有必要。

有朋友肯定要說(shuō)我的工作不到家,上線居然還需要人力判斷,我承認(rèn)這是問(wèn)題,但這問(wèn)題在架構(gòu)不在運(yùn)維。如果上線不需要人工干預(yù),為什么不直接讓開(kāi)發(fā)執(zhí)行?甚至更進(jìn)一步,讓應(yīng)用服務(wù)器定期去svn上檢測(cè)有沒(méi)有新代碼?在測(cè)試環(huán)境我們也會(huì)用hudson和maven讓開(kāi)發(fā)自己搞,但我肯定做好一個(gè)系統(tǒng)鏡像保證他們把系統(tǒng)玩壞了也能快速恢復(fù)。

在生產(chǎn)環(huán)境里,運(yùn)維該做的不應(yīng)該是糾結(jié)一步人肉操作該用shell還是python代勞,而是說(shuō)好好去推動(dòng)一下,能不能多上幾臺(tái)服務(wù)器,能不能降低一下耦合度,不要讓我們手動(dòng)盯著上線工作了。

我現(xiàn)在的公司后臺(tái)做的不好,很多業(yè)務(wù)相關(guān)的sql修改都要開(kāi)發(fā)寫好語(yǔ)句給運(yùn)維執(zhí)行。如果這個(gè)時(shí)候我給mysql安裝個(gè)phpadmin就是本末倒置,寫個(gè)腳本能自動(dòng)傳sql過(guò)去還是本末倒置,我實(shí)際該做的是催促公司盡快做出來(lái)企業(yè)管理后臺(tái)可以讓運(yùn)營(yíng)和客服人員直接去改業(yè)務(wù)數(shù)據(jù)。

我們寫多少牛逼的python腳本,不如做一個(gè)穩(wěn)定到單機(jī)房斷電都不會(huì)宕機(jī)的架構(gòu);用好運(yùn)維自動(dòng)化很牛逼嗎?是的,就跟用好某種文本編輯器一樣牛逼。

運(yùn)維自動(dòng)化背后的利益推動(dòng)

鼓吹自動(dòng)化的大師里,很多位其實(shí)是運(yùn)維開(kāi)發(fā)兩條腿都很短的雜魚(yú)。

我曾經(jīng)看到過(guò)一個(gè)運(yùn)維自動(dòng)化的教程,作者很認(rèn)真的教我們,如何用某種自動(dòng)化工具調(diào)用本地shell,用sed命令將crontab里的ntpdata任務(wù)時(shí)間給變更了??吹竭@一段,我被他的執(zhí)著蠢哭了,所謂的自動(dòng)化居然是用ntpdate更新系統(tǒng)時(shí)間。

我也見(jiàn)過(guò)某大師寫的自動(dòng)化代碼,朋友告訴我他的python水平只值6k——連異常都不處理,我用半瓶醋的水平仔細(xì)看了一下他的源碼我真的笑出來(lái)了,每隔幾行必然能看到一個(gè)os.system(“shell命令”)。

在工作環(huán)境里,我用“tar/var/aaa/bbb/ccc/*.jpg”這類通配符匹配出來(lái)目標(biāo)文件,寫了個(gè)10行的腳本,將某高手用perl寫了100多行,但其實(shí)就是find+tar的腳本給替換掉了。

在處理數(shù)據(jù)的時(shí)候,我也寫python腳本,因?yàn)樾蔬h(yuǎn)超shell腳本。但運(yùn)維自動(dòng)化一定要用python腳本,更新文件必用puppet,對(duì)高手來(lái)說(shuō)這是風(fēng)格,對(duì)新手來(lái)說(shuō)這是跟風(fēng)。

有心的朋友可以幫忙查一下,從2010年開(kāi)始,都有哪些培訓(xùn)機(jī)構(gòu)新增了運(yùn)維自動(dòng)化課程或python運(yùn)維課程,又有哪些人靠這些技術(shù)把自己包裝成了大師。

運(yùn)維自動(dòng)化的困境

那些高端大氣上檔次的運(yùn)維自動(dòng)化教師們,永遠(yuǎn)無(wú)法回避我這兩個(gè)問(wèn)題:

1、在一個(gè)100臺(tái)機(jī)器下的小公司,搞運(yùn)維自動(dòng)化是不是在自己立項(xiàng)冒功?你寫好的運(yùn)維自動(dòng)化系統(tǒng),是不是配合著把文檔寫的很細(xì)很好了,會(huì)不會(huì)系統(tǒng)升級(jí)一下就運(yùn)維自動(dòng)掛了。

越是小公司,越容易出現(xiàn)單臺(tái)機(jī)器跑多個(gè)業(yè)務(wù)、不同機(jī)器的環(huán)境變量完全不同的情況。假設(shè)你是個(gè)技術(shù)新兵,不用自動(dòng)化只會(huì)掛一臺(tái)機(jī)器,用自動(dòng)化掛一堆機(jī)器;假設(shè)你是個(gè)技術(shù)高手,你知道其中的風(fēng)險(xiǎn)更不會(huì)盲目的信任一個(gè)腳本。

2、在500臺(tái)機(jī)器機(jī)器以上的大公司,確實(shí)很需要運(yùn)維自動(dòng)化,否則光是手動(dòng)畫網(wǎng)絡(luò)拓?fù)鋱D和加監(jiān)控就能累死人。

但在這個(gè)環(huán)境里,最重要最有含金量的是系統(tǒng)架構(gòu)的設(shè)計(jì)和演進(jìn);運(yùn)維自動(dòng)化只是減負(fù)的工作而已,哪有聰明人放著金磚不要卻要板磚的?

你覺(jué)得有沒(méi)有可能這個(gè)公司幾十個(gè)技術(shù)高手天天為上傳個(gè)js文件累的要死,就等你一個(gè)空降兵來(lái)部署自動(dòng)化系統(tǒng)解救他們的?

做運(yùn)維自動(dòng)化,必然是自己公司內(nèi)部的服務(wù)器有大量增加,增加到你覺(jué)得手動(dòng)操作很累的地步,這個(gè)時(shí)候做運(yùn)維自動(dòng)化是水到渠成的。但運(yùn)維自動(dòng)化的工作一般是企業(yè)內(nèi)部已有的運(yùn)維來(lái)推動(dòng)的,這不應(yīng)該當(dāng)作招人的理由。

運(yùn)維自動(dòng)化也不是簡(jiǎn)單的寫一些腳本或部署文件同步工具,它沒(méi)有真正成型的方案,因?yàn)檫@是要用機(jī)器模擬運(yùn)維工程師的勞動(dòng)方式。每個(gè)運(yùn)維團(tuán)隊(duì)的工作風(fēng)格都不同,生搬硬套外來(lái)的自動(dòng)化方案只會(huì)讓我們邯鄲學(xué)步舉步維艱。

如果你入職第一個(gè)月就被要求設(shè)計(jì)部署自動(dòng)化方案,那只能證明這個(gè)公司確實(shí)沒(méi)有運(yùn)維人才,且這個(gè)公司很閑其實(shí)不需要運(yùn)維。

重新審視運(yùn)維自動(dòng)化

運(yùn)維自動(dòng)化的目的,放低端點(diǎn),就是解決運(yùn)維手動(dòng)操作容易出錯(cuò)的問(wèn)題,放高端點(diǎn)是希望運(yùn)維忽略具體命令而更重視最終成果。

在低端領(lǐng)域,我們可以很自信的說(shuō),用shell腳本就是運(yùn)維自動(dòng)化;在高端領(lǐng)域,肯定已經(jīng)搭建好了自動(dòng)化環(huán)境供我們觀摩學(xué)習(xí)和修改;如果你有幸參與到大規(guī)模自動(dòng)化部署,那是確實(shí)是一次很有趣的挑戰(zhàn);在一個(gè)更高的層次上,你會(huì)發(fā)現(xiàn)諸如系統(tǒng)標(biāo)準(zhǔn)化、應(yīng)用模塊化、統(tǒng)一認(rèn)證系統(tǒng)等等更有價(jià)值但沒(méi)人炒作的技術(shù)。。運(yùn)維自動(dòng)化不用專門去學(xué)習(xí),自動(dòng)化的“大師”也不用刻意招聘。

最順手的工具就是最好的工具

上網(wǎng)行為人熱愛(ài)某個(gè)技術(shù)就應(yīng)該成為某項(xiàng)技術(shù)的主人而非信徒;我在文中多次強(qiáng)調(diào)shell腳本的可用性是因?yàn)閟hell腳本是每個(gè)運(yùn)維必須掌握的技能。

在本文中我大量引用了對(duì)時(shí)下最熱門的幾個(gè)自動(dòng)化運(yùn)維工具的一些批評(píng)案例。但這些樣例并不是用來(lái)攻擊這些技術(shù)本身。事實(shí)上我Puppet應(yīng)用QQ群是我唯一一個(gè)沒(méi)有退出的Linux技術(shù)群,而我明白自己的Python水平看復(fù)雜的代碼都費(fèi)力。只因?yàn)檫@兩個(gè)技術(shù)被野風(fēng)吹的最火,我用他們來(lái)說(shuō)明每桿大旗下都少不了盲從的人。

如果你堅(jiān)信某個(gè)技術(shù)是特別強(qiáng)悍的并對(duì)我的言論怒火中燒,請(qǐng)你想想你能用你的工具做到的事情,在我的環(huán)境里能不能提前繞過(guò),就算碰到了我能不能用shell腳本解決掉。我并不反對(duì)你推廣你的方案,但我認(rèn)為“循環(huán)調(diào)用SSH命令是一個(gè)我能接受的、可行的方案”。

我們應(yīng)該減少盲從,拿起最順手的工具去做一番事業(yè),而不是玩賞最精美的道具卻迷失了目標(biāo)。

【本文轉(zhuǎn)自51cto.com。】

【推薦閱讀】

上網(wǎng)行為運(yùn)維管理專區(qū)

從需求角度看上網(wǎng)行為運(yùn)維軟件優(yōu)缺點(diǎn)

服務(wù)器和虛擬化領(lǐng)域的四大趨勢(shì)

全面解析上網(wǎng)行為運(yùn)維管理的核心概念

網(wǎng)管軟件專區(qū)

本文來(lái)自互聯(lián)網(wǎng),僅供參考
發(fā)布:2007-04-15 10:01    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
相關(guān)軟件
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢