(1)什么是CI
What is CI?
CI就是持續集成,持續集成是一種軟體開發實踐,即團隊開發成員經常集成他們的作業,通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成,每次集成都通過自動化的構建(包括編譯、發布、自動化測驗)來驗證,從而盡快地發現集成錯誤,許多團隊發現這個程序可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟體,
??PS:把企業中的一系列程序集成在CI平臺上,可以寫好腳本,點擊執行,或者定時執行,
CD就是持續交付,是在CI的基礎進行了擴展,在CI環節完成了軟體構建和測驗作業并形成了新的版本,那么接下來就要進行交付,而這里的交付并不是交付到生產環境,而是類生產環境,我們可以理解為灰度環境或者預發環境,進而接受部分真實流量的測驗,如果沒有問題則通過手動的方式部署到生產環境,
CI常用的工具:Jenkins,
作業流:
開發->提交代碼->靜態代碼掃描(直接通過工具去檢查代碼中的錯誤)->單元測驗->編譯->測驗->發布
Jenkins是什么?(是一種CI工具)
Jenkins是一個獨立的開源軟體專案,是基于Java開發的一種持續集成工具,用于監控持續重復的作業,旨在提供一個開放易用的軟體平臺,使軟體的持續集成變成可能,前身是Hudson,是一個可擴展的持續集成引擎,可用于自動化各種任務,如構建,測驗和部署軟體,
-
主要用于:
-
持續、自動地構建專案、測驗軟體專案等,
主要提供了
基于版本管理工具(如CVS、VSS、SVN)感知變化或每天定時的持續集成,并提供持續集成報告、Email(提供豐富的插件庫)等方式通知相關負責人,其要求是需要進行日構建的專案已經撰寫好全自動的專案編譯腳本(可基于Maven或Ant), -
監控一些定時執行的任務,
-
Jenkins特點
- 開源免費
- 跨平臺,支持所有的平臺(Linux、mac、windows)
- 支持分布式的build(可以在jenkins上建多個自動化腳本,比如一個跑冒煙測驗、一個跑回歸測驗)
- web形式的可視化的管理頁面
- 安裝配置超簡單
- tips提示快速的幫助
- 已經有很多的插件(比如:Email Extension、Git、GitHub、Subversion)
(2)CI的價值
-
減少風險
越早發現的錯誤,修正的費用越低,
及時檢查軟體測驗的健康狀況,減少發布時的風險,
(比如:每天定時觸發自動化測驗專案,自動生成報告)
-
減少重復性的作業
通過自動化的持續集成可以將編譯、部署、測驗等動作都變成自動化的,無需太多人工干預,
-
任何時間,任何地點都可以部署軟體
利用持續集成,可以經常對源代碼進行一些小改動,并將這些改動和其他的代碼進行集成,如果出現問題,專案成員馬上就會被通知到,
(3)CI的架構
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/243213.html
標籤:架構設計
