Целеваяаудитория
您是一名開發人員,希望將自己的職業生涯轉向更先進的 DevOps 模式嗎? 您是典型的 Ops 工程師並想了解 DevOps 的含義嗎? 或者您兩者都不是,並且在 IT 行業工作了一段時間後想要轉行但不知道從哪裡開始?
如果是,請繼續閱讀,了解如何在六個月內成為中級 DevOps 工程師! 最後,如果您已經參與 DevOps 多年,您仍然可以從本系列文章中獲益匪淺,了解整合和自動化產業目前的狀況以及未來的發展方向。

這到底是什麼?
首先,什麼是DevOps? 你可以穀歌定義並費力地瀏覽所有的措辭,但要知道大多數定義只是以流線型形式包裝的一堆混亂的單字。 因此,我將為您總結所有這些定義:DevOps 是一種交付軟體的方法,其中所有參與者共同分擔頭痛和責任。 就這樣。
好吧,但是這個縮寫是什麼意思呢? 這意味著傳統上,開發人員(創建軟體的人)的工作動機與營運人員(管理軟體的人)明顯不同。 例如,作為一名開發人員,我想盡快創建盡可能多的新功能。 畢竟,這是我的工作,這是客戶的要求! 然而,如果我是維運人員,那麼我需要盡可能少的新功能,因為每一個新功能都是一個變化,而任何變化都充滿了問題。 由於這種激勵錯位,DevOps 誕生了。
DevOps 嘗試將開發和營運(整合和自動化)合併為一組。 這個想法是,一個團隊現在將分擔建立、部署面向客戶的軟體並從中創造收入的痛苦和責任(以及可能的回報)。
純粹主義者會告訴你,不存在「DevOps 工程師」這樣的東西。他們會告訴你,「DevOps 是一種文化,而不是一個角色。」當然,從技術角度來看,他們是對的,但是,事實上通常情況下,這個術語已經失控除了它的原始含義之外,DevOps 工程師有點像「系統工程師 2.0」。換句話說,他是了解軟體開發生命週期並創建軟體開發工具和流程的人解決經典的操作問題。

DevOps 最終意味著創建數位管道,從開發人員的筆記型電腦中獲取程式碼並將其轉化為使用最終產品的收入,這就是它的全部內容。 請注意,選擇 DevOps 職業可以獲得相當高的經濟回報,幾乎每家公司要么“從事 DevOps”,要么聲稱自己是其中之一。 無論這些公司位於何處,DevOps 的整體就業機會都相當高,並且在未來許多年提供「有趣」且有意義的就業機會。
然而,要警惕僱用「DevOps 團隊」或「DevOps 部門」的公司。嚴格來說,這樣的事情不應該存在,因為最終DevOps 仍然是一種文化和一種交付軟體的方式,而不是配備一個新團隊或創建一個部門一個奇特的名字。
拒絕承擔責任
現在讓我們把一杯酷愛飲料放在一邊,思考以下問題。 您是否聽過「沒有初級 DevOps 工程師」這句古老的格言? 如果沒有,那就知道這是 Reddit 和 StackOverflow 上的流行比喻。 但這是什麼意思?
簡而言之,這句話的意思是需要多年的經驗加上對工具的深入理解,才能最終成為一個真正有效的高級 DevOps 實踐者。 不幸的是,要實現這一目標沒有捷徑。 因此,這並不是試圖玩弄系統 - 我認為實際上不可能冒充擁有幾個月行業經驗的高級 DevOps 工程師。 要對快速變化的工具和方法有深入的了解,需要多年的經驗,這是無法迴避的。 然而,大多數公司都使用幾乎一致的(時尚的,如果你願意的話)工具和概念選單,這就是我們將要討論的內容。
同樣,工具與技能不同,因此在學習工具時,請確保不要忽視您的技能(調查、網路、書面溝通、故障排除等)。 最重要的是,不要忽視我們想要找到的東西——一種創建完全自動化的數位管道的方法,該管道可以吸收想法並將其轉化為創造收入的程式碼片段。 這是整篇文章中最重要的結論!
廢話夠多了,我什麼時候可以開始?
以下是 DevOps 基礎知識路線圖。 在掌握了其中描述的所有內容後,您可以安全且誠實地稱自己為 DevOps 工程師! 如果您不喜歡“DevOps”這個名字,或者是雲端工程師。

這張地圖代表了我(也可能是這個領域的大多數工作人員)對於一名稱職的 DevOps 工程師應該了解的知識的想法。 不過,這只是一種意見,當然也會有不同意的人。 這可以! 我們在這裡並不追求完美,我們正在努力為我們的實際建設奠定堅實的基礎。
你必須循序漸進地完成這個過程,一層一層地來。你應該從基礎知識開始(並且堅持下去!),首先學習藍色高亮顯示的要素— Linux先學習 Python 和 AWS。然後,如果時間或就業市場需求允許,再學習更進階的技術—Golang 和 Google Cloud。
坦白說,底層基礎知識是你永遠學不完的。作業系統 Linux 它非常複雜,需要數年才能精通。 Python 需要不斷練習才能保持最新狀態。 AWS 的發展速度非常快,你今天掌握的知識一年後可能只是你全部知識的一小部分。一旦你掌握了基礎知識,就可以開始學習真正的技能了。請注意,這裡有六個藍色欄位(配置、版本、打包、部署、啟動、監控),每個月對應一個學習列。

當然,您注意到我們六個月的流程中缺少一個重要階段 - 測試。 我故意沒有將其包含在路線圖中,因為編寫模組、整合和驗收測試並不容易,並且傳統上落在開發人員的肩上。 跳過「測試」階段的原因是,該路線圖的目標是盡快掌握基本技能和工具。 作者認為,缺乏測試經驗只是正確使用 DevOps 的小障礙。
另外,請記住,我們在這裡學習的不是一大堆不相關的技術廢話,而是對組合在一起創建清晰故事的工具的理解。 這個故事是關於端到端流程自動化的——一條像裝配線一樣移動部件的數位裝配線。 您不想學習一堆工具卻又停下來! DevOps 工具變化很快,但概念變化的頻率要低得多。 因此,您應該努力使用工具作為更高層次概念的教學代理。
好吧,讓我們再深入一點!
基礎知識
在最上面的「Foundation」步驟下面,您可以看到每個 DevOps 工程師都應該掌握的技能。 這些技能有信心處理產業的三大支柱,它們是:作業系統、程式語言和公有雲。 這些東西不是你可以快速學習並繼續前進的東西。 這些技能需要不斷提高和掌握,才能處於行業前沿並與您周圍的專業環境相關。 讓我們一一分析一下。
Linux 這就是關鍵所在。你能否在完全融入微軟生態系統的同時,成為優秀的 DevOps 實踐者?當然可以!沒有任何規定說你必須只使用微軟的產品。 Linux然而,請注意,儘管所有事情 Linux 可以在…中完成 Windows在那裡,這種情況發生得更痛苦,功能也更有限。此時,我們可以肯定地說,在缺乏相關知識的情況下,這種情況難以避免。 Linux 成為真正的DevOps專業人士是不可能的,所以 Linux 這是你必須學習和掌握的東西。
說實話,最好的方法就是直接安裝。 Linux (軟呢帽或 Ubuntu在家盡可能多地使用它。當然,你會弄壞很多東西,陷入工作流程的瓶頸,必須修復所有問題,但你會從中學到很多東西。 Linux!

順便一提,在北美,Red Hat 的各種衍生版本更常見,所以從 Fedora 或 Fedora 開始是合理的。 CentOS如果你還在猶豫要買KDE版還是GNOME版,那就選KDE版。這是Linus Torvalds本人所使用的版本。
Python 是當今占主導地位的後端語言。 它很容易上手並且被廣泛使用。 Python在人工智慧和機器學習領域非常常見,所以如果你想進入另一個熱門領域,你將做好充分的準備。

Amazon Web Services:同樣,如果不充分了解公有雲的工作原理,就不可能成為經驗豐富的 DevOps 專業人士。 如果您想了解更多信息,請查看 Amazon Web Services。 它是該服務領域的領導者,並提供最豐富的工作工具集。
是否可以從 Google Cloud 或 Azure 開始? 當然可以! 但回想上次金融危機,應該指出的是,AWS 是最安全的選擇,至少在 2018 年是這樣,因為它允許您免費註冊帳戶並開始探索雲端服務的可能性。 此外,AWS控制台也為使用者提供了一個簡單明了的選單供使用者選擇。 好消息是,您不需要了解亞馬遜的所有技術即可做到這一點。

從以下內容開始:VPC、EC2、IAM、S3、CloudWatch、ELB(EC2 旗下的彈性負載平衡)和安全性群組。 這些東西足以讓您入門,每個基於雲端的現代企業都非常積極地使用這些工具。 AWS 自己的培訓網站是一個很好的起點。
我建議你每天花 20-30 分鐘學習和練習 Python 語言和作業系統。 Linux 除了AWS雲端服務之外,你還需要學習其他一些知識。總的來說,我認為每週五天,每天花一個小時,就足以在六個月或更短的時間內理解DevOps產業的流程。它包含六個主要部分,每個部分對應一個月的訓練時間。這就是你掌握基礎知識所需的一切。
在後續文章中,我們將探討下一個複雜程度:如何完全自動化軟體的配置、版本控制、打包、部署、運作和監控。
很快就會繼續......
一些廣告🙂
感謝您與我們在一起。 你喜歡我們的文章嗎? 想看更多有趣的內容? 通過下訂單或推薦給朋友來支持我們, , 我們為您發明的入門級服務器的獨特模擬: (適用於 RAID1 和 RAID10,最多 24 個內核和最多 40GB DDR4)。
Dell R730xd 在阿姆斯特丹的 Equinix Tier IV 數據中心便宜 2 倍? 只有這裡 在荷蘭! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 閱讀
來源: www.habr.com
