1. 程式人生 > >如何在六個月或更短的時間內成為DevOps工程師(一)

如何在六個月或更短的時間內成為DevOps工程師(一)

640

本系列文章適用於想向DevOps模型轉型的開發人員,或者是受過傳統培訓,想要了解整個關於DevOps的內容的運維人員,如果不屬於以上兩者,只是想在職業上尋找變化卻不知從何開始的話,也請繼續閱讀。
如果你已從事多年DevOps工作,這篇文章仍可能對你有益,它可以驗證我們當前所處位置和發展方向。


首先,什麼是DevOps?

640

你可以在搜尋引擎查詢DevOps的定義,大部分都是一些冗長的語句(這裡是有點自誇的嫌疑)。
那麼我這裡將為你節省時間並將其提取下來:DevOps是一種提供共同痛點和責任的交付軟體的方式。僅此而已,那麼,這到底是什麼意思呢?
這意味著在傳統上,建立軟體的人即開發者的動機出發點與執行軟體的人大不相同。
舉個例子,作為一名開發人員,我希望儘可能快地創造出更多的新功能,畢竟這是我的工作,是客戶的需求。但是如果我是一名運維人員,那麼我希望新功能儘可能少,因為每個新功能都是一次變更,變更即意味著風險。
由於這種不同的利益出發點,DevOps誕生了。
DevOps試圖將開發與運維融合到一個組中。我們的想法是會有一個小組來承擔從面向客戶的軟體建立,部署和創收的痛點和責任(也可能是獎勵)。
接下來純粹主義者會告訴你沒有“DevOps工程師”這樣的東西。他們會告訴你,“DevOps是一種文化,而不是一種角色”。
好吧,他們說的這些從技術上來講沒毛病,但是正如經常發生的那樣,這個術語已經超越了它原有的含義。
現在,成為DevOps工程師就好似成為“系統工程師2.0版本”。
換句話來說,DevOps工程師就是那些瞭解軟體開發生命週期並帶來軟體工程工具和流程來解決傳統運維挑戰的人。
DevOps最終意味著構建數字(自動)化流程,從程式碼的誕生直至產生效益。這就是它的意義所在!
同樣值得注意的是作為職業選擇,整個DevOps空間得到了高度補充,幾乎每家公司都在或是聲稱在“實施DevOps”。
不管這些公司處在哪裡,整個DevOps行業的工作機會都很豐富,在未來的幾年內將能提供很多有趣的有意義的工作。
額外需要注意僱傭“DevOps團隊”或是“DevOps部門”的公司。嚴格來說,這些事情都不應該存在,因為最終DevOps是關於文化和交付軟體的方式,而不是成立配備一個新的團隊或是部門。
現在,我們先考慮以下幾點。
你是否聽說過在Reddit和StackOverflow上一句流行的比喻,“不存在初級DevOps工程師”這話是什麼意思?
簡而言之,想要成為DevOps工程師意味著需要多年的經驗,結合對工具的紮實瞭解,才能最終成為真正有影響力的高階DevOps從業者。遺憾的是經驗這條路是沒有捷徑可尋的。深刻理解快速變化的工具和方法這些技能需要數年才能掌握。
然而大多數公司都使用大致商定的工具和概念選單,這就是本文所講述的。
再次宣告,工具與技能不同,因此當你學習工具時,請確保不要忽視自己的技能(包括面試,網路,書面溝通,故障排除等)。
最重要的是,不要忘記我們追求的目標,那就是構建一個全自動的數字化流程,將ideas轉化成能創收的程式碼。
這是本篇文章中唯一最重要的內容。


光說不練,那麼我該從何開始?

640

你可以參考以下作為路線圖。
掌握以下內容,你大可以自稱自己為DevOps工程師,如果你不喜歡“DevOps”稱謂的話也可以稱自己為雲工程師。
以下的路線代表我(以及可能是在這個領域工作的大多數人)的關於一個有競爭力的DevOps工程師該瞭解什麼的看法。也就是說,這只是一種意見,肯定會有不同的看法。
注意:你應該循序漸進,先從基礎開始。首先開始學習藍色的部分,包括Linux、Python、AWS,如果時間允許或是市場的就業需求,你應該再學習下Golang以及Google Cloud。
640
一旦你掌握了基礎部分,那麼我們開始講講現實中所需要的技能:
640

注意:上圖缺少了測試階段,這是有意為之的,編寫單元測試,整合測試與驗收測試並不容易,傳統上講這些都是落在開發者的頭上的。我這裡故意遺漏了測試階段,因為上面路線圖的目標是快速獲取新技能與工具。我認為缺少測試專業知識是從業DevOps工作上一個微不足道的障礙。
同樣請記住,我們不是在這裡學習一大堆無關的技術。這些工具結合在一起來組成一個連貫的故事,我們才能對這些工具有更深刻的理解。
上面講的是端到端的流程自動化,一個一環扣一環的數字化管道流程。
而且,你不想學習了一大堆工具就停下來。工具的變化很快,概念則是越來少。因此實踐才能出真知。
接下來我們講得深入一些。


基礎知識

640

在“基礎知識”往下一行就是所有DevOps工程師所必須掌握的技能。
行業優勢的核心有三點,那就是作業系統,程式語言以及公共雲。這些不是你可以很快能學習並掌握的東西。這些技能將是你必須持續獲取並保持敏銳的技能,請持續關注並及時瞭解相關最新情況。
我們一個一個來看看吧。
Linux是能執行幾乎所有東西的一個平臺。當然一名出色的DevOps從業者也可以完全僅使用微軟的生態系統。沒有任何法律要求Linux實現一切。
然而請注意,雖然所有DevOps工作可以通過Windows完成,但在Windows上會比較痛苦,且相關的工作機會要少得多。所以你可以放心地假設在不瞭解Linux的情況下無法成為真正的DevOps專業人員。因此,Linux是你必須不斷學習的技能。
老實說,最好的方法就是儘量多使用Linux,例如在個人電腦上安裝Fedora或Ubuntu。在使用過程中,肯定會有某些東西被破壞,那麼你會陷入困境,但你將不得不學習解決所有問題。這些都是獲取經驗的途徑。
作為參考,紅帽的分支版本在北美更為流行。因此,從Fedora或CentOS開始學起稍微有意義些。如果你還想知道是要選擇KDE還是Gnome版本,我會告訴你Linus Torvalds也用的KDE。
Python:當今占主導地位的後端語言。易於上手,廣泛使用。且Python在AI/機器學習領域非常流行,所以如果你想要轉行到另一個熱門領域,那麼你將能輕易上手!
AWS:再一次申明,如果沒有充分理解公共雲如何工作,就不可能成為一名經驗豐富的DevOps專業人士。如果你有了解過雲的知識,那你該知道AWS是這一領域的主導者,它提供了最豐富的工具集。
是否可以從Google Cloud或Azure開始?當然可以,但是我們追求最大收穫,至少在2018年,AWS是最穩當的。
當你註冊AWS帳戶時,你將獲得免費套餐,所以這是一個能讓你上手的好地方。
現在,當你登入到AWS控制檯時,你將看到一個簡單易懂的選項選單。AWS會有非常多的功能,但值得高興的是你並不需要了解每一個技術細節。
從VPC,EC2,IAM,S3,CloudWatch,ELB(在EC2保護傘下)和安全組開始,這些東西可以幫助你入門,每個現代化的支援雲的企業都會大量使用這些工具。
AWS自己的培訓站點同樣是一個很好的入門平臺。
我建議你每天留出20-30分鐘來練習Python,Linux和AWS。
注意:這將是你必須學習的其他內容的補充。總而言之,我估計每天花費一個小時,每週五次就足以讓你在6個月或更短的時間內充分了解DevOps領域的情況。
以上就是基礎層,在隨後的文章中,我們將探討下一級複雜性:如何以完全自動化的方式配置,版本,打包,部署,執行和監控軟體!
原文連結:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737


Kubernetes線下實戰培訓

640?


Kubernetes應用實戰培訓將於2018年12月21日在北京開課,3天時間帶你係統學習Kubernetes 本次培訓包括:容器特性、映象、網路;Docker特性、架構、元件、概念、Runtime;Docker安全;Docker實踐;Kubernetes架構、核心元件、基本功能;Kubernetes設計理念、架構設計、基本功能、常用物件、設計原則;Kubernetes的實踐、執行時、網路、外掛已經落地經驗;微服務架構、DevOps等,點選下方圖片檢視詳情。

640?


12月21日開課,點選閱讀原文連結即可報名。