標籤:

聽說不會開發的運維不是好運維,一個懂點Linux命令的但沒有開發經驗的運維如何提高自己的運維能力?

個人會點Linux基礎命令,但是覺得自己也就這點能力而已,現在想要提高自己的運維能力。難道要轉行做開發後,有了開發經驗再轉回來么?


這個問題非常好,做一個好的運維,需要的是體系化的學習。

作為一個專門研究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雲計算從入門到精通》系列實戰筆記全放送 | Linux運維部落


如果是以運維職業為目標,那麼能夠寫一點腳本就足夠了。

想要更進一步,建議學習Python,然後做點運維開發,關注一下自動化和web相關的知識。


有點文不對題哈

我其實是來說「不會開發的運維不是好運維」這個的。

就我接觸過的開發,基本如果是C或C++出身的,運維能力比我這個運維只強不弱的(同樣工作年限的前提下)。

我們開發私下和我說「其實你們的工作我都能做,但是老闆又不給我雙倍工資,我何必呢」

然後我吐槽說「給你雙倍工資還不如請我呢,我工資又沒你高。。。」

1.開發能力對運維來說,更多的是種學習能力的體現。

我接觸過的開發同學,學個半天寫寫awk腳本不成問題,而你去chinaunix的shell版看看,很多運維對awk的掌握其實還不如看半天書的開發

我們這開發本身是寫c的或者c++的,但是真要他們寫php,python也就2個禮拜的事,但是很多運維幹了N年,叫你整個php前台還是不行

沒有開發能力,其實本質代表著你學歷能力有限

2.不懂開發,其實你能解決的問題很有限

基本你能解決的問題,掌握關鍵字google下,不是運維也能解決的。

你們家開發看過nginx源碼,你個運維就只看過nginx 文檔,還tm是中文翻譯(其實nginx文檔中文翻譯還行的,不是黑哦),你說你還能和開發談笑風生么。。。

3.至於樓上有些人說開發系統能力不行的,什麼調優的,什麼網路的。。。

我想吐槽,你們接觸的都是前端開發么,哪個寫後台的沒看過TCP/IP?哪個沒看過UNIX高級編程?

至於說啥架構能力,解決方案的,我就看看不說話了,至少我接觸過的運維leader都是從開發轉的。。。。

最後說個正經的,運維需要大量自動化工具的么,要鍛煉開發能力,把以前用的腳本換成自動化平台么,能力不就鍛鍊出來的,以後就可以說自己是devops了。。。。


你太看得起純粹的開發,或者說你太看不起運維職位了。

我見過的程序員,只要還是個普通開發沒涉及到架構工程師的,特別是那種大中型公司的開發,除了自己的業務代碼外屁都不知道,說句不好聽的cpu的核都整不明白意思,更別說top命令各行各列代表的意思,load的意思,中斷,free命令各列的意思!

而這些是一個普通運維必知的,卻不是大多數普通業務開發人員的知識,不信你看看普通程序職位筆試題有幾個公司有這些內容?這些全局性基礎知識是沒有職位區別的.

開發當然必須的學,不然你怎麼噴那些戰五渣開發人員?


只會開發的運維不是好運維!

現在運維涉及到開發相關的場景就是開發運維自動化工具,但是工具僅僅是工具而已呀,現在就很多人捨本逐末了。

苦練基本功吧,如系統,網路的深層理論,調優的能力,常見的架構,解決方案等等,這些才是硬實力,硬需求!

基本的開發能力只是錦上添花而已!


這是職業高低論。不用刻意。認真做事,用到什麼學什麼。劃一條界限幹什麼


至少腳本你得知道怎麼寫吧


推薦閱讀:

請問HTML5和Linux運維工程師,哪個前景會好一點,上面兩個哪個針對零基礎培訓的學員更有發展前景?
Linux新手如何在較短的時間內學習並使用archlinux?
什麼是LFS,作為一個初學者應該先學習什麼才能初步了解LFS?
現在所謂的DevOps跟從前定義的運維工程師在具體工作職責上有什麼本質的區別?
如果在運維工作中收到非常多的告警信息,影響了本身的運維工作,應該從哪幾個方面進行優化和改善?

TAG:Linux運維 |