注意:以上請根據自己業務做相應調整,避免在業務高峰期發布(除應急bug外),我們業務高峰期基本在18:00-23:30,低峰期基本在01:00-06:00,這也是微信分享閱讀的高峰和低峰時段;無論應急Bug還是日常迭代都必須由QA測試通過和產品經理審核通過后才能上線(曾經出現過開發為了修復線上很急的bug,開發修復后自主上線導致生產出現更嚴重的問題)
無論是自主開發發布系統亦或是使用開源的系統都要本著解決問題的原則,否則只能是重復造輪子,然并卵呀
開源的持續集成和發布里面個人覺得比較好的如:Jenkins,Walle,Spinnaker,go,Gitlab-ci,Bamboo(收費)等,其他參考https://github.com/geekwolf/sa-scripts/blob/master/devops.md
下面介紹我們基于GitLab+Jenkins+Ansible(Flamingo自動化代碼發布工具)實現的自動化代碼部署平臺,流程如下:
Flamingo(“火烈鳥”,https://github.com/geekwolf/flamingo)是基于Ansible的自動化代碼發布工具,目的是實現統一的代碼發布方式,思路基于Capistrano,并對Ansisrano進行了改造可以通過傳入語言環境,主機組(應用組/灰度機組等),項目代碼庫,分支名稱,項目名稱等參數來進行自動化打包發布,也可以將Flamingo工具二次打包使用
Flamingo本者回滾即發布的原則以簡化發布流程,回滾時傳入要回滾的分支即可,其他參數可參看defaults/main.yml進行了解;(注:依賴Git/rsync/ansible)
原文轉自:http://www.simlinux.com/archives/1638.html