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