@bornkiller
2018-07-18T16:10:24.000000Z
字数 1646
阅读 1330
前端运维
Java
项目编译包体积庞大;Java mono repo
项目全量发布工作量异常;java
项目需要传输静态文件,然后重启服务;tag
作为关键帧;athena
;ansible
,gitlab-ci
进行使用;子命令:ahthena make
支持项目如下:
React SPA
项目Java
微服务架构项目前端项目统一使用 @coco-platform/build
项目负责处理,编译后统一输出 tar
包;
后端 Java
微服务暂定统一使用 maven
编译打包,编译后统一输出 jar
包;
子命令:athena upload
子项目:athena server
hook | UUID | 时效 |
---|---|---|
tag release | tag name | 14 day |
branch commit | commit id | 1 day |
commit id
, tag name
, timestamp
, hash
);hash
标识下载;子命令:ahthena setup
,athena publish
执行操作:
commit id
, tag name
获取对应 hash
数组;hash
下载编译包;centos
用户,微服务 jar
包统一置于 ~/micro-service
目录下;ansible
执行自动化任务;项目类型 | 必须参数 |
---|---|
前端SPA项目 | 机器组-域名-Nginx 静态根目录 |
微服务项目 | 机器组-服务名-进程特征值 |
命令行 | 功能 |
---|---|
athena kill | 查询,关闭端口对应的进程 |
默认情况下,任何子项目的变更,都将全量上传,部署,尤其是微服务架构下,需要扩展既定标准模式。
任务编排约定,stage
列表如下:
按需求进行编排,staging
,production
任务失败,成功,警告进行通知,其他行为暂时忽略。
部署成功消息体:
{
"touser": "ox6wO1X4dtHOIJw6eqeeXuoZurq8",
"template_id": "4iLZEW_o6jouTC8gUbWULJ9cawpCa4y2Cx3fz4zcqhQ",
"data": {
"first": {
"value": "Gitlab CI 任务构建成功。",
"color": "#1E88E5"
},
"keyword1": {
"value": "vip-solution-web"
},
"keyword2": {
"value": "生产无锡A"
},
"keyword3": {
"value": "黄小健"
},
"keyword4": {
"value": "部署成功"
},
"remark": {
"value": "相关功能回归测试,有问题及时回滚。",
"color": "#9C27B0"
}
}
}
部署失败消息体:
{
"touser": "ox6wO1X4dtHOIJw6eqeeXuoZurq8",
"template_id": "4iLZEW_o6jouTC8gUbWULJ9cawpCa4y2Cx3fz4zcqhQ",
"url": "https://travis-ci.org/coco-platform",
"data": {
"first": {
"value": "Gitlab CI 任务构建失败。",
"color": "#F44336"
},
"keyword1": {
"value": "vip-solution-web"
},
"keyword2": {
"value": "生产无锡A"
},
"keyword3": {
"value": "黄小健"
},
"keyword4": {
"value": "部署失败"
},
"remark": {
"value": "立即检查自动部署任务,执行回滚任务。",
"color": "#E53935"
}
}
}