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