gopub企業(yè)級(jí)運(yùn)維發(fā)布系統(tǒng)
gopub(基于vue.js element框架+golang beego框架開(kāi)發(fā))是一個(gè)基于運(yùn)維場(chǎng)景設(shè)計(jì)的企業(yè)級(jí)運(yùn)維發(fā)布系統(tǒng)。配置簡(jiǎn)單、功能完善、界面流暢、開(kāi)箱即用!支持git、jenkins版本管理,支持各種web代碼發(fā)布,一鍵完成Golang,nodejs,PHP,Python,JAVA等代碼的發(fā)布、回滾操作。
我們運(yùn)維團(tuán)隊(duì)前期使用walle(https://www.walle-web.io) web部署系統(tǒng)進(jìn)行發(fā)布操作,在此也感謝walle團(tuán)隊(duì)貢獻(xiàn)的優(yōu)秀開(kāi)源項(xiàng)目.walle的web體驗(yàn)比較好,本次開(kāi)源的gopub前臺(tái)完全模仿walle前臺(tái),使用vue.js element框架重寫(xiě).
gopub已在我們預(yù)發(fā)布和生產(chǎn)環(huán)境完成37000+次穩(wěn)定部署,支持單項(xiàng)目100+臺(tái)服務(wù)器部署110秒左右,支持2G+CDN靜態(tài)資源發(fā)布傳輸30秒完成.
使用框架
功能特性
部署簡(jiǎn)便:go二進(jìn)制部署,無(wú)需安裝運(yùn)行環(huán)境,下個(gè)版本將支持Docker部署
gitlab發(fā)布支持:配置每個(gè)項(xiàng)目git地址,自動(dòng)獲取分支,commit選擇并自動(dòng)拉取代碼
jenkins發(fā)布支持:支持jenkins編譯包一鍵發(fā)布
ssh執(zhí)行命令/傳輸文件:使用golang內(nèi)置ssh庫(kù)高效執(zhí)行命令/傳輸文件
BT支持:大文件和大批量機(jī)器文件傳輸使用BT協(xié)議支持
多項(xiàng)目部署:支持多項(xiàng)目多任務(wù)并行,內(nèi)置grpool協(xié)程池支持并發(fā)操作命令和傳輸文件
全web化操作:web配置項(xiàng)目,一鍵發(fā)布,一鍵快速回滾
API支持:提供所有配置和發(fā)布操作API,便于對(duì)接其他系統(tǒng) API使用example
部署鉤子:支持部署前準(zhǔn)備任務(wù),代碼檢出后處理任務(wù),同步后更新軟鏈前置任務(wù),發(fā)布完畢后收尾任務(wù)4種鉤子函數(shù)腳本執(zhí)行
Docker快速啟動(dòng)
#使用dockerhub鏡像啟動(dòng),連接外部數(shù)據(jù)庫(kù) sudo docker run --name gopub -e MYSQL_HOST=127.0.0.1 -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d lc13579443/gopub:latest
Docker 鏡像制作
#使用multi-stage(多階段構(gòu)建)需要docker 17.05+版本支持 sudo docker build -t gopub . sudo docker run --name gopub -e MYSQL_HOST=127.0.0.1 -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d gopub:latest
Kubernetes快速部署
#apiVersion: apps/v1 需要kubernetes 1.9.0+版本支持 kubectl apply -f gopub-kubernetes.yml
