什么是 DevOps
關(guān)于它的定義與由來你可以 Google 到各種前沿理論,但是大部分的解釋都是長篇大論,讓人喘不過氣來??纯次視趺醋觥視湍愎?jié)省鼠標(biāo)的點(diǎn)擊次數(shù)并且把關(guān)鍵信息摘出來:
DevOps 是一種研發(fā)團(tuán)隊(duì)同甘共苦、患難與共交付軟件的方式。
定義就是這么簡單,但它意味著什么?
這意味著,傳統(tǒng)意義上的開發(fā)人員(編寫軟件的人)的目標(biāo)與運(yùn)維人員(運(yùn)行軟件的人)的目標(biāo)大不相同。例如,作為一名開發(fā)人員,我希望盡可能快速地開發(fā)更多的新特性。畢竟,這是我的工作并且是客戶需要的。然而,如果我是一名運(yùn)維人員,我就會希望新特性越少越好。因?yàn)槊恳粋€(gè)新特性都意味著新的變更,而變更就意味著風(fēng)險(xiǎn)。
由于這種目標(biāo)錯(cuò)位,DevOps 誕生了。
“系統(tǒng)工程師 2.0”
DevOps 嘗試將開發(fā)和運(yùn)維融進(jìn)一個(gè)研發(fā)小團(tuán)隊(duì)里,由這個(gè)小團(tuán)隊(duì)共同承擔(dān)開發(fā)、部署、努力創(chuàng)造軟件收入的痛苦、責(zé)任(相反也可能是獎(jiǎng)勵(lì))。
現(xiàn)在,純粹主義者會告訴你沒有 DevOps 工程師這樣的職位,“DevOps 是一種文化,不是一種角色”, 他們會這么說。好吧,在技術(shù)上他們說的是正確的(最糟糕的那種“正確”)。但是正如經(jīng)常發(fā)生的那樣,這個(gè)術(shù)語已經(jīng)超越其原始含義。
現(xiàn)在,成為 DevOps 工程師就像“系統(tǒng)工程師 2.0”。
換句話說,DevOps 工程師了解軟件開發(fā)生命周期,并通過軟件工程工具和流程解決傳統(tǒng)運(yùn)維挑戰(zhàn)。
DevOps 最終意味著建立一個(gè)數(shù)字流水線:從開發(fā)者的筆記本中獲取代碼直至產(chǎn)生收益的全過程。
作為一個(gè)職業(yè)選擇,公司給 DevOps 相關(guān)崗位的薪資待遇都相當(dāng)不錯(cuò),幾乎每家公司推行 DevOps 時(shí)都這樣做或聲稱這樣做。無論哪里的公司,DevOps 相關(guān)的工作機(jī)會都很豐富,它依然會是未來幾年內(nèi)有趣且有意義的工作崗位。
溫馨提示:要警惕那些聲稱招聘DevOps 團(tuán)隊(duì)”或“DevOps 部門”的公司。嚴(yán)格來說 DevOps 終究是關(guān)于文化和交付軟件的方式,而不是配備新的團(tuán)隊(duì)或部門。
免責(zé)聲明
現(xiàn)在,讓我們把肥宅快樂水放在一邊,考慮以下幾點(diǎn):
你聽過這句古老的格言嗎 ——“世上沒有初級的 DevOps 工程師。” 它其實(shí)是 Reddit 和 StackOverflow 上的流行比喻。這意味著需要多年的經(jīng)驗(yàn),結(jié)合對工具的扎實(shí)理解,才能最終成為真正有效的高級 DevOps 從業(yè)者。遺憾的是,沒有捷徑可行。
因此,這篇文章不是 DevOps 偽裝指南。我不認(rèn)為存在能夠假裝成一位具有幾個(gè)月經(jīng)驗(yàn)的高級 DevOps 工程師的方法;或者在幾個(gè)月中掌握原本需要數(shù)年才能精通的快速變化的工具,和對方法的深刻理解,并且這些問題目前還沒有完全解決。然而,大多數(shù)公司都使用大同小異的(或者主流的)工具和概念菜單,這些就是文章的主要內(nèi)容。
工具與技能不同,因此在學(xué)習(xí)工具時(shí),請確保不要忽視自己的技能(面試,網(wǎng)絡(luò),書面溝通,故障排除等)。
最重要的是,不要忘記我們追求的目標(biāo)——建立一個(gè)全自動的數(shù)字化流水線,將創(chuàng)意轉(zhuǎn)化為創(chuàng)收。
DevOps 學(xué)習(xí)路線圖
廣度優(yōu)先逐層遍歷
掌握以下內(nèi)容你就可以誠實(shí)地稱自己為 DevOps 工程師。如果你對“DevOps”相關(guān)的 title 反感的話可以叫自己“云工程師”。下面的路徑圖代表我(可能是在這個(gè)領(lǐng)域工作的大多數(shù)人)認(rèn)為的一個(gè)稱職的 DevOps 工程師應(yīng)該掌握的技能。這只是一種意見,肯定會有不同的看法,沒關(guān)系,我們并不追求完美,先把基礎(chǔ)打好。
注意,你的目標(biāo)是廣度優(yōu)先、逐層遍歷。先從基礎(chǔ)開始,學(xué)習(xí)藍(lán)色標(biāo)記的技術(shù)(Linux | Python | 騰訊云/阿里云),然后如果時(shí)間允許或者就業(yè)市場有相應(yīng)需求,追蹤紫色的技術(shù)(Golang | AWS/谷歌云)。
(譯者注:原文的工具介紹是針對國外開發(fā)者,此處為了方便國內(nèi)開發(fā)者實(shí)踐譯者進(jìn)行了部分調(diào)整)
老實(shí)說,上述的基礎(chǔ)層是你要持續(xù)學(xué)習(xí)的東西。Linux 很復(fù)雜,需要數(shù)年才能掌握;Python 需要持續(xù)練習(xí)才能保持最新狀態(tài);公有云發(fā)展如此迅速,以至于你今天所知道的事情可能只是它的冰山一角。但是,一旦你有一個(gè)合理的知識基礎(chǔ),就擁有了進(jìn)入現(xiàn)實(shí)世界的技能組合。下面總共有 6 個(gè)藍(lán)色列,建議每月學(xué)習(xí)一列。
為什么沒有測試
上面的學(xué)習(xí)路線中明顯缺少 Test,這是有意為之的。編寫單元測試、集成和驗(yàn)收測試并不是一件簡單的事情,傳統(tǒng)上是開發(fā)人員的責(zé)任?!皽y試”階段的遺漏是有意的,因?yàn)楸韭肪€圖的目標(biāo)是快速獲取新的技能和工具。筆者認(rèn)為缺乏測試專業(yè)知識是 DevOps 就業(yè)一個(gè)微不足道的障礙。
另外,請記住,我們不是在這里學(xué)習(xí)以及喋喋不休一大堆無關(guān)的技術(shù)。我們需要對完整的工具有比較充分的理解。將這些工具結(jié)合在一起,就可以講述一個(gè)連貫的故事 —— 端到端的流程自動化。
你肯定不希望學(xué)習(xí)一堆工具后就停下來。工具變化很快,概念變化得相對緩慢,因此你要做的是使用工具作為進(jìn)階概念的學(xué)習(xí)輔助。接下來,讓我們再深入探討下 DevOps 學(xué)習(xí)路線圖。
DevOps 必備基礎(chǔ)知識
在圖一的“Foundation”下,你看到的是每個(gè) DevOps 工程師必須掌握的技能。你會看到三個(gè)行業(yè)主導(dǎo)的支柱:操作系統(tǒng),編程語言,公有云。這些東西不會是一蹴而就的技能,你必須掌握以及持續(xù)學(xué)習(xí),以保持相關(guān)性并及時(shí)了解最新情況。接下來我們逐一介紹它們:
Linux
它是幾乎所有軟件運(yùn)行的地方。有人會問:能完全處在微軟生態(tài)系統(tǒng)中成為一名出色的 DevOps 從業(yè)者嗎?當(dāng)然可以,沒有任何法律要求用 Linux 來實(shí)現(xiàn)一切。
然而請注意,盡管所有 DevOps 相關(guān)事情都可以通過 Windows 完成,但這個(gè)過程更加痛苦,而且工作機(jī)會要少得多?,F(xiàn)在,你可以放心地預(yù)設(shè)在不了解 Linux 的情況下無法成為真正的 DevOps 專業(yè)人員。因此,Linux 是你必須學(xué)習(xí)和不斷學(xué)習(xí)的東西。
最好的方法是在家里安裝 Linux( Fedora 或 Ubuntu)并盡可能多地使用它。你會破壞操作系統(tǒng)上的東西,會被問題困住,然后你不得不解決所有問題,在這個(gè)過程中,你將學(xué)習(xí)到 Linux 相關(guān)的知識與技能。作為參考,在北美紅帽系統(tǒng)更為普遍,因此從 Fedora 或 CentOS 開始也是 OK 的。如果你在猶豫是否該用 KDE 或 Gnome 版本,就用 KDE 吧,Linus Torvalds 用的就是它 : )
Python
Python 是如今占主導(dǎo)地位的后端語言,易于上手,被廣泛使用。Python 在 AI 以及機(jī)器學(xué)習(xí)領(lǐng)域使用非常普遍,所以如果你想要轉(zhuǎn)換到另一個(gè)熱門領(lǐng)域,那么你也會更加得心應(yīng)手。
公有云
如果沒有充分了解公有云的運(yùn)作方式,就不可能成為一名經(jīng)驗(yàn)豐富的 DevOps 專業(yè)人士。國內(nèi)外云計(jì)算領(lǐng)域的主導(dǎo)者們提供了非常豐富的工具集。
我建議你每天留出 20-30 分鐘來學(xué)習(xí) Python,Linux 和公有云。圖二是你必須學(xué)習(xí)的補(bǔ)充內(nèi)容??偟膩碚f,我估計(jì)每天要花費(fèi)一個(gè)小時(shí),每周五次就足以讓你在 6 個(gè)月或更短的時(shí)間內(nèi)充分了解 DevOps 相關(guān)的內(nèi)容??偣灿?6 個(gè)主要知識支柱,每個(gè)支柱對應(yīng)一個(gè)月的學(xué)習(xí)時(shí)間。
以上就是基礎(chǔ)知識的介紹,在隨后的系列文章中,我們將探討更加復(fù)雜的問題:如何以完全自動化的方式配置、發(fā)布、打包、部署、運(yùn)行和監(jiān)控軟件。
譯后記
我們相信,在企業(yè)數(shù)字化轉(zhuǎn)型落地過程中 ,DevOps 是企業(yè)軟件開發(fā)模式革新的重要支柱。
CODING 作為國內(nèi)領(lǐng)先的 DevOps 解決方案提供商,支持從需求到部署的研發(fā)全流程管理,涵蓋了項(xiàng)目管理、代碼管理、持續(xù)集成、制品庫管理、測試管理、部署管理、缺陷管理、知識管理,幫助企業(yè)輕松將創(chuàng)意轉(zhuǎn)化為創(chuàng)收。CODING 也會持續(xù)關(guān)注并分享軟件研發(fā)領(lǐng)域最新理念與技術(shù),與 DevOps 工程師一起成長。
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69509 -
devops
+關(guān)注
關(guān)注
0文章
126瀏覽量
12492
發(fā)布評論請先 登錄


硬件工程師看了只會找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

(仰天長嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師




硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技


當(dāng)硬件工程師穿越到霸總?。?以他性格肯定忍不到第二集? #硬件工程師 #電路設(shè)計(jì) #晶振 #揚(yáng)興科技

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛好者 #硬件工程師 #晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?
LM318 COMP管腳是什么引腳,干什么用的?

評論