1. 程式人生 > >DevOps基礎-6.2-提前結束:現在算不算一個DevOps工程師

DevOps基礎-6.2-提前結束:現在算不算一個DevOps工程師

本來繼續翻譯第六章節,第六章節主要介紹的是運維的理論和一些很有效的策略。但是,發現感覺這些也用處不大。就沒有繼續翻譯的動力了。差不多25篇文章來介紹DevOps的文化和一些常識,術語,其中持續整合(CI)和持續交付(CD)顯然就是DevOps的核心部分。DevOps這個話題很大,包含技術很廣。不能簡單的認為就是開發加上運維這兩個技術。

 

我想,到了這裡DevOps的基礎部分應該夠用,足夠你來了解什麼是DevOps,DevOps能幹些什麼的,肯定能幫你回答這些問題。接下來的重點,是如何進入DevOps相關的專案,如何學習,如何展開工作的話題。看完這20多篇DevOps基礎文章,可能你會問,你現在算不算一個DevOps工程師,或者想知道自己處於什麼水平。我的答案是,肯定不是,你的DevOps之路還沒有開始呢。理論的一些重要部分,介紹完了,就應該要具體實戰練習。

 

如何進入到DevOps的專案,這個看你專案經歷和公司是否在做這方面的研發和投入。很多小公司是玩不起DevOps的,這完全就是顛覆了傳統的軟體開發,測試,運維的模式。所以,這裡我只能聊聊,如何學習DevOps,如何獲取和掌握這個行業的一些基礎的技能。我大概寫了一個學習路線,我個人認為,可能比較適合如何入門的這麼一個學習方式。

 

1.Dev

這裡,首先當然要說開發了。開發技術確實應該放在第一位,當然,開發一般就認為是程式碼能力水平。DevOps如何要求寫寫底層架構

程式碼和底層業務模型核心程式碼,這個只能是開發去做。測試或者測試開發肯定實現不了,程式碼能力達不到要求。基本上是要求在大資料,雲端計算相關背景經歷。例如,如何把底層基礎架構資源全部轉換成程式碼方式去排程,這個真的太厲害。

 

這部分重點就是,開發語言的選擇。如果你一定要問選擇什麼語言。例如java還是python,建議Java優先,python其次。完成DevOps自動化第三門重要的語言就是shell程式設計。然後就是一些動態指令碼語言,例如groovy和perl。當然還有其他的,例如go語言。

 

這個,我沒有太多好的建議。本人一直在學習Java基礎,python也會一些。一句話,把一門語言練成你常用,能舒服寫程式碼的程度,然後考慮繼續提升第二門語言。有些人喜歡系統學習第二門語言,有人就隨便翻翻書就能寫出程式碼。確實沒有好的推薦和學習資源。

 

2.Ops

運維,你的第一反應就是要學習好Linux課程。Linux真的很重要,小到一個簡單shell命令,大到shell程式設計和運維監控自動化等。

 

建議,《學習鳥哥私房菜系列》和《linux就該這麼學》,這兩本書,網上也有對應的pdf文件下載。

 

3.Groovy語言

單獨拉出來,是因為,我們很多測試都需要在Jenkins的Pipeline上完成和實現。這門語言最好有Java基礎,是基於Java語言開發的一門擴充套件的動態指令碼語言。Jenkins的

核心Pipeline功能實現就是Groovy程式碼開發的。

 

學習資源:

  1. groovy 官網的文件,這個很權威,當然我也沒有堅持看完。
  2. w3cschool有一箇中文的文件,需要自己去查詢一下
  3. 市場上,包括國外我只找到了一個視訊教程,國內根本沒有相關教程。
  4. 我買過一本書《Groovy程式設計》,工作中參考用,用到會翻一翻。

4.Jenkins Pipeline

這裡我不是說不要學習Jenkins基本管理和維護知識,我把這些知識放到基礎,也就是說能在UI操作的技術,都屬於Jenkins基礎。我部落格也有一個Jenkins入門到打包實戰,覆蓋了大部分的基礎知識點。這裡我要提倡的是學習Jenkins的高階部分,pipeline相關的自動化。

CI和CD自動化大部分都是以pipeline程式碼的形式保留,什麼是CI pipeline程式碼,你現在無法知道,等學習了,你才會明白和體會Jenkins的強大。可以這麼說,Jenkins UI上能操作的部分,在pipeline程式碼裡都能寫程式碼呼叫來實現。例如打包後傳送郵件通知,程式碼是完全可以實現,還有構建的變數,字串變數,選擇變數都是程式碼來寫。

接下來,我部落格新開一個系列,主要寫Jenkins高階篇之Pipeline。我會翻譯一部分官網的文章,還有根據我學習經歷新增一部分pipeline程式碼實戰的文章。這部分學習資源,視訊市場上也幾乎沒有,文章也是零散的幾篇,最權威還是去官網啃英文,認真看文件。

5.Docker

這個Docker容器化技術非常火,我也只是學了一點點基礎。暫時放在Pipeline學習之後來學。我基本上學習覆蓋到了Docker操作常用的命令和一些基本Docker領域的概念。如果後續有機會,我再來補充Docker部分。不管如何,先完好pipeline,讓自動化在Jenkins上跑起來就感覺很厲害了。