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