一、发布系统架构
(1)普通发布
(2)微服务发布
二、子系统与功能模块
(1)代码仓库
github、gitlab、svn
(2)构建机
jenkins、maven构建机、本地构建包
(3)审计系统
jira
(4)云盘
云盘服务、大容量的机器
(5)发布机
发布进程,具有停止发布功能
(6)待发布机器
具备SSH、Ansible功能
(7)反向代理
Nginx(可选)
(8)目标应用
Tomcat、Apache、Nginx
(9)发布WEB系统
项目管理功能
机器管理功能
机器配置管理功能
发布脚本管理功能
构建功能
审计功能
发布功能
项目实例管理
日志功能
通知功能
用户功能
权限功能
三、发布流程设计
四、发布任务设计
1、发布类型
Php、Tomcat、Java App、Go、Docker、Shell、NodeJS、Nginx、静态网页
2、任务类型
串行发布、并行发布、分批发布
3、启动类型
先启动新进程后停止旧进程、先停止旧进程后启动新进程、启动新进程
4、任务状态
等待、执行中、成功、部分失败、全部失败、人工终止、暂停发布
五、发布脚本设计
1、检查环境
2、下载发布包
3、获取配置包
4、替换配置
5、发布前置脚本
6、发布新版本包、备份当前版本包
7、检查新进程、设置监控
8、发布后置脚本/回滚旧版本包
9、清除发布文件