滴答的雨
https://www.cnblogs.com/heyuq...
自動化部署主要是爲了解決項目多、環境多、持續集成慢、部署操做麻煩、手動操做易出錯、自動化運維等問題。html
Jenkins是開源CI&CD軟件領導者, 提供超過1000個插件來支持構建、部署、自動化, 知足任何項目的須要。git
目標:shell
另外:也能夠根據須要加入gitlab自動觸發構建、自動化測試、釘釘通知、郵箱通知等需求編程
一鍵發佈
一鍵回滾
----jenkins-ex jenkins構建時使用到的目錄 ------software Jenkins安裝目錄 --------master --------slave ------backup jenkins備份目錄 --------master ------module 功能模塊,每一類功能相關的文件放在對應的子文件夾中 --------common ----------script 各模塊公用的腳本 ------publish 發佈功能 --------settings ----------config 構建時配置文件。Eg: jenkins_profile.pubxml、項目配置文件等 ------------test-publish-template-app-config.json 項目映射配置表 ----------script Jenkins job構件時調用的腳本(方法封裝) ------source-code 拉取的源代碼存放目錄 --------test ----------系統標識 ------------應用名 ------build-result 構建產物(編譯後的結果) --------test ----------系統標識 ----------應用名 ------temp-file 臨時文件,job執行過程當中產生的文件 --------builder-history 構建歷史記錄文件 --------job-params 構建過程當中傳遞參數的文件 ------app-config 應用對應的環境配置文件 --------test ----------系統標識 ------------應用名 ------other-sub-module ……
jenkins job命名json
Jenkins job中的腳本命名(eg:powershell)segmentfault
規範約定數組
CICD過程主要在兩個局域網中執行:構建服務器(開發內網)和部署服務器(生產內網)服務器
想要實現使用一個job,經過下拉來」 發佈|回滾」不一樣的項目,咱們須要一個靈活的項目配置映射文件,相似以下:架構
配置文件選項含義從命名上能夠識別,主要包括:環境、代碼分支、部署路徑、拷貝排除文件列表、項目信息(項目惟一標識、目錄文件夾名、源代碼路徑、開發語言、集羣節點信息…)等等app
「一鍵發佈」主要經歷的階段有:組合項目相關參數>>獲取最新代碼>>編譯打包>>推送應用文件到服務器>>應用備份>>拷貝到Temp文件夾>>發佈到部署目錄
爲了更好的實現和控制」一鍵發佈」這些階段,設計了以下輸入參數:
實現思路:在」一鍵發佈」時,將發佈記錄存到文件中,存儲key爲:p_app_key#2019-1219-1503。執行回滾時,選擇要回滾的歷史項目,先解析出p_app_key再獲取項目配置信息,再回滾此項目的特定歷史版本。
設計的輸入參數如圖:
通常軟件公司對於軟件的開發、測試、發佈都有好幾個環境,因此針對各個環境都會有對應的CICD流程,這邊設計了一個簡易的多環境CICD流程圖,以下:
自動觸發CICD仍是手動觸發CICD???,我認爲:
關注公衆號《架構文摘》,天天一篇架構領域重磅好文,涉及一線互聯網公司應用架構(高可用、高性能、高穩定)、大數據、機器學習、Java架構等各個熱門領域。