別意外,Linux運維我真的不建議你從命令行學起!
最近,由于公司業務擴展,需要招聘很多運維人員,我面試了很多人,幾天面試下來,也沒招到幾個人,但通過這幾天的面試,我發現了一些共同點。
一部分面試者,雖然都有3-5年工作經驗,但技術水平跟剛畢業的學生差不多,基礎的技術問題基本都答不上來;而另一部分面試者,剛好相反,剛畢業沒多久,但理論能力、實踐能力很強,綜合技術能力很高,技術已經能獨當一面。為什么會產生這兩種截然不同的現象呢?大家看看我跟他們的一些對話實錄,應該能悟出一點緣由。
1、為什么他可以通過我的面試?
有個面試者,已經工作5年了,我問他:你們的服務器都部署在什么系統上呢?他回答:部署在windows系統上,我又問他:我們招聘的是Linux方面的運維人員,他回答說:Linux我學過,還報過班,但因為工作中用的不多,所以呢,學了不少,基本也忘差不多了。
為了驗證他的Linux掌握度,我讓他在一個虛擬機上源碼編譯一個nginx,然后再通過rpm包安裝一個mysql庫,這位面試者說,以前都做過,但是時間很長沒做了,都忘記了,我說沒關系,可以開卷考試,可以網上查資料操作。
我給了他半個小時,兩個最簡單的安裝操作,都沒有搞定。
另一個面試者是個剛畢業的小伙子,一開始呢,我不知道他剛畢業,就問他:用Linux多久了,都做過什么項目?小伙子回答說:用Linux 2年多了,使用Linux做過NAS存儲項目,做過堡壘機、路由器、防火墻;一看這位面試者做過這么多項目,我當時感覺有點吹牛了,于是,也讓他上機做了一個實戰操作,問題還是上面那個面試者的題目,沒想到不到5分鐘的時間,nginx和mysql的安裝配置都搞定了。
我很好奇,就問這個小伙子,你剛畢業,沒有工作經驗,怎么動手操作這么熟練,這個小伙子說了兩個字:興趣。
他說自己對Linux比較感興趣,大二就開始學習了,最初呢,就是從做網站、博客開始學linux的,剛學Linux的時候,沒有Linux環境,自己就去買了幾臺云服務器,然后學著在服務器上安裝部署各種軟件,例如nginx、php、mysql、redis、zabbix等,然后做好了網站,再去申請個域名,弄個證書,這樣一個網站就做起來了。
這個小伙子滔滔不絕的說了自己做網站的樂趣,我當時在想,很多學Linux的人都覺得學習的時候沒有練手機會、沒有項目可做,那這個同學說的做網站,做博客,不就是一個練手的項目嗎?
做博客是為了記錄、匯總自己學習的知識,可沒想到,做博客的過程就是一個學Linux的過程。
說到學習,相信每個人都努力過,但大多數人因為一些客觀原因(沒項目環境,沒時間),不但浪費了錢財,也浪費了不少時間。
我在運維這行已經有10多年了,今天呢,我將自己多年來學習Linux的心得與感受與大家一起分享下,希望能給愛好Linux的朋友們或者Linux的同行們一點意見和建議,一點經驗心得與大家共勉!
2、動起來!興趣是最好的老師
首先,學習一種技術最好的方法就是練習,練習,練習。這句話說起來容易,但做起來,確實難,那么堅持下來的秘訣只有兩個字:興趣。
興趣是一件讓我們干起來由衷的高興的事情。學Linux并不需要你具有超人的能力,更不需要你具備高學歷,你只需要按照自己的意愿動手去做,做出點什么東西。
做什么東西并不重要,重要的是你找到東西動手去做。我所認識的那些優秀的運維同行,他們都有各自不同的學習"動機"。有些人喜歡網絡,所以,他們將Linux做成一個路由器或者防火墻;有些人喜歡做網站,他們就將自己的Linux服務器變成了一個web服務器;有些人喜歡看美劇,他們就將自己的Linux服務器做成了一個視頻點播系統。
看到了吧,Linux能干的事情很多,只要你有興趣,任何興趣點都可以作為一個獨立的項目,讓你練手。讓所有這些“優秀運維人”統一起來的唯一因素就是:他們全因為生活中的某些興趣而為Linux著迷,繼而花大量的時間學Linux,做大量的、大量的用于練習的項目。
3、Linux化境,從博客開始練手
很多學Linux的新手,不知道從哪里入手,學了很多乏味、無聊的知識,不知道用在什么地方,那么現在,我給你一個誰都可以練手的項目,就是從做自己的第一個博客開始。
做一個博客,首先,需要你有一臺Linux服務器,如果你沒有服務器,掏個幾十塊錢在阿里云或者華為云等,購買一臺學習機,要學習,這點投入還是必要的。然后就是在服務器上部署nginx、mysql、php、jdk等基礎軟件,這是運行一個網站的基礎環境。最后是博客程序,這個最簡單,網上免費到到處都是,不需要自己去開發,例如,你喜歡php的話,可以選用wordpress,這是最流行的博客系統,如果你對java語言感興趣,那么可以選擇halo,這是java語言最流行的博客系統。
有了博客程序,有了網站運行環境,博客基本就搭建起來了,但是要讓自己的博客能夠放到互聯網上讓每個人看到,還需要有個公網的IP地址、一個博客域名,如果要保證博客安全,還需要申請一個ssl證書。
這里需要的公網IP、域名、證書,都可以在公有云平臺獲取,例如阿里云、騰訊云、華為云等。
現在博客已經可以通過域名訪問了,但是,你可能還需要了解自己的博客有多少人看了,自己的服務器運行是否正常,所以,你還需要部署一個監控系統,來時刻了解你的服務器、你的網站的運行狀態,要部署監控系統,推薦zabbix,部署簡單,功能強大。
如果你的博客分享的文章很好,那么可能變得非常流行,訪問的人也會越來越多,此時,單臺服務器可能沒法滿足用戶的訪問請求,那么還需要給你的網站部署負載均衡,將訪問流量分擔到多臺服務器上去。這個時候,你需要用到負載均衡集群技術,例如LVS、haproxy、keepalived等。
看似一個簡單的網站,要真正的穩定、高效運行起來,一點都不簡單,那么,做一個博客都涉及到運維中的哪些技術呢,我把上面做網站過程應用到的技術做成了一個技術圖譜,如下圖所示:
看完這個技術圖譜,你已經不知不覺中,學到了Linux運維將近80%的知識點。也就是說,如果你能搭建并維護好自己的一個博客系統,那么你已經掌握了運維80%的知識了,而在實際的企業運維環境中,所做的工作,也基本就是上面這張圖中的內容。
學習是枯燥的,一味的看書、看視頻效果并不好,在學習過程中,通過一些有趣、好玩的項目進行練手,學習可以達到事半功倍的效果。
4、最強Linux學習修煉圖譜
最后呢,再給新手同學們分享下學習Linux的知識圖譜,很多小白其實對Linux并不了解,只知道它是個開源操作系統,有一個內核,僅此而已,那么,要學linux,是不是只學Linux這個系統本身就行了呢?當然不是!
我們說,Linux只是一個底層系統而已,在這個系統之上運行的各種應用程序,組成了Linux的生態鏈,這些都是需要我們學習的。從整體是來說,學習Linux有兩個方向,分別是運維和開發,方向不同,學習的內容也不同。下圖是Linux的兩個學習方向:
從上圖中可以看出,運維方向又分為6個方向:系統運維,自動化運維、數據庫運維,大數據運維,網絡運維,云計算運維等,但學習的知識點基本相同,只是偏向性不同而已。
那么,Linux運維方向,都要學習哪些知識點?請看下圖:
最后,再說下開發方向,開發主要有兩個方向:應用開發和底層開發,這個方向只需要懂幾門語言,根據開發需求文檔,基本就可以工作了,他不需要有太多工作經驗,雖然入門簡單,但是,開發方向屬于吃青春飯崗位,主要拼的就是體力,大家可能聽說,國內大廠公司都勸退35歲以上的員工,這里勸退的其實就是干開發的。
所以,大家要從事Linux相關的工作,我的建議是,從事Linux運維行業,運維行業拼的是經驗,年紀越大,你的經驗會越多,根本不存在35歲淘汰的說法,我在這行也從來沒有感受到35歲的危機。但,這句話是有前提的,就是你要在運維這個行業有持續學習的能力,如果你35歲了,還是25歲的技術能力,那當然也會被淘汰。
說了這么多,其實我的目的是想告訴大家,如果你想學習Linux,你需要動手去做東西!現在就去。不要找任何借口。
做東西是最好的學習方法。
從頭到尾讀一遍技術書籍是一件很無聊的事,讀到一半你可能就讀不下去了。但是,如果你要做一個項目的話,你在做項目的過程中就會知道你該學習哪些知識,這是認識和掌握知識更有效的途徑。
對于渴望提升技術水平的運維人和想進入運維行業的技術愛好者,51CTO官方攜手16年一線Linux運維大牛高俊峰(南非螞蟻),深度結合國內一線互聯網公司的“高級運維工程師”用人需求推出這套課程:《Linux運維8天實戰營》。
本課程側重實戰+實用,力在讓學員通過學習高頻熱門的Linux運維工具技術,在實操演練和技術干貨中了解運維技術圖譜和職業發展路徑,獲得一份清晰的運維職業生涯規劃。