「Continuous_integration, CI」爲何要持續集成?

前言  

什麼是持續集成,爲何要持續集成?本文對持續集成先後兩種開發實踐作了對比分析,從而直觀的感覺到持續集成的好處。程序員

在說持續集成以前,先說一下傳統的開發模式:編程

傳統模式:

傳統模式過程以下:服務器

傳統的開發模式存在的問題:工具

1.Bug老是在最後纔出現。單元測試

2.越到項目後期,問題越難解決。測試

3.軟件交付時機沒法保障。blog

4.程序常常須要變動。
某些項目中,程序會常常須要變動,特別是敏捷開發實踐者。開發

5.無效的等待變多。
開發在等待集成其餘人的模塊,測試人員在等待開發修復Bug,產品經理在等待新版本上線給客戶作演示,項目經理在等待其餘人提交代碼。rem

6.用戶的知足度低。部署

持續集成

什麼是持續集成? 

在軟件工程中,持續集成(CI)是指將全部開發者的工做副本天天屢次合併到主幹的作法。Grady Booch 在1991年的 Booch method 中首次命名並提出了 CI 的概念,儘管在當時他並不主張天天屢次集成。而 XP(Extreme programming,極限編程)採用了 CI 的概念,並提倡天天不止一次集成。

持續集成服務器:
持續集成服務器就是可以採用自動化的手段,來解放人的雙手,實現項目持續集成的工具。與之配套的軟件有TeamCity、Jenkins、Go等。

持續集成的工做模式:

 

持續集成的好處:

1.解放了重複性勞動。
自動化部署工做能夠解放集成、測試、部署等重複性勞動,而機器集成的頻率明顯比手工高不少。

2.更快地修復問題。
持續集成更早的獲取變動,更早的進入測試,更早的發現問題,解決問題的成本顯著降低。

3.更快的交付成果。
更早發現錯誤減小解決錯誤所需的工做量。集成服務器在構建環節發現錯誤能夠及時通知開發人員修復。集成服務器在部署環節發現錯誤能夠回退到上一版本,服務器始終有一個可用的版本。

4.減小手工的錯誤。
在重複性動做上,人容易犯錯,而機器犯錯的概率幾乎爲零。

5.減小了等待時間。
縮短了從開發、集成、測試、部署各個環節的時間,從而也就縮短了中間能夠出現的等待時機。持續集成,意味着開發、集成、測試、部署也得以持續。

6.更高的產品質量。
集成服務器每每提供代碼質量檢測等功能,對不規範或有錯誤的地方會進行標緻,也能夠設置郵件和短信等進行警告。


持續集成的最佳實踐:
1.頻繁檢出代碼。
有時候代碼衝突無可避免,頻繁檢出代碼,可讓本地的副本和代碼庫中的版本最小差別化。


2.頻繁提交代碼。
與1的原理相似,頻繁提交代碼,可讓其餘人檢出副本和代碼庫中的版本最小差別化。


3.減小分支,迴歸主幹。
多個分支並行應及早將變動集成到主幹中,避免同時維護軟件的多個版本。


4.使用自動化構建。
可使用Maven、Ant等來實現自動化構建,能夠在構建過程當中實現自動化測試。前提是有寫單元測試用例。


5.提交測試。
在提交工做以前,每一個程序員必須本地集成全部代碼,作一個完整的構建和運行,並經過全部的單元測試,這樣能減小集成測試在集成服務器上構建失敗的風險。

6.當前狀態對每一個人均可見。集成服務器在持續集成過程當中發現問題應及時發送警告給相關的干係人。

相關文章
相關標籤/搜索