根據上次的文章介紹,制定了一套解決方案
此套方案 作為 PaaS 或者SaaS 都是棒棒的,結合着OpenStack 作為IaaS層 更适合,
整體的思路大概是這樣的,後續會詳細介紹。
客戶或産品有新的需求變更,或者測試人員提出bug時,會在redmine服務上建立送出事件,開發人員得到通知,會對開發分支做修改,每個項目會有不同的分支。
分支中會包含一個名叫Docker的目錄,裡面包含了将整個項目的build輸出(對于Java的web應用來說就是war檔案),打包成docker p_w_picpath所需要的檔案。
項目使用Git來做源代碼管理,Git伺服器為私有的Gitlab。
開發人員送出代碼并push到Gitlab,Gitlab觸發Web Hook,通知Jenkins項目有新的變更。Jenkins收到通知,從Gitlab pull代碼并自動啟動編譯建構。
如果建構成功調用docker的目錄下腳本來生成docker p_w_picpath并push到私有docker倉庫上。
通過chef,通知最終的部署節點,下載下傳最新版p_w_picpath,删除正在運作的容器,以新p_w_picpath來啟動容器,完成項目的更新。整個過程會在短短幾分鐘就能看到結果。

後續會編寫:
Gitlab 私有倉庫搭建及注意事項
Docker 私有倉庫搭建及注意事項
Jenkins 搭建及注意事項
Chef 搭建及注意事項