原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737
原文做者:Igor Kantor
翻譯君:CODING 戴維奧普斯
據 StackOverflow 2019 開發者調研結果公佈:DevOps 專家的薪水僅次於研發管理者以及 SRE,位居第三:面試
數據來源:https://insights.stackoverflo...編程
從 DevOps 專家的熱門度來看,愈來愈多的企業意識到須要將 DevOps 從口頭落地到平常研發流程中,實實在在給企業帶來研發效能上的收益。在這場無聲變革當中,專業的 DevOps 工程師必不可少。CODING 針對想要從事 DevOps 相關崗位的開發者精心策劃了 DevOps 工程師成長日記系列,但願這系列文章可以給相關同窗帶來學習路徑上的啓發。接下來讓咱們進入到翻譯內容的正文:後端
若是屬於上述狀況的話,就繼續往下閱讀吧,接下來讓咱們一塊兒看看如何在六個月內成爲一名中級 DevOps 工程師。若是你已經從事多年 DevOps 相關工做,也仍然在尋找關於 DevOps 工程師的有效承認方式,那麼你也是該系列文章的目標讀者。網絡
關於它的定義與由來你能夠 Google 到各類前沿理論,可是大部分的解釋都是長篇大論,讓人喘不過氣來。看看我會怎麼作——我會幫你節省鼠標的點擊次數而且把關鍵信息摘出來:
DevOps 是一種研發團隊患難與共、同甘共苦交付軟件的方式。less
定義就是這麼簡單,但它意味着什麼?
這意味着,傳統意義上的開發人員(編寫軟件的人)的目標與運維人員(運行軟件的人)的目標大不相同。例如,做爲一名開發人員,我但願儘量快速地開發更多的新特性。畢竟,這是個人工做而且是客戶須要的。然而,若是我是一名運維人員,我就會但願新特性越少越好。由於每個新特性都意味着新的變動,而變動就意味着風險。
因爲這種目標錯位,DevOps 誕生了。運維
DevOps 嘗試將開發和運維融進一個研發小團隊裏,由這個小團隊共同承擔開發、部署、努力創造軟件收入的痛苦、責任(相反也多是獎勵)。
如今,純粹主義者會告訴你沒有 DevOps 工程師這樣的職位,「DevOps 是一種文化,不是一種角色」, 他們會這麼說。好吧,在技術上他們說的是正確的(最糟糕的那種「正確」)。可是正如常常發生的那樣,這個術語已經超越其原始含義。機器學習
做爲一個職業選擇,公司給 DevOps 相關崗位的薪資待遇都至關不錯,幾乎每家公司推行 DevOps 時都這樣作或聲稱這樣作。不管哪裏的公司,DevOps 相關的工做機會都很豐富,它依然會是將來幾年內有趣且有意義的工做崗位。
舒適提示:要警戒那些聲稱招聘DevOps 團隊」或「DevOps 部門」的公司。嚴格來講 DevOps 終究是關於文化和交付軟件的方式,而不是配備新的團隊或部門。編程語言
如今,讓咱們把肥宅快樂水放在一邊,考慮如下幾點:
你聽過這句古老的格言嗎 ——「世上沒有初級的 DevOps 工程師。」 它實際上是 Reddit 和 StackOverflow 上的流行比喻。這意味着須要多年的經驗,結合對工具的紮實理解,才能最終成爲真正有效的高級 DevOps 從業者。遺憾的是,沒有捷徑可行。
所以,這篇文章不是 DevOps 假裝指南。我不認爲存在可以僞裝成一位具備幾個月經驗的高級 DevOps 工程師的方法;或者在幾個月中掌握本來須要數年才能精通的快速變化的工具,和對方法的深入理解,而且這些問題目前尚未徹底解決。然而,大多數公司都使用大同小異的(或者主流的)工具和概念菜單,這些就是文章的主要內容。
工具與技能不一樣,所以在學習工具時,請確保不要忽視本身的技能(面試,網絡,書面溝通,故障排除等)。
最重要的是,不要忘記咱們追求的目標——創建一個全自動的數字化流水線,將創意轉化爲創收。工具
掌握如下內容你就能夠誠實地稱本身爲 DevOps 工程師。若是你對「DevOps」相關的 title 反感的話能夠叫本身「雲工程師」。下面的路徑圖表明我(多是在這個領域工做的大多數人)認爲的一個稱職的 DevOps 工程師應該掌握的技能。這只是一種意見,確定會有不一樣的見解,不要緊,咱們並不追求完美,先把基礎打好。
注意,你的目標是廣度優先、逐層遍歷。先從基礎開始,學習藍色標記的技術(Linux | Python | 騰訊雲/阿里雲),而後若是時間容許或者就業市場有相應需求,追蹤紫色的技術(Golang | AWS/谷歌雲)。
(譯者注:原文的工具介紹是針對國外開發者,此處爲了方便國內開發者實踐譯者進行了部分調整)單元測試
老實說,上述的基礎層是你要持續學習的東西。Linux 很複雜,須要數年才能掌握;Python 須要持續練習才能保持最新狀態;公有云發展如此迅速,以致於你今天所知道的事情可能只是它的冰山一角。可是,一旦你有一個合理的知識基礎,就擁有了進入現實世界的技能組合。下面總共有 6 個藍色列,建議每個月學習一列。
上面的學習路線中明顯缺乏 Test,這是有意爲之的。編寫單元測試、集成和驗收測試並非一件簡單的事情,傳統上是開發人員的責任。「測試」階段的遺漏是有意的,由於本路線圖的目標是快速獲取新的技能和工具。筆者認爲缺少測試專業知識是 DevOps 就業一個微不足道的障礙。
另外,請記住,咱們不是在這裏學習以及喋喋不休一大堆無關的技術。咱們須要對完整的工具備比較充分的理解。將這些工具結合在一塊兒,就能夠講述一個連貫的故事 —— 端到端的流程自動化。
你確定不但願學習一堆工具後就停下來。工具變化很快,概念變化得相對緩慢,所以你要作的是使用工具做爲進階概念的學習輔助。接下來,讓咱們再深刻探討下 DevOps 學習路線圖。
在圖一的「Foundation」下,你看到的是每一個 DevOps 工程師必須掌握的技能。你會看到三個行業主導的支柱:操做系統,編程語言,公有云。這些東西不會是一蹴而就的技能,你必須掌握以及持續學習,以保持相關性並及時瞭解最新狀況。接下來咱們逐一介紹它們:
它是幾乎全部軟件運行的地方。有人會問:能徹底處在微軟生態系統中成爲一名出色的 DevOps 從業者嗎?固然能夠,沒有任何法律要求用 Linux 來實現一切。
然而請注意,儘管全部 DevOps 相關事情均可以經過 Windows 完成,但這個過程更加痛苦,並且工做機會要少得多。如今,你能夠放心地預設在不瞭解 Linux 的狀況下沒法成爲真正的 DevOps 專業人員。所以,Linux 是你必須學習和不斷學習的東西。
最好的方法是在家裏安裝 Linux( Fedora 或 Ubuntu)並儘量多地使用它。你會破壞操做系統上的東西,會被問題困住,而後你不得不解決全部問題,在這個過程當中,你將學習到 Linux 相關的知識與技能。做爲參考,在北美紅帽系統更爲廣泛,所以從 Fedora 或 CentOS 開始也是 OK 的。若是你在猶豫是否該用 KDE 或 Gnome 版本,就用 KDE 吧,Linus Torvalds 用的就是它 : )
Linux 主流發行版本 Google Trend 對比(近 5 年數據)
Python 是現在占主導地位的後端語言,易於上手,被普遍使用。Python 在 AI 以及機器學習領域使用很是廣泛,因此若是你想要轉換到另外一個熱門領域,那麼你也會更加駕輕就熟。
若是沒有充分了解公有云的運做方式,就不可能成爲一名經驗豐富的 DevOps 專業人士。國內外雲計算領域的主導者們提供了很是豐富的工具集。
我建議你天天留出 20-30 分鐘來學習 Python,Linux 和公有云。圖二是你必須學習的補充內容。總的來講,我估計天天要花費一個小時,每週五次就足以讓你在 6 個月或更短的時間內充分了解 DevOps 相關的內容。總共有 6 個主要知識支柱,每一個支柱對應一個月的學習時間。
以上就是基礎知識的介紹,在隨後的系列文章中,咱們將探討更加複雜的問題:如何以徹底自動化的方式配置、發佈、打包、部署、運行和監控軟件。
咱們相信,在企業數字化轉型落地過程當中 ,DevOps 是企業軟件開發模式革新的重要支柱。
CODING 做爲國內領先的 DevOps 解決方案提供商,支持從需求到部署的研發全流程管理,涵蓋了項目管理、代碼管理、持續集成、製品庫管理、測試管理、部署管理、缺陷管理、知識管理,幫助企業輕鬆將創意轉化爲創收。CODING 也會持續關注並分享軟件研發領域最新理念與技術,與 DevOps 工程師一塊兒成長。