簡單認識 ci/cd

什麼是ci/cd

首先要說的ci/cd 是分紅三部分 持續集成,持續交付,持續部署;爲了快速、自動化、可重複的方式 處理工程;固然有兩部分的說法,均可以本身定git

開發階段: 編碼 -> 構建 -> 集成 -> 測試 -> 交付 -> 部署github

須要注意的是ci中的test階段不是 交給測試人員的測試環境,而是自動化測試; cd中的Delivery纔是包含測試環境,stg環境,灰度環境等;服務器

1. 持續集成(CI)

持續集成就是把多個碼農寫的代碼集成到同一個分支,而後通過編譯、測試、打包以後將程序保存到 倉庫中。app

CI 須要具有這些:

1. 全面的自動化測試。這是實踐持續集成&持續部署的基礎,同時,選擇合適的自動化測試工具也極其重要;
2. 靈活的基礎設施。容器,虛擬機的存在讓開發人員和 QA 人員沒必要再大費周折;
3. 版本控制工具。如 Git,CVS,SVN 等;
4. 自動化的構建和軟件發佈流程的工具,如 Jenkins,flow.ci;
5. 反饋機制。如構建/測試的失敗,能夠快速地反饋到相關負責人,以儘快解決達到一個更穩定的版本。
複製代碼

私有部署和託管型持續集成系統:

- Self Hosted CI 指的是將軟件部署在公司的機房或內網中,須要提供多臺服務器來完成 CI 系統的
運轉,同時須要對不一樣機器之間進行環境配置。好比 Jenkins ;
- Hosted CI 指的是由 SaaS 型的 CI 服務,全程在線進行構建配置,不須要考慮裝機器,裝軟件,
環境搭建等成本。好比 TravisCI 
複製代碼

對比兩種 CI 服務:

- Self Hosted CI 對構建環境有徹底的控制權,可以實現徹底定製。但須要搭建環境和配置、
維護成本高,須要買專門的機器,花費人力物力且更新遷移風險高;
- Hosted CI 無需額外機器,幾分鐘就能夠用起來。能夠根據你的須要動態調度資源。
省時,省心,省力。
複製代碼

2. 持續交付(CD / Continuous Delivery)

持續交付就是定時地、自動地從 倉庫中 將最新的程序部署到測試環境裏。工具

3. 持續部署(CD / Continuous Deployment)

持續部署就是定時地、自動地將過去一個穩定的發佈版本部署到生產環境裏。單元測試

一個基本的ci/cd pipeline

容器鏡像

代碼管理後,須要一個核心控制器(Deployment Manager),生成容器(container) 和打包鏡像,最後放到容器中。固然生成容器的過程當中可能須要容器集羣管理(好比:k8s);測試

總結

ci/cd的理解像是一種方法,條條大路通羅馬,須要根據本身團隊和業務,選擇通往羅馬的路和行駛工具;ui

補充

自動化測試

看看圖就能知道,最基礎的單元測試,是開發最快,成本最低的。越往上時間成本就愈來愈高;個人理解 更是越是基礎的單元測試 越簡單,到了ui層面首先業務廣,更新快等緣由致使ui層面的自動化測試難作~編碼

摘自- www.jianshu.com/p/52aca1313…spa

github 市場

若是用git能夠搜一下 github市場有不少推薦,ci,deployment

github.com/marketplace…

相關文章
相關標籤/搜索