CI/CD 持續集成和持續交付 (二)

根據上次的文章介紹,制定了一套解決方案web

此套方案 做爲 PaaS 或者SaaS 都是棒棒的,結合着OpenStack 做爲IaaS層 更適合,docker

總體的思路大概是這樣的,後續會詳細介紹。服務器

客戶或產品有新的需求變動,或者測試人員提出bug時,會在redmine服務上建立提交事件,開發人員獲得通知,會對開發分支作修改,每一個項目會有不一樣的分支。ide

分支中會包含一個名叫Docker的目錄,裏面包含了將整個項目的build輸出(對於Java的web應用來講就是war文件),打包成docker p_w_picpath所須要的文件。測試

項目使用Git來作源代碼管理,Git服務器爲私有的Gitlab。ui

開發人員提交代碼並push到Gitlab,Gitlab觸發Web Hook,通知Jenkins項目有新的變動。Jenkins收到通知,從Gitlab pull代碼並自動啓動編譯構建。blog

若是構建成功調用docker的目錄下腳原本生成docker p_w_picpath並push到私有docker倉庫上。事件

經過chef,通知最終的部署節點,下載最新版p_w_picpath,刪除正在運行的容器,以新p_w_picpath來啓動容器,完成項目的更新。整個過程會在短短几分鐘就能看到結果。開發


wKiom1jYb0bhJCe2AAFDvfiwWLs534.png-wh_50

後續會編寫:部署

Gitlab  私有倉庫搭建及注意事項

Docker 私有倉庫搭建及注意事項

Jenkins 搭建及注意事項

Chef   搭建及注意事項

Redmine 搭建及使用方法和注意事項

未完待續....

相關文章
相關標籤/搜索