gopub 详细介绍
gopub(基于 vue.js element 框架 + golang beego 框架开发) 是一个基于运维场景设计的企业级运维发布系统. 配置简单, 功能完善, 界面流畅, 开箱即用! 支持 git,jenkins 版本管理, 支持各种 web 代码发布, 一键完成 Golang,nodejs,PHP,Python,JAVA 等代码的发布, 回滚操作.
我们运维团队前期使用 walle(https://www.walle-web.io) web 部署系统进行发布操作, 在此也感谢 walle 团队贡献的优秀开源项目. walle 的 web 体验比较好, 本次开源的 gopub 前台完全模仿 walle 前台, 使用 vue.js element 框架重写.
gopub 已在我们预发布和生产环境完成 37000 + 次稳定部署, 支持单项目 100 + 台服务器部署 110 秒左右, 支持 2G+CDN 静态资源发布传输 30 秒完成.
使用框架
- Element
- Beego
- httprouter
- Taipei-Torrent
功能特性
部署简便: go 二进制部署, 无需安装运行环境, 下个版本将支持 Docker 部署
gitlab 发布支持: 配置每个项目 git 地址, 自动获取分支, commit 选择并自动拉取代码
jenkins 发布支持: 支持 jenkins 编译包一键发布
ssh 执行命令 / 传输文件: 使用 golang 内置 ssh 库高效执行命令 / 传输文件
BT 支持: 大文件和大批量机器文件传输使用 BT 协议支持
多项目部署: 支持多项目多任务并行, 内置 grpool 协程池支持并发操作命令和传输文件
全 web 化操作: web 配置项目, 一键发布, 一键快速回滚
API 支持: 提供所有配置和发布操作 API, 便于对接其他系统 API 使用 example
部署钩子: 支持部署前准备任务, 代码检出后处理任务, 同步后更新软链前置任务, 发布完毕后收尾任务 4 种钩子函数脚本执行
Docker 快速启动
- # 使用 dockerhub 镜像启动, 连接外部数据库
- sudodockerrun--namegopub-eMYSQL_HOST=127.0.0.1-eMYSQL_PORT=3306-eMYSQL_USER=root-eMYSQL_PASS=123456-eMYSQL_DB=walle-p8192:8192--restartalways-dlc13579443/gopub:latest
Docker 镜像制作
- # 使用 multi-stage(多阶段构建) 需要 docker17.05 + 版本支持
- sudodockerbuild-tgopub.
- sudodockerrun--namegopub-eMYSQL_HOST=127.0.0.1-eMYSQL_PORT=3306-eMYSQL_USER=root-eMYSQL_PASS=123456-eMYSQL_DB=walle-p8192:8192--restartalways-dgopub:latest
Kubernetes 快速部署
- #apiVersion:apps/v1 需要 kubernetes1.9.0 + 版本支持
- kubectlapply-fgopub-kubernetes.yml
来源: https://www.2cto.com/kf/201808/765019.html