我們經(jīng)常會聽到持續(xù)集成(Continuous Integration)转锈、持續(xù)交付(Continuous Delivery)和持續(xù)部署(Continuous Deployment)這三個名詞吟税,這三個名詞之間有什么聯(lián)系,有什么區(qū)別嗦篱,以及為什么要做持續(xù)集成,持續(xù)交付幌缝,讓我們帶著疑問往下看灸促。
圖片來源
持續(xù)集成[Continuous Integration]
持續(xù)集成是已代碼的提交活動來觸發(fā)的。持續(xù)集成涉及到一下幾個步驟:
- 開發(fā)人員提交代碼到代碼倉庫
- 持續(xù)集成服務器檢測到代碼更新涵卵,從代碼倉庫拉取最新的代碼
- 代碼更新完畢后浴栽,持續(xù)集成服務器自動進行編譯、代碼靜態(tài)檢查以及測試(單元測試)
持續(xù)交付[Continuous Integration]
持續(xù)交付是建立在持續(xù)集成成功的基礎上的轿偎,比如代碼編譯成功典鸡,并且通過了單元測試,這個時候我們可以把代碼部署到測試環(huán)境(也就是和生產(chǎn)環(huán)境相近的環(huán)境)在這里我們完成更多的測試(自動化契約測試坏晦、自動化UI測試等)萝玷,通過一系列測試后,通過手動的方式把代碼部署到生產(chǎn)環(huán)境上昆婿。
持續(xù)部署[Continuous Integration]
持續(xù)部署是在持續(xù)交付成功的基礎上球碉,通過自動化的方式把代碼部署到生產(chǎn)環(huán)境上。
CI/CD的價值
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” — Martin Fowler
Martin Fowler曾經(jīng)說過持續(xù)集成并不能消除BUG挖诸,但是能容易的發(fā)現(xiàn)BUG汁尺,修復BUG,從而提升產(chǎn)品的質(zhì)量多律。那么CI/CD給團隊帶來了哪些價值:
- 減少風險痴突。CI保證開發(fā)人員提交的代碼是安全可靠的搂蜓。開發(fā)人員每次提交代碼都會觸發(fā)CI,從而會自動進行靜態(tài)代碼檢查辽装,單元測試帮碰。CD階段接口測試,UI測試都是自動化進行拾积。整個交付標準化殉挽,可重復并且可靠
- 快速發(fā)布。整個流程自動化發(fā)布拓巧,提升了效率斯碌,能夠更快的迭代
- 整個流程可視化。通過CI/CD工具肛度,整個流程可視化傻唾,我們可以清楚的看到哪個階段失敗
- 更好的團隊協(xié)作方式。開發(fā)承耿,QA以及運維緊密聯(lián)系在一起冠骄,更加高效
參考資料
- https://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/
- http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
- https://zhuxingsheng.github.io/2017/09/16/comon-sense-thre-continuous-integration,-continuous-delivery,-continuous-deployment/