@bornkiller
2018-07-18T08:10:24.000000Z
字数 1646
阅读 1601
前端运维
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"}}}