一名合格的運維工程師的歷練之路

語言: CN / TW / HK

怎麼樣才能成為一名合格的運維工程師?或者說一名合格的運維工程師到底是怎麼樣的?還有我現在到底算不算是一名合格的運維工程師呢?

我想這些問題是每個運維工程師心裡都存在的共性問題。那麼今天我就為各位運維工程師答疑解惑。

 

一、 運維工程師主要的工作到底是什麼?

運維,從字面意思來理解就是執行維護。很多人感覺做運維怎麼自己反而像個

網管一樣?天天就是重啟服務,更新一下原始碼包。其中大部分人認為,運維的

工作就是安裝一下作業系統。維護一下公司的網路,裝裝網線,修理修理列印

機等硬體裝置。為公司的網站和研發人員保駕護航,避免出現各種問題。確保

環境穩定通暢。

 

以上這些工作確實是運維工程師需要接觸到的。但是這就是運維工程師的全部工作了嗎?並不是的,這是運維工程師的一小部分簡單工作而已。其實運維工程師負責的遠比以上這些更加複雜和繁重。

保證服務的正常執行,環境的通暢,平臺架構的設計和優化,監控,異常和錯誤的及時處理,對平臺保駕護航等才是運維真正做的事情。

 

二、一名合格的運維工程師的職責

1. 應該對公司的區域網網路有一定了解,並且可以配置好交換機,防火牆和路由器等。

2. 負責伺服器的安裝、配置、維護。並且可以實時監控到系統的效能情況,遇到故障,可以及時處理並且應該儘可能的減少不必要的故障發生,從而避免對公司的業務造成無法恢復的損害。

3. 可以編寫shell指令碼和python指令碼等來實現運維自動化。

4. 排錯和調優,備份,、監控和警報,自動化、DevOps、雲服務、Docker、kubernetes、安全……

 

 

三、 怎麼樣才能成為一名合格的運維工程師?

1. Linux基礎

這個是最重要的,沒有基礎知識,你以後學習任何進階內容都會很困難。正所謂萬丈高樓平地起。所以我們不能因為基礎知識簡單,就直接越過這部分知識就直接去學習進階內容。在這裡我推薦幾本我個人認為很好的書籍。劉遄老師的《Linux就該這麼學》和《鳥哥的Linux私房菜》。這兩本書都是暢銷書籍,特別適合我們學習基礎知識和進階內容。即使我們已經掌握了Linux基礎知識,還是可以用這兩本書來查漏補缺。我個人書桌前就經常放著《Linux就該這麼學》來查漏補缺。

2. 網路和web服務

網路這裡麵包含了大量的服務。最常用的網路服務一定得會部署,比如vsftp、nfs、samba、bind、dhcp等。

Web服務包含Apache、Nginx、MySQL和Tomcat,Nginx處理靜態頁面,Tomcat處理動態頁面,實現動靜分離。必須會主從複製、效能優化、主流叢集方案:MHA、MGR等。當前NoSQL資料庫也是十分流行的,所以我們也需要會,可以學下Redis、MongoDB這兩個。

 

3. Shell指令碼程式設計進階

Shell指令碼是Linux自動化運維必須掌握的。

其中最重要的是文字處理三劍客——grep、sed和awk,Linux下文字處理就指望它們了。

學會了shell指令碼程式設計,以後做事就可以事半功倍了,可以使用shell指令碼來自動幫助我們來完成各種重複性工作。

4. 叢集和虛擬化

目前主流的有Keepalived、Heartbeat等。當NFS共享儲存支撐不過了,那我們這個時候就需要用FastDFS、MFS等主流分散式檔案系統了。KVM+OpenStack雲平臺。主流的容器技術非Docker莫屬了。我們有時候還會因為單個docker無法滿足需求,所以需要部署叢集,這個時候我們還需要學會使用Kubernetes、Swarm叢集化管理容器,來進行集中管理。

5. 效能優化

我們在日常運維中,並不能僅僅部署和維護好就感覺萬事大吉了,我們一定要儘可能的優化好我們的系統,使得系統佔用更少的資源來做更多的事情,也就是儘可能地榨取系統的資源利用情況。

6. 時刻知道自己在做什麼

這一點我個人認為是最重要的,由於一個公司的運維人員會掌握公司所有的賬戶密碼和所有系統的最高許可權。所以一個合格的運維人員要對資料和賬戶密碼有一定的安全意識。時刻知道自己的操作會影響到哪些地方。不能因為處理一個問題而清理掉一些必要資料。要時刻明白自己的每一條命令會影響哪些東西,會造成什麼樣的結果。不要只在乎操作本身,而忽略了公司的業務資料和安全性問題。也就是要為自己的操作負責到底。

 

以上就是我的經驗之談了,希望大家都能找到合適的路線,稱為真正的運維大牛!