DevOps已經(jīng)占據(jù)了軟件行業(yè)舞臺(tái)的中心,DevOps工程師在工作中扮演的角色也越來(lái)越重要。今天,筆者要跟大家分享自己的一些想法,關(guān)于如何成為一名優(yōu)秀的DevOps工程師。
什么是DevOps?
DevOps這個(gè)名詞來(lái)源于developers和operations的組合。維基百科中對(duì)它的解釋是:
DevOps(Development和Operations的組合詞)是一種重視“軟件開(kāi)發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動(dòng)或慣例。透過(guò)自動(dòng)化“軟件交付”和“架構(gòu)變更”的流程,來(lái)使得構(gòu)建、測(cè)試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。
如今,數(shù)字化轉(zhuǎn)型正發(fā)生在每一個(gè)部門(mén)中——而如果你無(wú)法跟上技術(shù)發(fā)展的步伐,你的業(yè)務(wù)很可能會(huì)在未來(lái)幾年內(nèi)走向死亡。自動(dòng)化會(huì)是其中的關(guān)鍵部分,每一個(gè)公司都想要擺脫重復(fù)的任務(wù),然后讓其自動(dòng)運(yùn)轉(zhuǎn),以盡可能提高工作效率。這就是DevOps出現(xiàn)的原因。它衍生于Agile和Lean技術(shù),不過(guò)它目前在軟件行業(yè)中仍然是一項(xiàng)新興技術(shù)。
隨著像Docker、AWS、Puppet、GitHub等工具和平臺(tái)使用率的增加,公司可以更簡(jiǎn)單地利用自動(dòng)化,完成他們的目標(biāo)。
什么是DevOps工程師?
采用DevOps有一個(gè)重要的部分就是在開(kāi)發(fā)與運(yùn)營(yíng)團(tuán)隊(duì)之間建立更好的合作關(guān)系。關(guān)于這個(gè)部分,建議將這些團(tuán)隊(duì)聚集在一起,解決每個(gè)人在進(jìn)程與工作流程中所遇到的問(wèn)題,甚至可以設(shè)立一個(gè)能做任何事的跨職能團(tuán)隊(duì)。當(dāng)然,在這個(gè)辦法里,Dev仍然是Dev,Ops仍然是Ops。
DevOps工程師存在的意義就在于填補(bǔ)Dev和Ops之間的鴻溝,公司在雇傭這類(lèi)工程師時(shí),一般會(huì)尋找那些擁有極佳的編碼能力和能夠掌控所有運(yùn)營(yíng)功能的人。簡(jiǎn)單來(lái)說(shuō),一名DevOps工程就是具備運(yùn)營(yíng)思維的開(kāi)發(fā)者。同時(shí),應(yīng)掌握以下幾種技能:
·能夠熟練掌握各種Ops和自動(dòng)化工具
·善于編寫(xiě)腳本
·熟悉處理頻繁測(cè)試和增量發(fā)布
·了解Ops所存在的挑戰(zhàn)以及它們是如何在設(shè)計(jì)與開(kāi)發(fā)過(guò)程中被解決的
·具備能夠更好地與團(tuán)隊(duì)合作的軟技能
如何成為一名優(yōu)秀的DevOps工程師?
要成為一名優(yōu)秀的DevOps工程師,應(yīng)該關(guān)注以下幾點(diǎn):
·了解DveOps的基本概念,并將自動(dòng)化的思想深植于腦海
·了解各種不同的DevOps工具,如AWS、GitHub、Puppet、Docker、Chef、New Relic、Ansible、Shippable、JIRA、Slack等
·擁有長(zhǎng)遠(yuǎn)的Ops思維模式。當(dāng)開(kāi)發(fā)者們?cè)O(shè)計(jì)軟件時(shí),會(huì)遇到很多常見(jiàn)的Ops陷阱。在設(shè)計(jì)開(kāi)發(fā)軟件時(shí),及時(shí)提醒開(kāi)發(fā)者會(huì)對(duì)避免這些問(wèn)題大有幫助,這樣比帶著問(wèn)題運(yùn)營(yíng)然后再修復(fù)它們要強(qiáng)得多。試著建立一個(gè)設(shè)計(jì)綜述模板來(lái)讓這個(gè)過(guò)程標(biāo)準(zhǔn)化。
·端對(duì)端合作以及幫助他人解決問(wèn)題時(shí)非常重要的
·你應(yīng)該成為一個(gè)腳本專家——Bash、Powershell、Perl、Ruby、JavaScript、Python,你必須能夠編寫(xiě)代碼自動(dòng)完成重復(fù)的任務(wù)。
衡量DevOps是否成功的因素
·部署頻率
·代碼更改的交付周期
·回退率
·CI/CD的自動(dòng)化工具的使用
·測(cè)試自動(dòng)化
·滿足業(yè)務(wù)目標(biāo)
·更快的上市時(shí)間
·顧客滿意率