CI/CD 持續整合和持續交付 (二)
阿新 • • 發佈:2019-01-08
根據上次的文章介紹,制定了一套解決方案
此套方案 作為 PaaS 或者SaaS 都是棒棒的,結合著openstack 作為IaaS層 更適合,
整體的思路大概是這樣的,後續會詳細介紹。
客戶或產品有新的需求變更,或者測試人員提出bug時,會在redmine服務上建立提交事件,開發人員得到通知,會對開發分支做修改,每個專案會有不同的分支。
分支中會包含一個名叫docker的目錄,裡面包含了將整個專案的build輸出(對於java的web應用來說就是war檔案),打包成docker image所需要的檔案。
專案使用git來做原始碼管理,Git伺服器為私有的Gitlab。
開發人員提交程式碼並push
如果構建成功呼叫docker的目錄下指令碼來生成docker image並push到私有docker倉庫上。
通過chef,通知最終的部署節點,下載最新版image,刪除正在執行的容器,以新image來啟動容器,完成專案的更新。整個過程會在短短几分鐘就能看到結果。
後續會編寫:
Gitlab 私有倉庫搭建及注意事項
Docker 私有倉庫搭建及注意事項
Jenkins 搭建及注意事項
Chef 搭建及注意事項
Redmine 搭建及使用方法和注意事項
未完待續....