發(fā)布于:2021-01-22 13:32:12
0
145
0
DevOps已經(jīng)成為其中一個(gè)流行語,有許多相互矛盾的定義??梢钥隙ǖ氖撬谏仙?。在我們2020年的開發(fā)者調(diào)查中,大約80%的受訪者認(rèn)為DevOps至少有點(diǎn)重要。我們來看看這個(gè)現(xiàn)象,一些定義,和我們的工程師談?wù)勎覀兊恼{(diào)查數(shù)據(jù)所反映的一些趨勢(shì)。
什么是DevOps?為什么它如此流行?
DevOps試圖解決的問題就在名字里。它旨在克服編寫代碼的團(tuán)隊(duì)(Dev)和管理用于運(yùn)行和管理產(chǎn)品的基礎(chǔ)設(shè)施和工具的團(tuán)隊(duì)(Ops)之間的制度鴻溝。隨著軟件開發(fā)生命周期變得越來越復(fù)雜,跟蹤結(jié)果的責(zé)任變得越來越困難,也越來越容易將瓶頸、延遲的截止日期或產(chǎn)品質(zhì)量的缺陷歸咎于其他部門。
開發(fā)人員、質(zhì)量保證人員和經(jīng)常進(jìn)一步分散的運(yùn)營(yíng)團(tuán)隊(duì)可能不知道彼此的障礙,對(duì)業(yè)務(wù)環(huán)境幾乎沒有洞察,甚至目標(biāo)相反。不信任正在損害這個(gè)組織,讓所有參與的人都不高興。
StackOverflow的站點(diǎn)可靠性工程經(jīng)理TomLimoncelli簡(jiǎn)短地指出了難點(diǎn):“大多數(shù)地方的軟件開發(fā)生命周期都被打破了。DevOps有助于解決這個(gè)問題?!?/span>
術(shù)語DevOps體現(xiàn)了對(duì)我們這個(gè)時(shí)代最關(guān)鍵問題之一的解決方案:軟件團(tuán)隊(duì)如何才能最好地提供業(yè)務(wù)價(jià)值?答案是什么?開發(fā)人員和操作人員一起工作(DevOps),而不是孤立地工作。
如果DevOps信守承諾,其好處可以包括改進(jìn)部署頻率、加快上市時(shí)間、降低新版本的失敗率以及縮短修復(fù)間隔時(shí)間。隨著更大的可預(yù)測(cè)性、效率、安全性和可維護(hù)性的好處在整個(gè)生命周期中不斷涌現(xiàn)?;蛘吆?jiǎn)單地說,就像Stack Overflow的首席產(chǎn)品官Teresa Dietrich一樣,“正確的DevOps文化最終會(huì)讓您交付的產(chǎn)品更好?!?/span>
今年的Stack Overflow Developer調(diào)查中,44%的受訪者在至少有一名DevOps員工的組織工作,世界各地的許多工程團(tuán)隊(duì)都在努力減輕現(xiàn)代軟件開發(fā)的一些痛苦。
那么,DevOps如何兌現(xiàn)承諾呢?
DevOps試圖解決哪些問題?
在高層次上,DevOps有三個(gè)支柱:通信、自動(dòng)化和測(cè)量。DevOps的狀態(tài)報(bào)告發(fā)現(xiàn),在DevOps取得成功的公司共享這些共同的線索
讓我們進(jìn)一步分析一下,看看一些DevOps實(shí)踐以及它們?cè)噲D解決的問題。
從孤島到團(tuán)隊(duì)思維
開發(fā)人員主要與開發(fā)人員合作,運(yùn)營(yíng)工程師主要與運(yùn)營(yíng)工程師合作,基礎(chǔ)設(shè)施工程師關(guān)注他們的基礎(chǔ)設(shè)施問題。很容易被孤立。
不同的部門和專家需要開始作為一個(gè)團(tuán)隊(duì),朝著一個(gè)目標(biāo)思考。為了使團(tuán)隊(duì)在沒有摩擦的情況下共同工作,需要進(jìn)行文化轉(zhuǎn)變,并使用適當(dāng)?shù)墓ぞ邅砉膭?lì)透明度。
這個(gè)想法被廣泛引用的Gene Kim描述為所有SDLC步驟之間的平穩(wěn)過渡,從確定需求到實(shí)際構(gòu)建應(yīng)用程序,然后將代碼移交給IT操作,最后交付給客戶機(jī)。
發(fā)布期間不再有“地獄月”
當(dāng)孤島盛行時(shí),大多數(shù)公司會(huì)在應(yīng)用程序部署的開發(fā)人員和操作人員之間感到更大的痛苦。
Limoncelli記得,他在其他公司工作時(shí),新版本意味著需要數(shù)天或數(shù)周的手動(dòng)部署,而這涉及到周末工作的情況并不少見。很多地方都有“地獄月”:這是一段緊張的時(shí)期,每個(gè)人都急于完成發(fā)布并部署它。在一些公司,這種情況一年發(fā)生12次以上,“有了良好的DevOps實(shí)踐,那些‘地獄般的月份’就消失了。自動(dòng)化是本月工作的重要組成部分。這可以防止消耗,減少損耗,使企業(yè)更具可持續(xù)性。
同樣,DevOps的狀態(tài)報(bào)告也顯示了交付團(tuán)隊(duì)需要標(biāo)準(zhǔn)化他們的模式和組件。報(bào)告作者承認(rèn),這項(xiàng)任務(wù)的復(fù)雜性差異很大?!坝行┣蜿?duì)做這件事時(shí)沒有考慮太多。其他人,特別是那些從整個(gè)組織繼承代碼的人,必須采取系統(tǒng)的方法消除變量并實(shí)現(xiàn)標(biāo)準(zhǔn)化。”
然而,利蒙切利確信,變化正在發(fā)生。他很高興看到文化的變化。從招聘的角度來看,他告訴我,過去缺少“地獄月”是只有少數(shù)公司能提供的“額外津貼”。“最終,”他預(yù)測(cè),“沒有良好的DevOps實(shí)踐的公司將發(fā)現(xiàn)很難聘用。”
標(biāo)準(zhǔn)化技術(shù)堆棧和惰性路徑
不必要的復(fù)雜性和變化有許多歷史或政治原因。因此,標(biāo)準(zhǔn)化作為過程的一部分使自動(dòng)化更容易。
Splunk首席技術(shù)倡導(dǎo)者安迪曼(Andi Mann)在《DevOps州報(bào)告》(State of DevOps report)中寫道,成功的公司表現(xiàn)出“齊心協(xié)力,使堆棧正?;?,消除需要一次性維護(hù)、測(cè)試和管理的異常值或雪花。”,將應(yīng)用程序配置保持在版本控制中,在部署之前測(cè)試基礎(chǔ)結(jié)構(gòu)更改,并將源代碼提供給其他團(tuán)隊(duì),作為DevOps早期階段的基本步驟。
對(duì)于如何使DevOps成功的新觀點(diǎn),Limoncelli建議努力做到“低語境”。
低語境系統(tǒng),相對(duì)于高語境系統(tǒng),需要的先驗(yàn)知識(shí)很少。利蒙切利給我舉了一個(gè)簡(jiǎn)單的例子:機(jī)場(chǎng)標(biāo)識(shí)很容易理解,因?yàn)槊總€(gè)人,來自世界各地的旅客都可能需要知道如何去洗手間(如果你幸運(yùn)的話)。而家庭聚餐的習(xí)俗,以及所有出席者之間的復(fù)雜關(guān)系,都是幾十年來學(xué)來的,沒有寫下來。
利蒙切利認(rèn)為,當(dāng)DevOps團(tuán)隊(duì)努力創(chuàng)造一個(gè)低語境的工作環(huán)境時(shí),他們會(huì)更加有效。例如,他主張讓人們采納推薦的做法的最好方法就是把它變成“懶惰之路”?!叭绻鷮?duì)CI/CD和Git等基礎(chǔ)工具的默認(rèn)設(shè)置與您推薦的實(shí)踐相匹配,那么您就是在讓做正確的事情和做簡(jiǎn)單的事情一樣。你希望人們落入成功的深淵?!?/span>
如果您想了解有關(guān)創(chuàng)建低上下文DevOps環(huán)境的更多信息,請(qǐng)單擊此處查看Tom的網(wǎng)絡(luò)研討會(huì)(免費(fèi),需要注冊(cè))。
重復(fù)一個(gè)過程和完善也是由基因表達(dá)的,“重復(fù)和實(shí)踐是掌握的先決條件?!?/span>
DevOps的狀態(tài)討論了在這種情況下構(gòu)建塊的重用。它指出,通過對(duì)共享模式的反饋,這不僅節(jié)省了“消耗”構(gòu)建塊時(shí)間和精力的團(tuán)隊(duì),還改進(jìn)了整個(gè)組織使用的工具。
說到反饋:這是DevOps需要掌握的另一項(xiàng)技能。
從手指指向反饋循環(huán)
如果你給你的同事帶來了你應(yīng)該懷疑的好處,那么你可以假設(shè)一個(gè)問題只會(huì)因?yàn)槿狈π畔⒒驕贤ǘ惶叩介_發(fā)周期的下一個(gè)團(tuán)隊(duì)。答案是:多分享。
正如吉恩所指出的,“分享帶來信任,信任帶來更高層次的合作?!痹谒腄evOps整體理論中,反饋循環(huán)是他的三個(gè)“DevOps之路”原則之一。
正如一個(gè)堆棧溢出用戶在寫Gene的循環(huán)時(shí)所說,“這是通過持續(xù)的集成/交付/部署以及共享的監(jiān)視和警報(bào)來實(shí)現(xiàn)的?!?。他們將自助服務(wù)監(jiān)控和警報(bào)視為解決開發(fā)人員和操作人員在孤島中工作的反模式問題的良方之一。“只需開放對(duì)這些關(guān)鍵指標(biāo)的訪問,就可以形成共享文化、填充反饋循環(huán)、實(shí)現(xiàn)持續(xù)反饋,并促進(jìn)團(tuán)隊(duì)間的持續(xù)學(xué)習(xí)文化。”
根據(jù)Gene的說法,這種從Ops到Dev的反饋循環(huán)意味著每個(gè)開發(fā)人員都應(yīng)該努力理解所有客戶的反饋。在這里,他把下屬部門視為內(nèi)部客戶。
利蒙切利還認(rèn)為,DevOps預(yù)示著指指點(diǎn)點(diǎn)文化的終結(jié),“探戈需要兩個(gè)人,”他喜歡這樣說?!斑@些改進(jìn)不能僅僅由開發(fā)人員或操作人員(操作工程師、系統(tǒng)管理員、生產(chǎn)工程師、SRE)自己完成。DevOps就是要共同承擔(dān)責(zé)任,從而實(shí)現(xiàn)合作?!?/span>
與失敗交朋友
DevOps的心態(tài)不僅包括更好地傳遞錯(cuò)誤反饋。這意味著一開始就要善于犯錯(cuò)。
基恩所描述的支柱之一是不斷的實(shí)驗(yàn),他強(qiáng)調(diào)冒險(xiǎn)和從失敗中吸取教訓(xùn)的重要性。蒂姆·亨特(timhunter)對(duì)Gene的三種方式的理解已進(jìn)入官方正典,他解釋說,DevOps的人們需要“實(shí)踐中斷,并找到創(chuàng)新的方法來處理它們。”
他們都認(rèn)為DevOps給了團(tuán)隊(duì)克服限制的信心,因?yàn)橛幸粋€(gè)過程可以依靠并處理結(jié)果。更頻繁的迭代和反饋會(huì)產(chǎn)生更好的產(chǎn)品。
到處都是DevOps?
從2008年多倫多敏捷大會(huì)那天開始,它已經(jīng)走過了很長(zhǎng)的一段路,當(dāng)時(shí)圍繞Ops和Dev如何改進(jìn)協(xié)作的討論只吸引了一位聽眾。相比之下,今年的Stack Overflow developer調(diào)查中,80%的受訪者認(rèn)為DevOps至少有點(diǎn)重要。
此外,44%的人報(bào)稱在至少有一名DevOps員工的地方工作。我們還看到,該領(lǐng)域?qū)<业膬r(jià)格標(biāo)簽反映了需求的增長(zhǎng)。對(duì)于個(gè)人貢獻(xiàn)者來說,專業(yè)化排在工資級(jí)別的首位。
不僅如此,如果考慮到經(jīng)驗(yàn)的話,我們會(huì)發(fā)現(xiàn)DevOps的薪水要比在不同角色中擁有相似經(jīng)驗(yàn)的開發(fā)人員高得多。
盡管今年約有12%的開發(fā)者調(diào)查參與者自稱是DevOps專家,但采用DevOps思維模式的過程絕不意味著要雇傭一位擁有DevOps頭銜的高薪專家,并完成這項(xiàng)工作。DevOps工程師應(yīng)該構(gòu)建工具并指導(dǎo)人們使用DevOps實(shí)踐。錯(cuò)誤的方法是讓一個(gè)專門的DevOps團(tuán)隊(duì)為其他人完成工作,并由此創(chuàng)建一個(gè)新的豎井。這正是DevOps打算拆除的。
作者介紹
熱門博客推薦