初級(jí)、中級(jí)、高級(jí)運(yùn)維各應(yīng)必備哪些技能?
人生就像一場(chǎng)游戲,這場(chǎng)游戲給我們帶來了的許多困難,但是我們?yōu)榱藟?mèng)想,為了家人,為了自己不斷奮斗著,努力工作。
今天就讓我?guī)е蠹乙黄鸹仡櫢呒?jí)運(yùn)維工程師打怪升級(jí)之路。
運(yùn)維工程師在剛?cè)胄须A段是一很苦逼的,可能干著修電腦、掐網(wǎng)線、搬機(jī)器的活,顯得沒地位。時(shí)間也很碎片化,各種零碎的瑣事圍繞著你,也很難體現(xiàn)個(gè)人價(jià)值,漸漸的對(duì)行業(yè)很迷茫,覺得沒什么發(fā)展前途。
這些枯燥無味工作的確會(huì)使人匱乏!
技術(shù)是枯燥無味的,這些基本工作并非是多余的,這些經(jīng)驗(yàn)會(huì)對(duì)后期的運(yùn)維工作帶來一定的幫助。所以在這個(gè)時(shí)期一定要保持積極向上的心態(tài),持續(xù)的學(xué)習(xí),爭(zhēng)取找一個(gè)更鍛煉人的工作。
一、打怪篇
1、職業(yè)發(fā)展選擇
技術(shù)專家
發(fā)展規(guī)劃:初中級(jí)工程師 -> 高級(jí)工程師 -> 架構(gòu)師 -> 專家
適宜人群:比較喜歡挑戰(zhàn),熱愛技術(shù),有較強(qiáng)鉆研精神,在某一領(lǐng)域有深入的理解,性格比較內(nèi)向。
技術(shù)管理
發(fā)展規(guī)劃:初中級(jí)工程師 -> 高級(jí)工程師 -> 主管/經(jīng)理 -> 總監(jiān) -> CTO(首席技術(shù)官)
適宜人群:技術(shù)知識(shí)面廣,有一些管理思維,善于交際,表達(dá)溝通能力強(qiáng),經(jīng)常關(guān)注行業(yè)內(nèi)動(dòng)態(tài)和主流技術(shù)。
2、職業(yè)發(fā)展目標(biāo)
- 熟悉運(yùn)維技術(shù)學(xué)習(xí)路線及相關(guān)技能
- 熟悉職業(yè)發(fā)展方向及面試分析
3、職業(yè)發(fā)展階段
- 初級(jí)主要工作
- 修電腦,設(shè)備巡檢
- 服務(wù)器上下架
- 網(wǎng)絡(luò)服務(wù)部署
- 網(wǎng)站平臺(tái)搭建與維護(hù)
1)Linux基礎(chǔ)
剛開始階段需要熟悉Linux操作系統(tǒng)安裝,目錄結(jié)構(gòu)、啟動(dòng)流程等。
2)系統(tǒng)管理
主要學(xué)習(xí)Linux系統(tǒng),生產(chǎn)環(huán)境中基本都在字符界面完成工作,所以要掌握常用的幾十個(gè)基本管理命令,包括用戶管理、磁盤分區(qū)、軟件包管理、文件權(quán)限、文本處理、進(jìn)程管理、性能分析工具等。
3)網(wǎng)絡(luò)基礎(chǔ)
OSI和TCP/IP模型一定要熟悉。基本的交換機(jī)、路由器概念及實(shí)現(xiàn)原理要知道。
4)Shell腳本編程基礎(chǔ)
掌握Shell基本語(yǔ)法結(jié)構(gòu),能編寫簡(jiǎn)單的腳本即可。
中級(jí)主要工作
- 集群網(wǎng)站平臺(tái)搭建
- 數(shù)據(jù)庫(kù)基本管理
- 監(jiān)控系統(tǒng)搭建
- 腳本化工作
1)網(wǎng)絡(luò)服務(wù)
常見的網(wǎng)絡(luò)服務(wù)要會(huì)部署,比如vsftp、nfs、samba、bind、dhcp等。
代碼版本管理系統(tǒng)少不了,可以學(xué)習(xí)下主流的GIT,能部署和簡(jiǎn)單使用就可以了。
經(jīng)常在服務(wù)器之間傳輸數(shù)據(jù),所以要會(huì)使用:rsync和scp。
數(shù)據(jù)同步:inotify/sersync。
重復(fù)性完成一些工作,可寫成腳本定時(shí)去運(yùn)行,所以得會(huì)配置Linux下的定時(shí)任務(wù)服務(wù)crond。
2)Web服務(wù)
每個(gè)公司基本都會(huì)有網(wǎng)站,能讓網(wǎng)站跑起來,就需要搭建Web服務(wù)平臺(tái)了。
如果是用PHP語(yǔ)言開發(fā)的,通常搭建LNMP網(wǎng)站平臺(tái),這是一個(gè)技術(shù)名詞組合的拼寫,分開講就是得會(huì)部署Nginx、MySQL和PHP。
如果是JAVA語(yǔ)言開發(fā)的,通常使用Tomcat運(yùn)行項(xiàng)目,為了提高訪問速度,可以使用Nginx反向代理Tomcat,Nginx處理靜態(tài)頁(yè)面,Tomcat處理動(dòng)態(tài)頁(yè)面,實(shí)現(xiàn)動(dòng)靜分離。
不是會(huì)部署這么簡(jiǎn)單,還要知道HTTP協(xié)議工作原理、簡(jiǎn)單的性能調(diào)優(yōu)。
3)負(fù)載均衡器
單臺(tái)服務(wù)器終究資源有限,抵抗高訪問量肯定是無法支撐的,解決此問題最關(guān)鍵的技術(shù)就是采用負(fù)載均衡器,水平擴(kuò)展多臺(tái)Web服務(wù)器,同時(shí)對(duì)外提供服務(wù),這樣就成倍擴(kuò)展性能了。
負(fù)載均衡器主流開源技術(shù)有LVS、HAProxy和Nginx。一定要熟悉一兩個(gè)!
4)數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)選擇MySQL,它是世界上使用最為廣泛的開源數(shù)據(jù)庫(kù)。學(xué)它準(zhǔn)沒錯(cuò)!
也要會(huì)一些簡(jiǎn)單的SQL語(yǔ)句、用戶管理、常用存儲(chǔ)引擎、數(shù)據(jù)庫(kù)備份與恢復(fù)。
想要深入點(diǎn),必須會(huì)主從復(fù)制、性能優(yōu)化、主流集群方案:MHA、MGR等。
NoSQL這么流行當(dāng)然也少不了,學(xué)下Redis、MongoDB這兩個(gè)就好了。
5)監(jiān)控系統(tǒng)
監(jiān)控必不可少,是及時(shí)發(fā)現(xiàn)問題和追溯問題的救命稻草??梢赃x擇學(xué)習(xí)主流的Zabbix、Prometheus開源監(jiān)控系統(tǒng),功能豐富,能滿足企業(yè)級(jí)監(jiān)控需求。
監(jiān)控點(diǎn)包括服務(wù)器硬件、服務(wù)器性能、API、業(yè)務(wù)、PV/UV、日志等方面。
也可以弄個(gè)儀表盤展示幾個(gè)實(shí)時(shí)關(guān)鍵的數(shù)據(jù),比如Grafana,會(huì)非常炫酷。
6)日志分析系統(tǒng)
日志也很重要,定期的分析,可發(fā)現(xiàn)潛在隱患,提煉出有價(jià)值的東西。
主流日志系統(tǒng):ELK Stack
學(xué)會(huì)部署使用,能分析日志并可視化,方便故障排查。
7)安全防范
安全很重要,不要等到系統(tǒng)被攻擊了,再做安全策略,此時(shí)已晚!所以,當(dāng)一臺(tái)服務(wù)器上線后應(yīng)馬上做安全訪問控制策略,比如使用iptables限制只允許信任源IP訪問,關(guān)閉一些無用的服務(wù)和端口等。
一些常見的攻擊類型一定得知道啊,否則怎么對(duì)癥下藥呢!比如CC、DDOS、ARP等。
8)Shell腳本編程進(jìn)階
Shell腳本是Linux自動(dòng)完成工作的利器,必須得熟練編寫,所以得進(jìn)一步學(xué)習(xí)函數(shù)、數(shù)組、信號(hào)、發(fā)郵件等。
文本處理三劍客(grep、sed、awk)得玩6啊,Linux下文本處理就指望它們了。
9)Python/Go開發(fā)基礎(chǔ)
Shell腳本只能完成一些基本的任務(wù),想要完成更復(fù)雜些的任務(wù),比如調(diào)用API、多進(jìn)程等。就需要學(xué)高級(jí)語(yǔ)言了。
Python是運(yùn)維領(lǐng)域使用最多的語(yǔ)言,簡(jiǎn)單易用,學(xué)它準(zhǔn)沒錯(cuò)!此階段掌握基礎(chǔ)就可以了,例如基本語(yǔ)法結(jié)構(gòu)、文件對(duì)象操作、函數(shù)、迭代對(duì)象、異常處理、發(fā)郵件、數(shù)據(jù)庫(kù)編程等。
高級(jí)主要工作
- 億級(jí)網(wǎng)站架構(gòu)設(shè)計(jì)
- 性能優(yōu)化
- 容器化落地
- 大規(guī)模自動(dòng)化運(yùn)維
- 平臺(tái)化工作
1)Web靜態(tài)緩存
用戶老喊著訪問網(wǎng)站慢,看看服務(wù)器資源還很富裕啊,網(wǎng)站訪問慢也許不是服務(wù)器資源飽和導(dǎo)致的,影響因素很多,例如網(wǎng)絡(luò)、轉(zhuǎn)發(fā)層數(shù)等。
對(duì)于網(wǎng)絡(luò),存在南北通信問題,之間訪問會(huì)慢,這個(gè)可以使用CDN解決,同時(shí)緩存靜態(tài)頁(yè)面,盡可能將請(qǐng)求攔截在最上層響應(yīng),減少后端請(qǐng)求和響應(yīng)時(shí)間。
如果不用CDN,也可以使用Squid、Varnish、Nginx這樣的緩存服務(wù)實(shí)現(xiàn)靜態(tài)頁(yè)面緩存,放到流量入口處。
2)集群
單臺(tái)服務(wù)器終究資源有限,抵抗高訪問量肯定是無法支撐的,解決此問題最關(guān)鍵的技術(shù)就是采用負(fù)載均衡器,水平擴(kuò)展多臺(tái)Web服務(wù)器,同時(shí)對(duì)外提供服務(wù),這樣就成倍擴(kuò)展性能了。
負(fù)載均衡器主流開源技術(shù)有LVS、HAProxy和Nginx。一定要熟悉一兩個(gè)。
Web服務(wù)器性能瓶頸解決了,數(shù)據(jù)庫(kù)更為關(guān)鍵,還是采用集群,就拿MySQL來說,可以一主多從架構(gòu),在此基礎(chǔ)上讀寫分離,主負(fù)責(zé)寫,多從負(fù)責(zé)讀,從庫(kù)可水平擴(kuò)展,前面再來個(gè)四層負(fù)載均衡器,承載千萬(wàn)級(jí)PV,妥妥的!
高可用軟件也得會(huì),避免單點(diǎn)的利器,主流的有Keepalived、Heartbeat等。
隨著業(yè)務(wù)擴(kuò)展,網(wǎng)站圖片越來越多!NFS共享存儲(chǔ)支撐不過了,處理很慢。上分布式文件系統(tǒng),并行處理任務(wù),無單點(diǎn),高可靠,高性能等特性。
主流的有FastDFS、MFS、HDFS、Ceph、GFS等。初期的話我建議學(xué)習(xí)下FastDFS,能滿足中小規(guī)模需求。
3)容器化
硬件服務(wù)器資源利用率很低,甚是浪費(fèi)!可以把空閑多的服務(wù)器虛擬化,弄成很多個(gè)的虛擬機(jī),每個(gè)虛擬機(jī)就是一個(gè)完整的操作系統(tǒng)??梢院艽蟪潭忍岣哔Y源利用率。
主流私有云平臺(tái)實(shí)現(xiàn):KVM+OpenStack
虛擬機(jī)作為基礎(chǔ)平臺(tái)還可以,但應(yīng)用業(yè)務(wù)彈性伸縮也太重量了吧!啟動(dòng)好幾分鐘,文件又這么大,快速擴(kuò)展太費(fèi)勁了!
好說,上容器,容器主要特點(diǎn)就是快速部署和環(huán)境隔離。一個(gè)服務(wù)封裝到鏡像中,分分鐘鐘可創(chuàng)建幾百個(gè)容器。
主流的容器技術(shù)非Docker莫屬了。
當(dāng)然,生產(chǎn)環(huán)境單機(jī)Docker大多數(shù)情況下是無法滿足業(yè)務(wù)需求的,可以基于Kubernetes構(gòu)建容器平臺(tái),集群化管理容器,形成一個(gè)大的資源池,為基礎(chǔ)架構(gòu)提供有力的支撐。
4)自動(dòng)化運(yùn)維
反反復(fù)復(fù)重復(fù)的工作,不但提高不了效率,價(jià)值也得不到體現(xiàn)。
一切運(yùn)維工作標(biāo)準(zhǔn)化,例如環(huán)境版本、目錄結(jié)構(gòu)、操作系統(tǒng)等統(tǒng)一。在標(biāo)準(zhǔn)化基礎(chǔ)上才能更方面的自動(dòng)化,點(diǎn)點(diǎn)鼠標(biāo)或者敲幾個(gè)命令即可完成一項(xiàng)復(fù)雜的工作任務(wù),爽哉爽哉~
因此,所有的操作盡可能自動(dòng)化,減少人為失誤,提高工作效率。
主流服務(wù)器集中管理工具:Ansible、Saltstack
持續(xù)集成工具:Jenkins、Gitlab
5)Python開發(fā)進(jìn)階
可以再深入學(xué)習(xí)下Python開發(fā),掌握面向?qū)ο缶幊獭?/p>
最好也掌學(xué)習(xí)一個(gè)Web框架開發(fā)網(wǎng)站,例如Django、Flask,主要是開發(fā)運(yùn)維管理系統(tǒng),將一些復(fù)雜的流程寫到平臺(tái)中,再集成集中管理工具,可打造一個(gè)屬于運(yùn)維自己的管理平臺(tái)。
6)性能優(yōu)化
只會(huì)部署是遠(yuǎn)遠(yuǎn)不夠的,性能優(yōu)化能提升服務(wù)承載量。
這塊也是比較難的,也是高薪的關(guān)鍵點(diǎn)之一,為了錢也得下點(diǎn)功夫?qū)W習(xí)啊!
可以從硬件層、操作系統(tǒng)層、軟件層和架構(gòu)層維度展開思考。
二、師門任務(wù)篇
掌握 80% 互聯(lián)網(wǎng)公司會(huì)用到的技術(shù)才有更大競(jìng)爭(zhēng)力!
三、升級(jí)篇
“金三銀四“ 跳槽季,準(zhǔn)備好換工作了吧?心里想得美滋滋,現(xiàn)實(shí)卻殘酷得赤裸裸,投了很多簡(jiǎn)歷,面試率低的可憐,都說金三銀四,可為什么我換工作就這么難呢?
根據(jù)阿良經(jīng)驗(yàn),主要原因如下:
- 簡(jiǎn)歷不夠明確清晰(10%)
- 沒掌握面試技巧(10%)
- 選擇工作的態(tài)度(10%)
- 不明確自己的價(jià)值(5%)
- 專業(yè)技能不足(55%)
- 學(xué)歷(5%)
- 行業(yè)不景氣:停招、裁員!(5%)
1)堅(jiān)持
學(xué)習(xí)是一個(gè)很漫長(zhǎng)的過程,是我們每個(gè)人需要用一生去堅(jiān)持的事業(yè)。
貴在堅(jiān)持,難在堅(jiān)持,成在堅(jiān)持!
2)目標(biāo)
沒有目標(biāo)的不叫工作,沒有量化的不叫目標(biāo)。
每到一個(gè)階段,制定一個(gè)目標(biāo)。
比如:先定一個(gè)能達(dá)到的小目標(biāo),掙它一個(gè)億!
3)興趣
如果你熱愛這個(gè)行業(yè),那它就不只是一份工作。
如果你不熱愛這個(gè)行業(yè),可能是做不好,也可能堅(jiān)持不超過2年,因?yàn)槟阈睦锷线^不去。