DevOps笔记-06:什么是CI/CD?它们与敏捷开发和devops的关系?
?????????? 什么是CI/CD?它們與敏捷開發(fā)和devops的關(guān)系?
??? 現(xiàn)在某些大型公司中軟件的開發(fā)和發(fā)布已經(jīng)形成了一套標(biāo)準(zhǔn)流程,其中敏捷開發(fā)和DevOps是更好更快發(fā)布產(chǎn)品的常用的兩種理念,而CI和CD是實(shí)現(xiàn)這兩種理念的一種方法。他們之際的關(guān)系可以粗暴的用下圖表示:
一、什么是CI?
1、定義
??? CI是Continuous integration的簡稱,持續(xù)集成指頻繁地(一天多次)將代碼集成到主干,其實(shí)就是將編碼、代碼的編譯、打包、單元測(cè)試執(zhí)行、靜態(tài)代碼的分析,甚至包括自動(dòng)化的功能性測(cè)試等,這一套動(dòng)作將其自動(dòng)化運(yùn)行起來的過程叫持續(xù)集成。核心措施是,代碼集成到主干之前,必須通過自動(dòng)化測(cè)試。只要有一個(gè)測(cè)試用例失敗,就不能集成。CI的目得是讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。CI流程如下圖:
2、好處
(1)快速發(fā)現(xiàn)錯(cuò)誤。每完成一點(diǎn)更新,就集成到主干,可以快速發(fā)現(xiàn)錯(cuò)誤,定位錯(cuò)誤也比較容易。
(2)防止分支大幅偏離主干。如果不是經(jīng)常集成,主干又在不斷更新,會(huì)導(dǎo)致以后集成的難度變大,甚至難以集成。
3、總結(jié)
持續(xù)集成并不能消除 Bug,而是盡早發(fā)現(xiàn)bug。
二、什么是CD?
1、定義
CD包括Continuous Delivery(持續(xù)交付)和Continuous Deployment(持續(xù)部署)
(1)Continuous Delivery(持續(xù)交付)
??? 持續(xù)交付可以看作持續(xù)集成的下一步,指頻繁地將軟件的新版本,交付給質(zhì)量團(tuán)隊(duì)或者用戶,以供評(píng)審,如果評(píng)審?fù)ㄟ^代碼進(jìn)入待生產(chǎn)部署狀態(tài),也就是說不管怎么更新,軟件具備隨時(shí)交付到生產(chǎn)環(huán)境的能力,但還沒有真正部署到生產(chǎn)。
(2)Continuous Deployment(持續(xù)部署)
??? 持續(xù)部署是持續(xù)交付的下一步,指代碼通過評(píng)審以后可自動(dòng)部署到生產(chǎn)環(huán)境,也就是說代碼具備隨時(shí)部署到生產(chǎn)的能力。持續(xù)部署的前提是能自動(dòng)化完成測(cè)試、構(gòu)建、部署等步驟。持續(xù)部署是自動(dòng),持續(xù)部署是持續(xù)交付的最高階段
三、持續(xù)集成、持續(xù)交付、持續(xù)部署三者關(guān)系
??? 持續(xù)交付不可以了解為流水線,持續(xù)集成CI與持續(xù)交付Continuous Delivery的區(qū)別可以粗暴的認(rèn)為:持續(xù)交付=持續(xù)集成+測(cè)試策略。持續(xù)交付表示的是一種能力,而持續(xù)部署則是一種方式。
總結(jié)
以上是生活随笔為你收集整理的DevOps笔记-06:什么是CI/CD?它们与敏捷开发和devops的关系?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: object类中的equals与自定义e
- 下一篇: Arduino产生PWM的3种方法