運維工程師需要掌握的技能其實比較繁雜,因為很多公司對運維工程師的定義不太一樣,恰巧我也是做運維相關工作的,這幾年基本上一直在大型製造業和一些外包互聯網公司做運維工作。從這幾年的工作經驗接觸過的東西來談談大致需要哪些技能:
PS: 本人水平一般,沒去過什麼大廠,所以接觸的東西比較雜。不專業的地方還請大佬指點。
首先系統運維工程師的工作以實操為主,這就需要很多東西你要實際去操作去練。大致需要的技能有以下幾個:
網路技術:
常見的網路基礎知識,包括基礎架構,路由和交換,常用的路由協議,如ospf ,rip ,之類的,熟悉三層和二層交換,常見廠商的網路設備命令需要熟悉一兩家,比如思科,華為。 有條件的話可以去考個CCNP或者HCNP。
Windows server :
windows server常見的各種環境配置和管理,最基礎的比如AD ,組策略,IIS,hyper-V之類的。
linux :
linux可以說是運維工程師必備技能,你可以不回windows server,但是linux必須會,而且越精通越好,基礎的命令操作,查看日誌,監控,中間件,甚至虛擬化,docker,,k8s 技術,反正只要涉及linux會的越多越好。最好能去考個RHCA什麼的。
資料庫:
不需要太精通,會配置環境,簡答的語句查詢,調優就可以 。
腳本語言:
shell ,powershell,Python,等可以用於自動化運維的腳本語言,至少熟練運行一種。
存儲:
需要懂不同的存儲的應用場景和區別,至少熟悉一到兩家存儲的設備各種調試。
簡單的計算機軟硬體知識:
不同的公司對系統運維工程師的定義不一樣,有些公司可能只需要搞linux就可以 ,有些公司則需要身兼數職,甚至除了開發之外的活你都要管,所以helpdesk可能也是日常工作中的一環,需要會點處理電腦日常故障。
各種小型機,堡壘機,超融合設備:
這個看企業和行業,但是如果有可以解除到這些設備的機會,就抓緊機會熟悉。這家沒有下家有,有的公司招聘非常憨批,他壓根不知道技術基礎原來什麼的,只會問你用過沒用過相關設備。所有如果有可以解除到這些設備的機會,抓緊時間熟悉。
必要的甩鍋,扯皮,踢皮球技能:
不要覺得這是不負責任的表現,很多時候運維絕對是背鍋最大的冤大頭,什麼狗屁問題都往運維身上甩,系統一旦有問題,開發和產品往往第一時間會問你說是不是操作系統啊,設備啊,環境啊啥啥的出問題了。所以學會扯皮甩鍋必要的時候把自己規避在問題之外是非常重要的。
運維工程師掌握的技能是要用來去解決問題的 基於這個出發點 從日常的工作當中遇到的問題 來看運維需要掌握的技能大概有如下幾點
linux基礎
這個是基礎中的基礎 現在絕大部分 應用是跑在linux主機上的 那麼操作系統的知識你要了解了 日常的一些系統性能優化的點需要知道 基本的命令要熟悉 比如說 看系統的負載情況哪些命令可以看到 有何區別等 這個建議可以看下 鳥哥私房菜 很基礎
中間件
現在有很多的開源中間件 業務場景不一樣 使用的中間價就多 就消息隊列 就有kafka rabbitmq rocketmq 等 對於這些中間件 消息的流轉過程需要知道吧 數據是否落盤 dan掉後 重啟數據是否會丟失 也需要知道 還有tomcat zk es nacos nginx等中間件的配置 及調優
監控
監控也是運維領域一個重要的點 服務起來了 後續的維穩 關鍵還要看你的監控是否完善 是否只覆蓋了主機層面 日誌是否有配監控 關鍵的業務功能點是否監控 是否有鏈路監控 這其中涉及到了 很多開源組件的使用 是否掌握了一比如 zabbix elk pinpoint grafana influxdb等等
pythonshell
很多時候 需要一些編程能力來輔助運維的 所以也需要掌握的 很多的監控 是需要自己去寫腳本來獲取信息的 比如說 rabbitmq調用api的監控
另外有些工作也是需要腳本能力來 簡化自己的工作量的
運維日常工作 部署 排錯 調優 還有一個關鍵的點就是要有負責的精神 生產無小事兒
地鐵上寫的 有錯諒解
感興趣的 可以看下 這篇文章 介紹了一些 運維可以看看的書
gzcheng:運維書籍推薦?zhuanlan.zhihu.com
運維工程師對個人的技術面要求比較廣,同時也需要一定深度。
萬事開頭難,每一項技術,紮實的基礎是入門的第一關。而所有的學習最終都是為了能夠掌握核心技術,從而應用到實際項目中。
一份系統、全面且規範化地學習的學習路線是非常重要的,讓你面向企業真實的運維環境、快速入門Linux系統、掌握企業職位所需技能!