標籤:

運維如何入門?

樓主去年畢業,專業不是計算機,最近找了一份運維的工作,因為不是專業所以不是很了解,只是在網上做了大致的了解,想問下運維大神像我這種剛入行的應該如何利用下班時間看相關書籍提升自己?希望自己2-4年有一定提升,最好是有相應的學習順序以及書籍的名稱進行進階提升。


首先,培養使用搜索工具的能力:

運維工程師必須掌握的基礎技能有哪些? - Linux

一個新手面試 Linux 運維工作至少需要知道哪些知識? - 運維工程師

頂級的 Linux 運維人員應達到什麼樣的要求? - 互聯網

然後,沒有了。

----------------補充------------------

慢著,應該還有一點,關注我在「運維」話題下的其他回答,哈~


要入門,可以先看一下Linux運維人的入門流程。

我們馬哥Linux團隊專門是做Linux學習研究的,你可以借鑒一下,全日制學習是4個月,下面我們來談談如何學習Linux

1、假如你從來接觸過Linux的話,首先要做的就找一本指導書來學習。現在公認的Linux的入門書籍是「鳥哥的私房菜」,講的很全面,鳥哥的私房菜一共分為兩部,一部是基礎篇,一部是伺服器篇。「鳥哥的私房菜」講的很全面,可能會包括一些已經過時的知識點,但是這本書是入門Linux必備。

2、學習Linux的時候,或者學習其他網路知識的時候最重要的就是實踐操作。所以學習Linux,實踐操作是必不可少的。首先就是要裝一個Linux系統,鳥哥開始幾章會講Linux的由來以及怎樣安裝Linux的系統。安裝Linu系統來學習使用Vmware 虛擬機就行了,不用真機裝,沒必要。按照鳥哥私房菜書籍的步驟一步一步照著做,剛開始學習最好讓自己的學習環境跟書里的一致,這樣可以少很多麻煩,也不至於打擊你的學習興趣。

3、裝完系統之後就是學習操作了,並且照著書里的操作一步步實踐。當然很多時候你會不明白,這個時候你可以百度一下,很多人說goole,但goole已經XXX百度完全解決你初學時時候遇到的問題。再然後就是進入某些Linux社區去看看,提問題,或者看看別人所遇到的問題,新手嗎?可以去新手頻道看看,我推薦的網站是紅聯社區的新手園地,Linux運維部落。

4、 你看書的時候剛開始是通讀,然後是泛讀,最後是精讀,總之一定要讀多幾遍,等你第一次把書通讀一遍之後,可以選擇一些視頻來看,一些初級基礎視頻一般是不收費的,而且講的也挺好。Linux視頻我推薦51cto的馬哥Linux,很不錯,很受歡迎。

5、上面的這些只是入門,如果想繼續深入就要選擇一個老師專門系統的學習當然不是說找個老師,而是在網上找到一個教程講解不錯的老師馬哥Linux,並且有高中低級系統的知識體系,一步步跟著學,這樣就差不多了。

6、Linux是一個系統,一個平台,平常工作中應用的是工作在這個平台的軟體,鳥哥第二部伺服器篇就會講解這些,第二部伺服器篇就沒那麼容易看明白。這個時候就可以選擇用百度查找官方文檔,或是一些高手的經驗博文,不斷查找問題,解決問題。

7、學習Linux的時候不要想一口氣把所有全部學完,基礎一定要打好。基礎篇和伺服器篇學的差不多的時候,找工作就行了。找到工作之後一定要繼續學習,因為Linux最注重的是實際工作中的經驗。

8、要是你進入一個比較好的公司,各種平台環境都有,這個時候你要做的就是靜下心來學習,汲取養分,這樣以後往更高級走才有本錢!總之剛開始你把鳥哥兩部學完就可以找工作了,至於往後的發展就是要你自己努力學習了,然後在通過公司中那些幾十萬百萬設備的環境,豐富自己的知識!

9、Linux 的工資高低,就是你遇到的問題越多,解決的越快,你的工資就高了

Linux雲計算及運維需要分為四個階段,linux初級入門-linux中級進階-linux高級提升,和資深方向細化。

第一階段:初級入門

初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線。

個人建議學習的路線如下:

初級入門:

1、Linux基礎知識、基本命令(起源、組成、常用命令如cp、ls、file、mkdir等常見操作命令)

2、Linux用戶及許可權基礎

3、Linux系統進程管理進階

4、linux高效文本、文件處理命令(vim、grep、sed、awk、find等命令)

5、shell腳本入門(可邊練習邊學習)

第二階段:中級進階

中級進階需要在充分了解linux原理和基礎知識之後,對上層的應用和服務進行深入學習,其中說到服務肯定涉及到網路的相關知識,是需要花時間學習的。

1、TCP/IP網路基礎(差不多CCNA、NP的知識就夠用)

2、Linux企業常用服務(如dns、http、ftp、mail、nfs等)

3、Linux企業級安全原理和防範技巧(系統性能/安全、安全威脅模型和保護方法

4、 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎

5、iptables安全策略構建

6、shell腳本進階(主要是結合一些應用,寫一些案例)

7、MySQL應用原理及管理入門(能管理和搭建一個個人博客站點)

學到這裡,掌握的基本技能,已經夠用了,已經能做一些基礎的運維工作和簡單維護了。

第三階段:高級提升

1、http服務代理緩存加速(其中主要學習varnish、nginx緩存系統,要對CDN的知識有所了解。)

2、企業級負載集群(其中主要學習nginx、haproxy、lvs要對主要知識熟練掌握,對負載均衡演算法有清晰認識,)

3、企業級高可用集群 (其中需要對keepalived,heartbeat等進行深入講解)

4、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統,現在用的比較多的是zabbix)

5、運維自動化學習(需要學一些開源運維自動化工具的使用如ansible、puppet、cobbler等運維自動化工具)

能掌握到這裡,基本能處理搞定很多工作了,可以去面試高級運維工程師,差不多薪資能達到12-18K左右

第四階段:資深方向進階

1、 大數據方向(需要對hadoop、storm等常見開源大數據系統需要深入了解)

2、 雲計算方向(主要是openstack這套東西,當然像一些kvm等虛擬化技術,也是需要掌握的,現在docker也比較流行)

3、 運維開發(主要是python運維開發)

4、 自動化運維(在之前自動化基礎上做深入)

5、 運維架構師(主要需要廣度,差不多5年左右以上經驗,可以擔當此職位)

最後是我們整理的知識體系,你可以看一下:

【超全整理】《Linux雲計算從入門到精通》系列實戰筆記全放送


根據自身能力看吧,運維大方向可以分這麼幾個:

1、Windows系運維,這個基本就是看看MCSE教程還有TechNet內容

2、Linux系統運維,可以參考網上的那個「鳥哥Linux私房菜」,寫的很好,並且免費閱讀

3、Network方向,主流都是Cisco、華為交換機,區域網、廣域網等

4、Project Manager方向,鑒於對以上知識的了解程度,和自身的興趣愛好

5、其他的,包括IDC建設,硬體採購之類,各大硬體廠商,大到power/pc server,小到電源線光纖線都需要了解

更進一步的是Devops發展,就是提升自己的coding能力,給自己帶來更大的競爭力


因為我的情況和你挺像,我這裡也談談自己的一點體會吧。

技術基礎

關於運維需要具備的技能基礎,運維工程師必須掌握的基礎技能有哪些? - Linux 在這個問題回復的已經很好了。我也總結下我所經歷的幾個階段:

1. 裝系統,各種裝系統(U盤裝,硬碟裝,雙系統),裝各種系統(Redhat系,Debian系)

2. 學命令,學Shell腳本編程,把Linux當做你的桌面系統來用,通過日常需求來學命令學的踏實,記憶深刻

3. 學習編譯安裝各種服務(第一階段),如VPN, DNS, Web, FTP, NFS, Cache, PHP, MySQL等,你可能對這些服務軟體背後的協議不了解,但是你通過這個過程,對Linux下軟體的安裝部署以及對於遇到問題尋求解決方法和解決問題的思路上會有一定的心得的

4. 學習常見網路服務的協議原理,在此基礎上重新搭建一遍這些服務,把對這些東西的理解提升一個層次,能夠在故障時獨立分析原因

5. 學一門高級語言,目前來說運維這個行業Python和Ruby的居多,我是走的Python路線。把語言當做工具去解決工作和業餘愛好中遇到的一切問題,比如我寫過一個工具每天定時抓取一批技術博客的RSS然後把更新的內容發一封郵件給我。在這個過程中可以去學習一些開發相關的工具和最佳實踐。

此外我說下我在這個環節中的不足:

1. 專業理論基礎不紮實,這也是非科班出身的劣勢,當你面對的問題需要回歸到最基礎的理論的時候,就會感到自身的瓶頸了。所以建議花時間補一補計算機專業的理論基礎

2. 不夠專一,我對幾乎所有互聯網技術都感興趣,但是很遺憾我沒有一項技能能達到我所理解的精通甚至熟練的程度。所以建議平衡自己的時間,在一個方向上做到精通然後儘可能寬的擴展自己的技能面。

工作經驗

我也沒工作幾年,關於工作經驗見解不多。所謂工作經驗除了技術上的積累外更多的是見識,流程和意識的積累。當我們提標準化,自動化和流程化時涉及的是一個體系化的框架。


運維工程師的職責:」確保線上穩定「,看似簡單,但實屬不容易,運維工程師必須在諸多不利因素中進行權衡:新產品模式對現有架構及技術的衝擊、產品高頻度的升級帶來的線上BUG隱患、運維自動化管理承度不高導致的人為失誤、IT行業追求的高效率導致流程執行上的缺失、用戶增漲帶來的性能及架構上的壓力、IT行業寬鬆的技術管理文化、創新風險、互聯網安全性問題等因素,都會是網站穩定的大敵,運維工程師必須把控好這最後一關,需具體高度的責任感、原則性及協調能力,如果能做到各因素的最佳平衡,那就是一名優秀的運維工程師了。

  另外在此聊點題外話,我在這裡看到有很多人要sina、QQ、baidu,http://51.com等聊自已的運維方面的經驗,其實這對於它們有點免為其難:

  a、各公司自已網路架構、規模、或多或少還算是公司的核心秘密,要保密,另外,對於大家所熟知的通用軟體、架構,由於很多公司會根據自已實際業務需要,同時因為原版性能、安全性、已知bug、功能等原因,進行過二次開發(如apache,php,mysql),操作系統內核也會根據不同業務類型進行定製的,如某些應用屬於運算型、某些是高IO型、或大存儲大內存型。根據這些特點進行內核優化定製,如sina就在memcache上進行過二次開發,搞出了一個MemcacheDB,具體做得如何我們不談,但開源了,是值得稱讚的,國內公司對於開源基本上是索取,沒有貢獻;另外,伺服器也不是大家所熟知的型號,根據業務特點,大部份都是找DELL/HP/ibm進行過定製;另外,在分散式儲存方面都有自已解決方案,要不就是使用現成開源hadoop等解決方案,或自已開發。但90%都是借鑒google GFS的思想:分散式存儲、計算、大表。

  b、各公司業務方向不一樣,會導致運維模式或方法都不一樣,如http://51.com和baidu運維肯定區別很大,因為他們業務模式決定了其架構、伺服器量級、 IDC分布、網路結構、通用技術都會不一樣,主打新聞門戶的sina與主打sns的http://51.com運維模式差異就非常大,甚至職責都不大一樣;但有一點,通用技術及大致架構上都大同小異,大家不要太神化,更多的公司只是玩壘積木的遊戲罷了,沒什麼技術含量。

  c、如上面所講,目前大型網站運維還處於幼年時期理念和經驗都比較零散,沒有成熟的知識體系,可能具體什麼是運維,大家都要先思索一番,或壓根沒想過,真正討論也只是運維工作的冰山一角,局限於具體技術細節,或某某著名網站大的框架,真正運維體系化東西沒有,這也許是目前網上運維相關資料比較少的原故吧。或者也是國內運維人員比較難招,比較牛的運維工程師比較少見的原因之一吧。

技能方面總結以下幾點:

  1、開發能力,這點非常重要,因為運維工具都需要自已開發,開發語言:c/c++(必備其中之一)、perl、python、php(其中之一)、shell(awk,sed,expect?等),需要有過實際開發經驗,否則工作會非常痛苦。

  2、通用應用方面需要了解:操作系統(目前國內主要是linux、bsd)、webserver相關 (nginx,apahe,php,lighttpd,java??)、資料庫(mysql,oralce)、其它雜七八拉的東東??系統優化,高可靠性??這些只是加分項,不需必備,可以邊工作邊慢慢學,這些東西都不難。當然在運維中,有些是有分工偏重點不一樣。

  3、系統、網路、安全,存儲,CDN,DB等需要相當了解,知道其相關原理。 個人素質方面:

  1、 溝通能力、團隊協作:運維工作跨部門、跨工種工作很多,需善於溝通、並且團隊協作能力要強;這應該是現代企業的基本素質要求了,不多說。

  2、工作中需膽大心細:膽大才能創新、不走尋常路,特別對於運維這種新的工種,更需創新才能促進發展;心細,運維工程師是網站admin,最高線上許可權者,一不小心就會遺憾終生或打入十八層地獄。

  3、主動性、執行力、精力旺盛、抗壓能力強:由於IT行業的特性,變化快;往往計劃趕不上變化,運維工作就更突出了,比如國內各大公司伺服器往往是全國各地,哪裡便宜性價比高,就那往搬,進行大規模服務遷移(牽扯的伺服器成百上千台),這是一個非常頭痛的問題;往往時間非常緊迫,如限1周內完成,這種情況下,運維工程師的主動性及執行力就有很高的要求了:計劃、方案、服務無縫遷移、機器搬遷上架、環境準備、安全評估、性能評估、基建、各關聯部門扯皮,7X24小緊急事故響應等。

  4、其它就是一些基本素質了:頭腦要靈光、邏輯思維能力強、為人謙虛穩重、親和力、樂於助人、有大局觀。

  5、最後一點,做網站運維需要有探索創新精神,通過創新型思維解決現實中的問題,因為這是一個處於幼年的職業(國外也一樣,但比國內起步早點),沒有成熟體系或方法論可以借鑒,只能靠大家自已摸索努力。


運維的技術棧涉及面非常廣:Linux, Shell, 資料庫, 網路, 硬體……

這些都是入門需要掌握的,另外多了解下自動化運維和DevOps的理念和工具,比如:zabbix, nagios, puppet, saltstack等等。

入門Linux運維工程師,必須要掌握的10個技術點 - 運維派


很是贊同上樓的說法 不過話說回來 現在運維也開始自救了 現在大公司的運維更傾向於做開源處理了 上github上基本上都能找到各家大型公司的開源資源 如果真有時間的話 花小部分時間去體驗一下 未嘗也不是一個好的選擇

按照個人的觀點 運維的門檻很高 也可以說很低 看你如何選擇了……


推薦閱讀:

軟體測試,還是運維工程師?
為什麼都說運維工程師做不長久做兩年就趕快轉研發,仍然看到大批的二十七八的人在做運維做的風生水起,何因?
docker並不是萬能的
linux 軟體安裝用編譯還是用rpm?

TAG:運維 |