【漫話DevOps】Agile,CI/CD,DevOps

隨著DevOps理念的普及與擴散,可能會被一大堆名字概念搞的莫名其妙逞刷,理清它們之間的關(guān)系可以幫助團隊知道DevOps如何落地嘉涌,改善工作流程。

Here’s a quick and easy way to differentiate agile, DevOps, and CI/CD:

  • Agile focuses on processes highlighting change while accelerating delivery.
  • CI/CD focuses on software-defined life cycles highlighting tools that emphasize automation.
  • DevOps focuses on culture highlighting roles that emphasize responsiveness.
image.png

Agile Development

  • 擁抱變化
  • 快速迭代


    image.png

CI /CD

CI/CD 都體現(xiàn)了如今快節(jié)奏市場中的文化和發(fā)展原則夸浅,旨在縮短開發(fā)周期仑最、提高軟件交付效率以及實現(xiàn)全流程的自動化。同時帆喇,兩者都有著共同的目標:讓軟件開發(fā)更少地依賴于手動執(zhí)行的任務(wù)词身,在此基礎(chǔ)上使得軟件的發(fā)布更加頻繁、更加安全可靠番枚。由于有著相同的目標法严,因此持續(xù)集成和持續(xù)交付并非相互排斥的, 只是它們的應(yīng)用范圍有所不同损敷。

  • CI:持續(xù)集成(CONTINUOUS INTEGRATION)
  • CD:持續(xù)部署(CONTINUOUS DEPLOYMENT)
  • CD:持續(xù)交付(CONTINUOUS DELIVERY)

持續(xù)集成CI(Continuous Integration)

參考大師的定義: http://www.martinfowler.com/articles/continuousIntegration.html

持續(xù)集成(CI)是在源代碼變更后自動檢測、拉取深啤、構(gòu)建和(在大多數(shù)情況下)進行單元測試的過程

  • 對項目而言拗馒,持續(xù)集成(CI)的目標是確保開發(fā)人員新提交的變更是好的, 不會發(fā)生break build; 并且最終的主干分支一直處于可發(fā)布的狀態(tài)溯街,

  • 對于開發(fā)人員而言诱桂,要求他們必須頻繁地向主干提交代碼,相應(yīng)也可以即時得到問題的反饋呈昔。實時獲取到相關(guān)錯誤的信息挥等,以便快速地定位與解決問題


    image.png

顯然這個過程可以大大地提高開發(fā)人員以及整個IT團隊的工作效率,避免陷入好幾天得不到好的“部署產(chǎn)出”堤尾,影響后續(xù)的測試和交付肝劲。

持續(xù)交付 (Continuous Delivery)

持續(xù)交付在持續(xù)集成的基礎(chǔ)上,將集成后的代碼部署到更貼近真實運行環(huán)境的「預(yù)發(fā)布環(huán)境」(production-like environments)中郭宝。交付給質(zhì)量團隊或者用戶辞槐,以供評審。如果評審?fù)ㄟ^粘室,代碼就進入生產(chǎn)階段 持續(xù)交付并不是指軟件每一個改動都要盡快部署到產(chǎn)品環(huán)境中榄檬,它指的是任何的代碼修改都可以在任何時候?qū)崟r部署。


image.png

強調(diào):
1衔统、手動部署
2鹿榜、有部署的能力,但不一定部署

持續(xù)部署(Continuous Deployment)

代碼通過評審之后锦爵,自動部署到生產(chǎn)環(huán)境中犬缨。持續(xù)部署是持續(xù)交付的最高階段。

強調(diào)
1棉浸、持續(xù)部署是自動的
2、持續(xù)部署是持續(xù)交付的最高階段
3刺彩、持續(xù)交付表示的是一種能力迷郑,持續(xù)部署則是一種方式


image.png
  • DEV Development environment -開發(fā)環(huán)境,用于開發(fā)者調(diào)試使用
  • FAT Feature Acceptance Test environment -功能驗收測試環(huán)境创倔,用于軟件測試者測試使用
  • UAT User Acceptance Test environment -用戶驗收測試環(huán)境嗡害,用于生產(chǎn)環(huán)境下的軟件測試者測試使用
  • PRO Production environment -生產(chǎn)環(huán)境

通過CD可以加快軟件交付速度,目標用戶可以在幾天或幾周內(nèi)就收到修復(fù)后的功能與新增的功能畦攘,而無需等待數(shù)月后才更新霸妹。CD的部署頻率也加快了整個流程中的反饋循環(huán)。最新版本真的解決了預(yù)期的問題嗎知押?是否滿足了用戶的需求叹螟?用戶就可以快速地驗收并作出判斷鹃骂,而IT團隊也可以在問題影響到開發(fā)周期之前就解決反饋的問題。持續(xù)的反饋循環(huán)使得用戶與IT團隊更緊密地合作罢绽,以確保能準確的理解與滿足他們的需求畏线。整個交付過程進度可視化,方便團隊人員與客戶了解項目的進度良价。

  • 持續(xù)集成可確保代碼庫中始終保持最新的代碼寝殴,同時可以快速集成來自多個開發(fā)人員的代碼,并確保這些代碼可在多個環(huán)境中協(xié)同工作明垢。它通常有助于減少錯誤并通過自動化流程來減少手動任務(wù)蚣常。CI可以實現(xiàn)代碼的自動構(gòu)建與測試,減少開發(fā)中的Bug痊银。因此抵蚊,CI適用于那些過度依賴手動任務(wù)和復(fù)雜構(gòu)建過程的企業(yè)。

  • 持續(xù)交付適用于需要縮短開發(fā)周期曼验,更快地為目標用戶提供軟件的企業(yè)泌射。CD降低了部署新軟件或升級已有軟件的難度,且實現(xiàn)了全流程的自動化鬓照,因此您的團隊無需手動執(zhí)行復(fù)雜繁瑣的任務(wù)熔酷,從而加快反饋速度,來確保您增加的功能真正地滿足用戶的需求豺裆。

此外拒秘,也有不少人認為CI是CD的前提與基礎(chǔ),沒有CI就不能實現(xiàn)CD臭猜。這種說法也是比較流行的躺酒,其思路如下圖。因此蔑歌,不管是哪種說法羹应,CI與CD都是DevOps工具中不可或缺的理念與方法。


image.png

“持續(xù)交付與持續(xù)部署次屠,到底誰應(yīng)該包含誰园匹?”

持續(xù)部署是自動化的將一切變更放到生產(chǎn)環(huán)境,而持續(xù)交付則有判斷決策過程劫灶,并直接說“In order to do Continuous Deployment you must be doing Continuous Delivery.”

“Continuous Delivery is sometimes confused with Continuous Deployment.Continuous Deploymentmeans that every change goes through the pipeline and automatically gets put into production, resulting in many production deployments every day. Continuous Delivery just means that you are able to do frequent deployments but may choose not to do it, usually due to businesses preferring a slower rate of deployment. In order to do Continuous Deployment you must be doing Continuous Delivery.”

對持續(xù)交付與持續(xù)部署的關(guān)系裸违,Martin也承認兩個概念容易造成困惑,持續(xù)部署代表將所有變更自動通過流水線推到生產(chǎn)環(huán)境本昏,持續(xù)交付則意味著你有能力這樣做供汛,但可以基于業(yè)務(wù)選擇不這樣做。

所以我不覺得兩者有誰包含誰,兩者在這個層面講怔昨,一個是技術(shù)領(lǐng)域雀久,一個是業(yè)務(wù)領(lǐng)域。

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朱监,一起剝皮案震驚了整個濱河市岸啡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赫编,老刑警劉巖巡蘸,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異擂送,居然都是意外死亡悦荒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門嘹吨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搬味,“玉大人,你說我怎么就攤上這事蟀拷∨鑫常” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵问芬,是天一觀的道長悦析。 經(jīng)常有香客問我,道長此衅,這世上最難降的妖魔是什么强戴? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮挡鞍,結(jié)果婚禮上骑歹,老公的妹妹穿的比我還像新娘。我一直安慰自己墨微,他們只是感情好道媚,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翘县,像睡著了一般最域。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炼蹦,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音狸剃,去河邊找鬼掐隐。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的虑省。 我是一名探鬼主播匿刮,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼探颈!你這毒婦竟也來了熟丸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤伪节,失蹤者是張志新(化名)和其女友劉穎光羞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怀大,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡纱兑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了化借。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潜慎。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蓖康,靈堂內(nèi)的尸體忽然破棺而出铐炫,到底是詐尸還是另有隱情,我是刑警寧澤蒜焊,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布倒信,位于F島的核電站,受9級特大地震影響山涡,放射性物質(zhì)發(fā)生泄漏堤结。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一鸭丛、第九天 我趴在偏房一處隱蔽的房頂上張望竞穷。 院中可真熱鬧,春花似錦鳞溉、人聲如沸瘾带。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽看政。三九已至,卻和暖如春抄罕,著一層夾襖步出監(jiān)牢的瞬間允蚣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工呆贿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嚷兔,地道東北人邦鲫。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓谒兄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抵碟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348