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