今天,我們將回顧這個術語的歷史,討論實施 CI 的困難,並提供幾種流行的工具來幫助您使用它。
/flickr/
項
持續整合是一種應用程式開發方法,涉及頻繁的專案建置和程式碼測試。
目標是使整合過程可預測,並在早期階段檢測潛在的錯誤和錯誤,以便有更多時間來修復它們。
持續整合這個術語首次出現於 1991 年。 它是由 UML 語言的創建者引入的
故事
1996 年,CI 被該方法論的創建者採用
2000年代初,敏捷聯盟創辦人之一開始推廣持續整合方法論
該工具中的建置週期作為守護程式實現,定期檢查版本控制系統以了解程式碼庫中的變更。 今天就可以下載解決方案 - 它
分發者 在類似 BSD 的許可證下。
隨著 CI 軟體的出現,越來越多的公司開始採用這種做法。 根據 Forrester 研究 [第 5 頁
如今,持續整合的實踐已被各行各業的組織所採用。 2018 年,一家大型雲端供應商對來自服務、教育和金融業公司的 IT 專家進行了一項調查。 在 58 名受訪者中,XNUMX% 的人表示他們在工作中使用 CI 工具和原則。
Какэтоработает
持續整合基於兩個工具:版本控制系統和 CI 伺服器。 後者可以是實體設備,也可以是雲端環境中的虛擬機器。 開發人員每天上傳一次或多次新程式碼。 CI 伺服器會自動複製它以及所有依賴項並建置它。 然後,它運行整合和單元測試。 如果測試成功通過,CI 系統就會部署程式碼。
總體流程圖可以表示如下:
CI 方法對開發人員提出了許多要求:
- 立即糾正問題。 這個原則是從極限編程中引入 CI 的。 修復錯誤是開發人員的首要任務。
- 自動化流程。 開發人員和管理人員必須不斷尋找整合過程中的瓶頸並消除它們。 例如,整合經常存在瓶頸
事實證明 測試。 - 盡可能經常舉行集會。 每天一次同步團隊的工作。
實施困難
第一個問題是營運成本高。 即使一家公司使用開放的 CI 工具(我們稍後會談到),它仍然需要在基礎設施支援上花錢。 然而,雲端技術可能是解決方案。
它們簡化了不同規模計算機配置的組裝。 公司的加分項
根據調查[第14頁
第三個困難是自動化問題。 擁有大量未被自動化測試覆蓋的遺留程式碼的組織面臨著這個問題。 這導致在完全實施CI之前,程式碼被簡單地重寫了。
誰使用
IT 巨頭是最先認識到該方法的好處的人之一。 Google
持續整合也對小公司有幫助,金融和醫療保健組織也使用 CI 工具。 例如,在 Morningstar,持續整合服務幫助修復漏洞的速度提高了 70%。 飛利浦醫療保健醫療平台能夠將測試更新速度提高一倍。
工具
以下是一些流行的 CI 工具:
詹金斯 是最受歡迎的 CI 系統之一。 它支援一千多個插件,可與各種VCS、雲端平台和其他服務整合。 我們還在 1cloud 使用 Jenkins:工具包含在我們的 DevOps 系統中 。 他定期檢查用於測試的 Git 分支。建造機器人 — 用於編寫您自己的持續整合流程的 Python 框架。 該工具的初始設定相當複雜,但廣泛的自訂選項彌補了這一點。 在這個框架的優點中,使用者強調其資源強度低。大堂CI 是來自 Pivotal 的使用 Docker 容器的伺服器。 Concourse CI 與任何工具和版本控制系統整合。 開發人員指出,該系統適用於任何規模的公司。亞特實驗室持續集成 是內建於 GitLab 版本控制系統中的工具。 該服務在雲端中運行並使用 YAML 檔案進行配置。 像 Concourse、Gitlab CI適用 Docker 容器有助於將不同的流程相互隔離。代號 是一個與 GitHub、GitLab 和 BitBucket 配合使用的雲端 CI 伺服器。 該平台不需要長時間的初始設定 - Codeship 中提供了標準的預安裝 CI 流程。 對於小型(每月最多 100 個建置)和開源項目,Codeship 是免費的。
來自我們公司部落格的資料:
來源: www.habr.com