運維工程師在前期是一個很苦逼的工作,在這期間可能干著修電腦、掐網線、搬機器的活,顯得沒地位!時間也很碎片化,各種零碎的瑣事圍繞著你,很難體現個人價值,漸漸的對行業很迷茫,覺得沒什么發展前途。
這些枯燥無味工作的確會使人匱乏,從技術層面講這些其實都是基本功,對后期的運維工作會無形中帶來一定的幫助,因為我也是這么過來的,能深刻體會到。所以在這個時期一定要保持積極向上的心態,持續的學習。在未來的某一天,相信會回報給你的!
好了,進入正題,根據我多年的運維工作經驗,給大家分享下高級運維工程師學習路線。
初級
1、Linux基礎
剛開始階段需要熟悉Linux/Windows操作系統安裝,目錄結構、啟動流程等。
2、系統管理
主要學習Linux系統,生產環境中基本都在字符界面完成工作,所以要掌握常用的幾十個基本管理命令,包括用戶管理、磁盤分區、軟件包管理、文件權限、文本處理、進程管理、性能分析工具等。
3、網絡基礎
OSI和TCP/IP模型一定要熟悉?;镜慕粨Q機、路由器概念及實現原理要知道。
4、Shell腳本編程基礎
掌握Shell基本語法結構,能編寫簡單的腳本即可。
中級
1、網絡服務
最常用的網絡服務一定得會部署,比如vsftp、nfs、samba、bind、dhcp等。
代碼版本管理系統少不了,可以學習下主流的SVN和GIT,能部署和簡單使用就可以了。
經常在服務器之間傳輸數據,所以要會使用:rsync和scp。
數據同步:inotify/sersync。
重復性完成一些工作,可寫成腳本定時去運行,所以得會配置Linux下的定時任務服務crond。
2、Web服務
每個公司基本都會有網站,能讓網站跑起來,就需要搭建Web服務平臺了。
如果是用PHP語言開發的,通常搭建LAMP、LNMP網站平臺,這是一個技術名詞組合的拼寫,分開講就是得會部署Apache、Nginx、MySQL和PHP。
如果是JAVA語言開發的,通常使用Tomcat運行項目,為了提高訪問速度,可以使用Nginx反向代理Tomcat,Nginx處理靜態頁面,Tomcat處理動態頁面,實現動靜分離。
不是會部署這么簡單,還要知道HTTP協議工作原理、簡單的性能調優。
3、數據庫
數據庫選擇MySQL,它是世界上使用最為廣泛的開源數據庫。學它準沒錯!也要會一些簡單的SQL語句、用戶管理、常用存儲引擎、數據庫備份與恢復。
想要深入點,必須會主從復制、性能優化、主流集群方案:MHA、MGR等。NoSQL這么流行當然也少不了,學下Redis、MongoDB這兩個就好了。
4、安全
安全很重要,不要等到系統被入侵了,再做安全策略,此時已晚!所以,當一臺服務器上線后應馬上做安全訪問控制策略,比如使用iptables限制只允許信任源IP訪問,關閉一些無用的服務和端口等。
一些常見的攻擊類型一定得知道啊,否則怎么對癥下藥呢!比如CC、DDOS、ARP等。
5、監控系統
監控必不可少,是及時發現問題和追溯問題的救命稻草??梢赃x擇學習主流的Zabbix開源監控系統,功能豐富,能滿足基本的監控需求。監控點包括基本服務器資源、接口狀態、服務性能、PV/UV、日志等方面。
也可以弄個儀表盤展示幾個實時關鍵的數據,比如Grafana,會非常炫酷。
6、Shell腳本編程進階
Shell腳本是Linux自動完成工作的利器,必須得熟練編寫,所以得進一步學習函數、數組、信號、發郵件等。
文本處理三劍客(grep、sed、awk)得玩6啊,Linux下文本處理就指望它們了。
7、Python開發基礎
Shell腳本只能完成一些基本的任務,想要完成更復雜些的任務,比如調用API、多進程等。就需要學高級語言了。
Python是運維領域使用最多的語言,簡單易用,學它準沒錯!此階段掌握基礎就可以了,例如基本語法結構、文件對象操作、函數、迭代對象、異常處理、發郵件、數據庫編程等。
高級
1、Web靜態緩存
用戶老喊著訪問網站慢,看看服務器資源還很富裕啊!網站訪問慢也許不是服務器資源飽和導致的,影響因素很多,例如網絡、轉發層數等。
對于網絡,存在南北通信問題,之間訪問會慢,這個可以使用CDN解決,同時緩存靜態頁面,盡可能將請求攔截在最上層響應,減少后端請求和響應時間。
如果不用CDN,也可以使用Squid、Varnish、Nginx這樣的緩存服務實現靜態頁面緩存,放到流量入口處。
2、集群
單臺服務器終究資源有限,抵抗高訪問量肯定是無法支撐的,解決此問題最關鍵的技術就是采用負載均衡器,水平擴展多臺Web服務器,同時對外提供服務,這樣就成倍擴展性能了。負載均衡器主流開源技術有LVS、HAProxy和Nginx。一定要熟悉一兩個!
Web服務器性能瓶頸解決了,數據庫更為關鍵,還是采用集群,就拿學的MySQL來說,可以一主多從架構,在此基礎上讀寫分離,主負責寫,多從負責讀,從庫可水平擴展,前面再來個四層負載均衡器,承載千萬級PV,妥妥的!
高可用軟件也得會,避免單點的利器,主流的有Keepalived、Heartbeat等。
網站圖片咋這么多呢!NFS共享存儲支撐不過了,處理很慢,好弄!上分布式文件系統,并行處理任務,無單點,高可靠,高性能等特性,主流的有FastDFS、MFS、HDFS、Ceph、GFS等。初期的話我建議學習下FastDFS,能滿足中小規模需求。
3、虛擬化
硬件服務器資源利用率很低,甚是浪費!可以把空閑多的服務器虛擬化,弄成很多個的虛擬機,每個虛擬機就是一個完整的操作系統??梢院艽蟪潭忍岣哔Y源利用率。建議學習開源的KVM+OpenStack云平臺。
虛擬機作為基礎平臺還可以,但應用業務彈性伸縮也太重量了吧!啟動好幾分鐘,文件又這么大,快速擴展太費勁了!
好說,上容器,容器主要特點就是快速部署和環境隔離。一個服務封裝到鏡像中,分分鐘鐘可創建幾百個容器。
主流的容器技術非Docker莫屬了。
當然,生產環境單機Docker大多數情況下是無法滿足業務需求的,可以部署Kubernetes、Swarm集群化管理容器,形成一個大的資源池,集中管理,為基礎架構提供有力的支撐。
4、自動化
反反復復重復的工作,不但提高不了效率,價值也得不到體現。
一切運維工作標準化,例如環境版本、目錄結構、操作系統等統一。在標準化基礎上才能更方面的自動化,點點鼠標或者敲幾個命令即可完成一項復雜的工作任務,爽哉爽哉!
因此,所有的操作盡可能自動化,減少人為失誤,提高工作效率。
主流服務器集中管理工具:Ansible、Saltstack
這兩個選擇任意一個就行。
持續集成工具:Jenkins
5、Python開發進階
可以再深入學習下Python開發,掌握面向對象編程。
最好也掌學習一個Web框架開發網站,例如Django、Flask,主要是開發運維管理系統,將一些復雜的流程寫到平臺中,再集成集中管理工具,可打造一個屬于運維自己的管理平臺。
6、日志分析系統
日志也很重要,定期的分析,可發現潛在隱患,提煉出有價值的東西。
開源的一套日志系統:ELK
學會部署使用,給開發提供日志查看需求。
7、性能優化
只會部署是遠遠不夠的,性能優化能大化提升服務承載量。
這塊也是比較難的,也是高薪的關鍵點之一,為了錢也得下點功夫學習啊!
可以從硬件層、操作系統層、軟件層和架構層維度展開思考。
意識
1、堅持
學習是一個很漫長的過程,是我們每個人需要用一生去堅持的事業。
貴在堅持,難在堅持,成在堅持!
2、目標
當前題目:從苦逼到牛逼!2019年最全最新Linux運維工程師必備技能圖譜……-創新互聯
分享網址:http://m.2m8n56k.cn/article28/dodpcp.html
成都網站建設公司_創新互聯,為您提供域名注冊、品牌網站制作、網站改版、小程序開發、移動網站建設、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯