運維工程師必須掌握的基礎技能有哪些?
偶爾在知乎上刷到的一個問題,瀏覽量和回答量都非常巨大,看來很多人都關注。我也寫一篇文章,分享一下個人的看法。我會盡量言簡意賅。
整體技能分類
首先,我們可以將運維工程師的技能分為以下幾個大類:
個人素養(yǎng) 職業(yè)素養(yǎng) 基礎技術 業(yè)務技術 橫向技術 體系思考
各個類別具體含義以及如何提升,我們將在下面詳細介紹。
個人素養(yǎng)
即個人軟素質,所有崗位都需要,并不局限在運維工程師。比如:
溝通能力:邏輯清晰的表達能力至關重要,說了半天對方也 get 不到你的重點,就比較尷尬了,推薦書籍《金字塔原理》;溝通時容易帶上個人好惡、個人情緒,不就事論事、容易評價別人,別人會非常反感跟你溝通,導致合作出問題,推薦書籍《非暴力溝通》等。(我也在努力改進中...) 學習能力:快速學習一門新知識的能力,問問題獲取別人幫助的能力,推薦閱讀著名黑客 Raymond 編寫的短文《提問的智慧》,這個能力極為關鍵。 抗壓能力:其實就是逆商。不抱怨,面向未來面向解法思考問題,時刻檢視自己的情緒,保持積極的心態(tài)。
有一本書叫《商業(yè)至簡》,副標題是:60天在早餐桌旁讀完商學院。非常非常非常建議大家讀一讀。個人素養(yǎng)看起來挺虛的對嗎?其實這才是決定一個人最終高度的東西。
職業(yè)素養(yǎng)
在父母面前你要做一個好孩子,在老婆面前你要做一個好丈夫,在兒女面前你要做一個好父親,在不同的角色上是有不同的素養(yǎng)要求的。想象一下,公司、同事希望看到一個什么樣的你?這個就是職業(yè)素養(yǎng)。
個人素養(yǎng)中提到的關鍵能力,是職業(yè)素養(yǎng)的基礎。在此基礎上,我們還需要:
有章法有條理:交代給你的事情你要搞清楚輕重緩急,搞清楚步驟邏輯,運維工程師可能經(jīng)常面對很多雜項,這個能力非常重要。 主動匯報:要有主動匯報的意識,周報是一個典型的手段,要認真寫,讓別的同事和上級了解你的工作,呈現(xiàn)你的工作成果,有時還要考慮主動當面找上級溝通進展,提出一些方案讓上級決策,給上級一些存在感。 管理預期:管理上級、下級、客戶、伙伴的預期,實際執(zhí)行時要盡量符合預期,甚至超越預期,尤其不要有過度承諾,這樣會讓別人對你失去信任。 主觀能動性:或稱為 ownership,即主人翁精神,別推一推動一動,不推不動,老板同事都會很反感這類人。
這里我只是羅列了我個人即時能想到的比較關鍵的點,當然,還有很多其他的點,不經(jīng)一番寒徹骨,很難認可別人給你的大道理,這個是需要自己去持續(xù)體會和總結的。
基礎技術
網(wǎng)絡基礎技術、Linux 基礎技術、數(shù)據(jù)庫基礎技術、性能問題排查工具,是運維工程師必備技能。高級工程師和新手工程師在這些能力上差異明顯,來,看看這張圖:
常見的性能問題排查工具,就有如此之多,而且要能看懂這些工具的輸出,必然是要懂得相關原理的,這個知識儲備就相當大了。這些知識的學習,沒有盡頭,怎么學習?
對于入門而言,從 B 站找?guī)讉€培訓機構的視頻來看基本就夠了。 對于進階,可以持續(xù)閱讀一些經(jīng)典書籍,比如《TCP/IP 詳解》、《Linux 內核設計與實現(xiàn)》等。 優(yōu)先學習工作中可以實踐的技術,工作中用不到的技術時間久了就忘了,浪費時間。
這里我也王婆賣瓜一下,我曾經(jīng)錄制過一一套視頻:《面向研發(fā)工程師的 Linux 進階知識》,對于研發(fā)人員、初級運維人員都會有很大的幫助,這些知識在我看來都是工作必備基礎,大家可以對照這個目錄查漏補缺學習:
第1個:課程介紹和講師介紹 第2個:課程大綱介紹 第3個:學習方法和理念,道的層面,肺腑之言 第4個:查看發(fā)行版和內核版本,uname、hostnamectl等 第5個:查看CPU信息,socket、core、thread、cpu.steal 第6個:查看內存信息,total不夠、free、available的關系等 第7個:查看硬盤分區(qū)信息,tmpfs、快速找到大文件等技巧 第8個:查看網(wǎng)絡信息,hostname、ifconfig、ip a、route 第9個:查看機器時間并校準,ntpdate和chronyd 第10個:yum配置,yum源 第11個:安裝數(shù)據(jù)庫并調優(yōu) 第12個:安裝redis,配置認證 第13個:wget 和 curl 命令的小技巧 第14個:環(huán)境變量配置,自動執(zhí)行.bash_profile的原理 第15個:vim 使用技巧和前后臺進程切換的方法 第16個:simplehttpd的講解 第17個:nohup 的詳細解釋,stdout、stderr、stdin 詳細解 第18個:使用systemd在生產(chǎn)環(huán)境運行進程 第19個:ulimit基本介紹,演示句柄超限的報錯 第20個:配置ulimit的方法,兩個地方都要注意 第21個:進程查看類的操作:ps、pgrep、ss等 第22個:端口探測的幾種方式以及nc的使用技巧 第23個:lsof的介紹,查看進程的日志路徑的技巧 第24個:殺死進程,kill的注意點 第25個:進程的 proc 目錄,這是一個寶藏目錄 第26個:查看某個進程的資源占用情況 第27個:top命令使用技巧 第28個:vmstat需要關注的點 第29個:容易被誤解的iostat,有哪些字段會坑人 第30個:查看單個進程的io情況 第31個:ifstat命令介紹,配合watch命令使用 第32個:iftop的使用講解 第33個:iptraf統(tǒng)計網(wǎng)絡流量情況 第34個:dstat資源性能數(shù)據(jù)查看的集大成者 第35個:機器免密登錄 第36個:利用pssh批量執(zhí)行命令 第37個:利用pscp批量分發(fā)文件 第38個:使用Python工具的幾個小場景 第39個:crontab入門,如何解決找不到命令的問題 第40個:crontab定義方式,給出一些生產(chǎn)樣例 第41個:crontab第一天條,自行檢查上次調度是否退出