持續整合與持續交付是軟體開發和交付中的實踐。我們專案中一直在踐行持續整合(ci:continuous integration);持續交付(cd:continuous delivery)未能達到理想狀態,只能實踐一部分。這篇文章用於總結ci/cd的實踐。
什麼是持續整合?
軟體開發中,整合是乙個很可能發生未知錯誤的過程。持續整合是一種軟體開發實踐,希望團隊中的成員頻繁提交**到**倉庫,且每次提交都能通過自動化測試進行驗證,從而使問題盡早暴露和解決。
持續整合的好處是什麼?
持續整合可以使問題盡早暴露,從而也降低了解決問題的難度,正如老馬所說,持續整合無法消除bug,但卻能大大降低修復的難度和時間。
如何做到持續整合?
首先,持續整合需要:
1. 單一的**倉庫,團隊成員都像該倉庫提交**;
2. 自動化構建且構建過程需要包含自動化測試;
3. 有單獨的整合機器用於構建;
4. 保證構建速度不要太慢(曾經有乙個專案構建需要20分鐘,就會很痛苦);
5. 在類產品環境進行測試;
6. 能夠方便獲取最新的可執行程式;
7. 視覺化,大家都能看到構建過程及結果;
8. 自動化部署。
其次,我們通過以下步驟進行持續整合:
2. ci伺服器監測**庫,並在有提交時自動觸發;
3. ci伺服器對**進行構建,執行單元測試和整合測試;
4. ci伺服器發布可部署的artefact用於後續測試,並加上本次構建版本的標籤。
5. ci伺服器通知團隊構建成功或者失敗;失敗發生時團隊需要盡快修復,以免耽擱後續的持續整合過程,因為失敗時處於持續整合的暫停階段。
最後,需要就團隊責任達成共識:
1. 頻繁提交;
2. 提交之前確保測試通過;
3. 不在持續整合失敗時提交**;
4. 提交**後保證持續整合成功,不然不准回家
持續整合 持續交付 持續部署
持續整合 持續整合強調開發人員提交了新 之後,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執行環境的 類生產環境 production like environments 中。比如,我們完成單...
持續整合 持續交付 持續部署
參考 1 continuous integration 持續整合 持續整合強調對於開發人員的每個提交,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。2 continuous delivery 持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執...
CI CD 持續交付
軟體開發的最終目標是快速,高質量的交付客戶價值。行業實踐證明,持續整合 continuous integration 持續交付 continuous delivery 是微服務交付的最佳實踐。ci 開發人員將 提交到版本控制系統 gitlab 以後,將後續的軟體構建,單元測試,整合測試 etc.這些...