持續(xù)集成/持續(xù)交付概念

一、概念

傳統(tǒng)集成(Traditional integration)

傳統(tǒng)集成好比新零售v1.4開發(fā),但是涉及模塊眾多,例如運營中心經銷商管理、產品管理等,從而需要不同的RD負責不同的模塊,完成開發(fā)后進行集成,并提交代碼到倉庫,測試完成后部署上線。

隨著時間推移,業(yè)務的需求日益增多,無論新功能開發(fā)還是Bug修復,都需要對系統(tǒng)進行更新迭代。全部開發(fā)完成后再集成。

持續(xù)集成(Continuous integration)

對傳統(tǒng)集成,持續(xù)集成是重復的集成,適用于大項目,即團隊開發(fā)成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡早地發(fā)現(xiàn)集成錯誤(修復優(yōu)先級最高),當前步驟測試不參與。

持續(xù)集成目標并不能消除Bug,而是讓它們非常容易發(fā)現(xiàn)和快速改正,自動化測試case必須全部通過,從而保證高質量的快速迭代。

優(yōu)點:

快速發(fā)現(xiàn)錯誤。RD每完成一點代碼更新,就會從分支合并到Master,可以快速發(fā)現(xiàn)及定位錯誤。

防止分支大幅偏離主干。Master上有其他RD在不斷進行代碼更新,若分支上沒有及時合并,會導致以后集成的難度變大,甚至難以集成,導致集成后bug增多。

持續(xù)集成流程

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

持續(xù)交付的本質是把每個構建成功的工程進行更新,并交付給用戶使用,可理解為業(yè)務層面。在持續(xù)交付的過程中,我們對交付完成的定義不是測試完成,而是交付給客戶。持續(xù)交付代表的是功能的上線,交付給用戶使用。

優(yōu)點:

快速獲取反饋。RD交付給用戶可快速使用相關功能,并很快反饋結果。

適應市場變化和商業(yè)策略的變化。開發(fā)團隊保證每次提交的修改都是可上線的修改,那么決定何時上線,上線哪部分功能則完全由業(yè)務方決定。

持續(xù)交付流程

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

區(qū)別于持續(xù)交付,持續(xù)部署是在持續(xù)交付的基礎上,把部署到Prod環(huán)境過程通過自動化測試的軟件(例 Jenkins)自動構建、部署。盡早部署到生產環(huán)境,從而確保部分功能的使用。持續(xù)部署的目標是,代碼在任何時刻都是可部署的,可以進入生產階段。(注:在持續(xù)集成中問題需要最高優(yōu)先級修復)

持續(xù)部署流程

二、整體流程圖

傳統(tǒng)方式:

新方式:

三、持續(xù)測試(Continuous Tests)

測試是貫穿整個內部研發(fā)流程始終的,從持續(xù)集成到持續(xù)部署,都有測試的存在。

持續(xù)集成后,開啟單元測試,遍歷自動化測試腳本,自動化測試是持續(xù)集成的基礎,越靠前的測試越應該自動化,且全部Pass狀態(tài);

持續(xù)交付后,交付給QA后,QA對case的撰寫,Review,測試完成后發(fā)布到Prod環(huán)境。




引用:

https://www.mindtheproduct.com/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us;

http://www.itdecent.cn/p/67f345ebec9b;

《持續(xù)集成實踐》;

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容