系統(tǒng)運(yùn)維秘訣:知識與經(jīng)驗積累,協(xié)同合作(交流篇)
原創(chuàng)【51CTO精選譯文】編者按:本文是SixApart的MySQL DBA,Dormando在2008年總結(jié)的一套運(yùn)維秘訣。編者前日看到Google系統(tǒng)管理員Tom Limoncelli在Everything Sysadmin上推薦這篇文章,并表示這篇文章的內(nèi)容在今天仍然適用。閱讀之下,發(fā)現(xiàn)的確是篇難得的好文章,有大量的經(jīng)驗分享總結(jié)。現(xiàn)在51CTO系統(tǒng)頻道特將本文全文翻譯過來,當(dāng)作給各位運(yùn)維讀者們的2011新年禮物。
51CTO推薦專題:系統(tǒng)運(yùn)維秘訣
Dormando的運(yùn)維秘訣分成以下三大篇:
在之前我們已經(jīng)介紹過了技術(shù)篇的內(nèi)容,講述了有關(guān)變化、自動化、冗余、備份、監(jiān)控、日志、數(shù)據(jù)庫、可擴(kuò)展性、緩存、以及安全方面的秘訣。今天介紹的第二篇是交流篇,講述的是有關(guān)運(yùn)維的知識積累、經(jīng)驗積累、協(xié)同合作、個人成長方面的內(nèi)容。其中有些內(nèi)容不僅是站在運(yùn)維本身的角度來考慮,同時也對運(yùn)維的管理者提出了建議。
交流篇
通過多種方式來學(xué)習(xí)
◆訂閱一些RSS feed,每星期至少閱讀幾篇好文章。LWN,kerneltrap,undeadly.org。凡是相關(guān)的,或是僅僅是有點擦邊的內(nèi)容都應(yīng)該關(guān)注。
◆閱讀“達(dá)人”的博文。有時他們會投遞一些有趣的主題,并且我們還可以通過評論直接和博主進(jìn)行交流。
◆閱讀幾篇非“達(dá)人”的博文。通過他們遇到的問題,或者他們做了但沒有做好的工作,我們可以找到一些感覺。(譯注:這一點我個人深有體會。閱讀一些新手的博文,我們常??梢缘玫絾l(fā),因為我們的一些做法雖然不會出問題,但是太程式化了,每天都重復(fù)同樣的事情,我們無法進(jìn)步,而新手由于缺乏經(jīng)驗,他們會不斷地嘗試各種做法,他們遇到的問題很可能是我們沒有遇到過的,這對我們來說是一筆財富。)
◆想盡辦法認(rèn)識一些可以“痛扁”你的人。注意,一定要謙虛。
◆通過多種來源學(xué)習(xí)。通過多種方式吸收知識有助于找到最適合你的方式。
◆仔細(xì)研讀其他公司成功或失敗方面的故事??梢試L試打電話給他們的CTO,通過免費(fèi)的午餐從他們那里獲取一些有價值的建議。
嘗試各種事情
◆如果你不斷地進(jìn)行嘗試,你會發(fā)現(xiàn)你能做的事情遠(yuǎn)遠(yuǎn)超出了你的想象。以前從來沒有見到過?那就試試看。
◆盡量不做一只危險的“菜鳥”。在你有把握不會把整個房間都燒掉以前,應(yīng)該在“沙箱”中進(jìn)行嘗試。
真正地搞清楚冗余是怎么一回事
◆真正地搞清楚冗余會對哪些事情造成怎樣的影響。在什么情況下它可以發(fā)揮作用,在什么情況下它無法發(fā)揮作用。
◆嘗試破壞你的系統(tǒng)。你可以在測試實驗室中嘗試,有時也可以在生產(chǎn)系統(tǒng)中這樣做。了解一下當(dāng)你處于受限狀態(tài)中的時候可以做什么。比如,拔掉電源,抽出網(wǎng)卡,殺死進(jìn)程,拔掉幾根內(nèi)存,抽掉硬盤,拔掉網(wǎng)線。
◆在冗余存在的情況下嘗試替換和升級系統(tǒng)。
真正地理解可擴(kuò)展性
◆關(guān)于如何開發(fā)出可擴(kuò)展的系統(tǒng),有很多的資料可以參考。雖然你不用自己編寫一個這樣的系統(tǒng),但是你要盡量搞清楚這方面的理論知識。
◆學(xué)習(xí)虛擬化。創(chuàng)建幾個虛擬機(jī),然后嘗試著擺弄一下針對多臺機(jī)器的應(yīng)用程序。在本地的不同的端口上運(yùn)行多個實例。
◆通常,運(yùn)維人員要做一些系統(tǒng)承載量方面的計劃。如果你不清楚應(yīng)該把什么資源應(yīng)該添加到哪里,你就不會知道應(yīng)該添加些什么。
成為一個能夠解決問題的超級明星
◆問題忽然發(fā)生,而時間是寶貴的。你必須要有自己的知識儲備,并高效的使用它們。
◆經(jīng)常練習(xí)著解決問題。挑選出一個可以正常工作的***頁面,然后試著跟蹤一下它是如何工作的。
◆strace, ltrace, lsof, logs
◆搞清楚load != load(編者注:此處理解為load參數(shù)不等同于真正的系統(tǒng)負(fù)載情況)。主機(jī)運(yùn)行情況的所有信息都需要查看。
◆熟悉IO系統(tǒng)相關(guān)的工具。“不可思議”的性能問題通常都是由于你的RAID或SAN配置出了什么問題。
◆記錄文檔。Checklist,解決問題的技巧,構(gòu)建工具等。
◆構(gòu)建更多的工具。不只是為了你自己,也是為了其他人。你也可以給現(xiàn)有的工具添加一些功能。
和IT人員一起工作
◆信不信由你,運(yùn)維人員和IT人員之間存在交集。
◆運(yùn)維人員必須要為服務(wù)器維護(hù)高帶寬的網(wǎng)絡(luò)訪問。IT人員必須要做同樣的事情,只是他們的服務(wù)對象是人。IT人員也往往是運(yùn)維人員進(jìn)入數(shù)據(jù)中心的“橋梁”。在這一點上,大家在一起工作是很有實際意義的。
◆彼此的分工要明確。IT人員應(yīng)該負(fù)責(zé)管理郵件,而運(yùn)維人員應(yīng)該負(fù)責(zé)管理開發(fā)環(huán)境的服務(wù)器。不要插手職責(zé)之外的事情,盡***的努力把你自己的事情做好。
◆不要疏遠(yuǎn)他人。Mac是流行的,Linux也(慢慢地)獲得了一些市場份額。信不信由你,強(qiáng)迫大家都使用微軟的生產(chǎn)軟件可能會對你造成不好的影響。實際上有許多替代品,你可以試試看。在你的公司中,很可能熟悉Google應(yīng)用的人比熟悉Outlook的人要多。
◆盡可能的讓大家覺得Unix并不難用,畢竟這是他們要支持的系統(tǒng),你肯定希望他們對Unix更加熟悉一些。當(dāng)然,除非你家里是賣Windows的。
和開發(fā)人員一起工作
◆你們都為同一個產(chǎn)品工作,你們的目的也是一致的。試著多配合一下。
◆一起開策略會議并不等于在一起工作。
◆開發(fā)人員更了解代碼資源,運(yùn)維人員更了解硬件和部署。把這一切都記在心里,你可以讓一些事情變得更高效。
◆交叉培訓(xùn)。傳播雙方使用和設(shè)計工具的心得,這可以提高工具的可管理性和靈活性。
◆注意不要過多地要求對方。這不是“我們”VS“他們”。每一個人都是有人權(quán)的。每一個人都應(yīng)該盡可能地為公司多做貢獻(xiàn),而不是為了他們自己。
◆如果大家相處的很融洽,就可以從容地應(yīng)對各種緊急事件了。
和其他領(lǐng)域的運(yùn)維一起工作
◆每個領(lǐng)域的運(yùn)維都有他們自己的專長。網(wǎng)絡(luò),數(shù)據(jù)庫,OS。不要忘記彼此多交流!
◆一味地墨守陳規(guī)是消極的,令人厭煩的。讓你的運(yùn)維們重復(fù)的做相同的工作可以很快的增加他們的流失率。要尊重系統(tǒng)運(yùn)維們在網(wǎng)絡(luò)運(yùn)維們的背后觀察學(xué)習(xí)的機(jī)會。
◆時刻記得給人們嘗試,學(xué)習(xí)和成長的機(jī)會。
◆注意別給你***秀的運(yùn)維安排了太多的活兒。你想要用的運(yùn)維是那種有能力給自己找出空閑時間的人。
◆渾水摸魚者(編者注:原文為bad eggs,直譯為壞蛋)。對待他們要足夠強(qiáng)硬。大多數(shù)人在幫助之下是可以完成任務(wù)的,但是他們必須要學(xué)會獨(dú)立。
【51CTO.com譯稿,轉(zhuǎn)載請注明原文作譯者和出處?!?/p>
【編輯推薦】