敏捷,DevOps,傻傻不分清楚
前言
敏捷是什么?DevOps是什么?兩者有什么區(qū)別?
持續(xù)集成不是XP里面的么,怎么DevOps也有持續(xù)集成?
我們之前在做敏捷轉(zhuǎn)型,現(xiàn)在又開始DevOps轉(zhuǎn)型,到底啥情況?
總覺得與其去糾纏一個定義,不如踏踏實實做點兒事情。
沒必要太糾結(jié),因為兩者都在演進,兩者也越來越像,否則不會有這些疑問。
原本沒想寫這個話題,客戶問起也只是簡單說明。
只是最近不斷有人問起,也看到有一些誤導(dǎo)性的言論,所以也許還是有必要說說自己的觀點。
這個話題注定討論不清,也注定會有不同的意見;
所有文字僅代表我一家之言,沒必要扣什么帽子;
我本人是先做敏捷后做DevOps的,這是我的知識背景;
歡迎討論,如果初衷是好的話,道理越辯越明;
恕不奉陪,如果是以混淆視聽為目的論戰(zhàn)。
先說我的觀點:
敏捷與DevOps初衷,目的是為了解決問題,不是為了樹碑立牌,更不是為了占領(lǐng)地盤。
兩者并非涇渭分明,也沒有一條線能夠劃出來,說哪邊是敏捷,哪邊是DevOps。
討論敏捷與DevOps,目的是為了了解兩者之間的內(nèi)在聯(lián)系,而不是為了劃清界限。
常常在討論的,是狹義的敏捷與DevOps概念,而廣義的敏捷與DevOps,已經(jīng)趨同。
兩者都是試圖去解決相同,或相近的問題,只是革命尚未成功,同志還需一起努力。
傻傻不分清楚,是不想分太清,沒必要分清楚,難得糊涂。
狹義的敏捷與DevOps,也許是你想聽到的兩者區(qū)別。
強調(diào)一下,這里說的,注意是狹義而不是狹隘;有狹義就有廣義,如果你堅持固守狹義的概念,會不會有點兒狹隘了呢?
傳統(tǒng)的敏捷是為了解決第一個gap,即業(yè)務(wù)與開發(fā)之間的鴻溝。通過敏捷宣言中強調(diào)的個體和互動、可工作的軟件、客戶合作、響應(yīng)變化,以及12條原則中的盡早的以及連續(xù)的高價值交付、自組織團隊、小批量交付、團隊節(jié)奏、可改善可持續(xù)的流程、保持溝通等,以及包括Scrum、Kanban、XP在內(nèi)的眾多管理和工程實踐,來實現(xiàn)開發(fā)與業(yè)務(wù)之間的頻繁溝通,快速響應(yīng)變化。
而DevOps的出現(xiàn),是為了解決圖中的第二個gap,即開發(fā)與運維之間的鴻溝。前端的敏捷的確是快了,卻發(fā)現(xiàn)因為Dev與Ops之間的隔閡,無法真正的將價值持續(xù)的交付給客戶。
開發(fā)側(cè)很快,運維側(cè)太穩(wěn),這個就是我們常說的開發(fā)與運維之間固有的、根因的沖突,即下圖中的混亂之墻。開發(fā)(尤其是“敏捷”后),求的是快速響應(yīng)變化;運維,求的是穩(wěn)定、安全和可靠的服務(wù);更重要的,兩者的KPI度量指標(biāo),績效考核激勵機制不同,決定了如果為達成各自的局部目標(biāo),勢必存在無法調(diào)和的根因沖突。
DevOps的出現(xiàn),就是為了打破開發(fā)與運維之間的部門墻,從這點上來說,我支持DevOps是敏捷在運維側(cè)的延伸這一說法。只是,敏捷與DevOps,都已經(jīng)不再是原來的那個敏捷和DevOps了;世界變化太快,問題域發(fā)生了變化,解決方案域自然也要隨之變化。
敏捷的好處是,有一個敏捷宣言,宣告其誕生;敏捷的缺點,也許也是因為有敏捷宣言;敏捷宣言并不應(yīng)該被拿來約束和限制敏捷的范圍;敏捷宣言也說擁抱變化,宣言誕生于2001年,時至今日,應(yīng)該也當(dāng)然會與時俱進,只是后來再沒有這樣的一個標(biāo)志性的事件來做聲明。
DevOps的不好之處,是沒有一個明確的定義;DevOps的好處,卻也正是因為沒有一個明確的定義做限制,所以拿來主義,一切好的東西,都可以為我所用。
DevOps是個筐,什么都可以往里裝,敏捷又何嘗不是呢?(這里全是褒義)
我是2012年在IBM接觸到DevOps的概念的,IBM對DevOps有D2O和E2E的概念,D2O,Dev to Ops,即經(jīng)典、狹義的DevOps概念,解決的是Dev到Ops的鴻溝;E2E,End to End,即端到端、廣義的DevOps,是以精益和敏捷為核心的,解決從業(yè)務(wù)到開發(fā)到運維,進而到客戶的完整閉環(huán)。
還有DevOps的6C概念,即Continuous Planning, Continuous Integration, Continuous Testing, Continuous Deploy, Continuous Release, Continuous Feedback,事實上,也是端到端廣義的DevOps。
維基百科上的總結(jié),DevOps的出現(xiàn),有四個關(guān)鍵驅(qū)動力
互聯(lián)網(wǎng)沖擊要求業(yè)務(wù)的敏捷
虛擬化和云計算基礎(chǔ)設(shè)施日益普遍
數(shù)據(jù)中心自動化技術(shù)
敏捷開發(fā)的普及
業(yè)務(wù)敏捷,開發(fā)敏捷,運維側(cè)自動化,以及云計算等技術(shù)的普及,幾乎打穿了從業(yè)務(wù)到開發(fā)到運維(當(dāng)然里面還有測試),所以雖然字面上是Dev到Ops,事實上,開玩笑的說,已經(jīng)是BizDevTestOpsSec了,即從狹義的D2O,前后延伸到E2E,端到端廣義的DevOps了。
DevOps能力成長模型,是Nicole Forsgren博士,Jez Humble以及Gene Kim三位大師,基于多年DevOps現(xiàn)狀報告的基礎(chǔ)上,匯聚出來的能力模型。(上圖是劉征老師基于Accelerate一書,以及多年DevOps現(xiàn)狀報告的基礎(chǔ)上,二次創(chuàng)新,匯總出來的模型)
從能力模型上來看,所有的連線匯聚點,也就是最終的目的,是組織效能。軟件交付和運維效能,是敏捷與DevOps共同的目標(biāo)。
其中持續(xù)交付是狹義DevOps的核心理念,橫跨了架構(gòu)、開發(fā)、測試、運維等角色;持續(xù)交付的核心開發(fā)實踐,也涵蓋了架構(gòu)管理,版本管理,分支策略,測試自動化,部署發(fā)布,運維監(jiān)控,信息安全,團隊授權(quán),數(shù)據(jù)庫管理等多個維度,其中不乏傳統(tǒng)我們常說的敏捷相關(guān)實踐,尤其是下圖中XP極限編程的很多實踐,半數(shù)以上在DevOps里都能找到。
能力成長模型,除了持續(xù)交付,還包括精益領(lǐng)導(dǎo)力、精益產(chǎn)品開發(fā)、精益管理、組織文化與學(xué)習(xí)氛圍。DevOps已遠遠不是CI/CD那么簡單,CALMS原則,也橫跨了文化、管理、精益與技術(shù)。
敏捷宣言的十二條原則,SAFe的九大原則,以及DevOps的CALMS原則,也是彼此相互融合。SAFe有借鑒DevOps的理念和方法,DevOps又采納敏捷的思想和實踐,大家又都以精益為思想核心。到底誰包含誰,誰比誰大,彼此的界限在哪里呢?
方法也好,實踐也好,其價值應(yīng)該由客戶價值來體現(xiàn)。對客戶而言,需要解決的問題,是端到端的,是全局而不是局部優(yōu)化;
所以,是什么,不重要;能解決什么,要解決什么問題,很重要。
DevOps的核心,是精益與敏捷的思想和原則,所以你說到底是敏捷包含了DevOps呢,還是DevOps包含了敏捷呢?我覺得沒必要糾纏,兩者原本已經(jīng)無法區(qū)分,也無需區(qū)分。
敏捷也好,DevOps也罷,能抓住耗子就是好貓。具體應(yīng)該叫什么,你為什么要那么糾結(jié)?
DevOps是集大成者,是各種好的原則和實踐的融合;敏捷又何嘗不是如此,2001年的17位雪鳥大師,各自在踐行著不同的敏捷框架和實踐,敏捷宣言和原則,原本就是一次融合;2003年Mary Poppendieck和Tom Poppendieck的精益軟件開發(fā)方法,即便是已經(jīng)有敏捷宣言的前提下,不也一樣納入敏捷開發(fā)的范疇么;敏捷也是在不斷前行,DevOps與敏捷殊途同歸,是同一問題的不同分支,最終匯集到同一個目標(biāo)。
一個好的方法論,應(yīng)該是與時俱進,兼容并蓄的;應(yīng)該是開放的,演進的而不是固化的。
方法論如此,學(xué)習(xí)和實踐方法論的人,更應(yīng)該如此,以一顆開放的心態(tài),接納一切合理的存在。
參考資料:
”http://www.slideshare.net/JrmeKehrli/devops-explained-72091158“
“DevOps能力成長模型”
IBM DevOps資料
維基百科
姚冬?資深DevOps與精益/敏捷專家,軟件工程專家;中國DevOpsDays社區(qū)核心組織者之一;Exin DevOps?Professional認證講師;鳳凰沙盤認證講師;SAFe SPC規(guī)?;艚葑稍儙?;認證Scrum Master,?SAFe Agilist;曾任IBM DevOps產(chǎn)品線大中華區(qū)技術(shù)總監(jiān),金融行業(yè)Technical Leader;現(xiàn)任華為云軟件開發(fā)云首席技術(shù)布道師。
軟件開發(fā)平臺 DevCloud 敏捷開發(fā) 軟件開發(fā)云 DevOps
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。