- 前言
參加過兩次公司生產環境的版本更新,最近一次讓我萌生了開發一個自動化部署平台的念頭。雖然網上也有不少的自動化部署軟件,但還是想自己動手寫一個。一來是為了讓平台更適應當前的實際情況,也利於以后自己對平台通用性的擴展;二來是為了鍛煉自己,給自己的空閑時間找點事情做,不至於虛度時光。
以下是整理出的初稿,想到的點比較簡單,后面會持續完善。
如果本文有幸被您看到,望能指點一二。
不管是積極的還是消極的,請留下您的看法。
- 背景
程序開發好之后免不了部署。剛開始還好,手動打包、上傳、部署,也不需要多長時間。但是隨着規模的擴大,版本更新的頻繁,以上看似簡單的操作會變得越來越繁瑣,耗時也會程直線上升。 手動部署的所有操作還不可重用,即每次操作都需要從頭開始,浪費時間不說,不可靠和易出錯也是顯而易見的不足。
因此,能有一套程序幫我們做這個事情勢在必行。
自動化部署平台的初衷是最大化的簡化部署的步驟,做到“自動化”。而人工只需要做一些簡單的配置即可。
- 初步設計
部署內容:
1. Java WEB部署
2. Java進程部署
部署來源:
1. 從版本服務器進行部署
2. 程序包上傳部署
部署實現方式:
1. linux下
擬采用java+shell腳本實現
2. windows下
擬采用java+bat批處理腳本實現
- 功能整理
本自動化部署平台需包含一下功能
最終目的:最大化實現只要是通過本平台進行部署的工程,都能通過平台管理其完整的生命過程。其中包括項目的創建,更新,刪除,以及項目運行期間的各種日志的抓取和展示。達到部分運維的效果。
a. 從版本服務器(svn/git)上獲取最新代碼
b. 自動打包(jar、war)
c. 支持程序包(jar、war)的上傳
d. 支持工程內部配置文件的修改
e. 根據配置或者腳本自動部署
f. 支持通過平台對部署的工程進行試運行,啟用,停止等功能
g. 部署過程中的日志顯示
h. 部署完后運行中的日志顯示
i. 設置權限系統,不同角色的用戶登錄平台擁有不同的操作權限
a) 開發人員:
b) 運維人員:
c) 管理人員:
d) 測試人員:
j. 支持數據庫的操作(備份/更新/創建/刪除)