[关闭]
@bornkiller 2018-07-18T16:10:24.000000Z 字数 1646 阅读 1330

自动部署系统设计

前端运维


部署问题

部署约定

系统设计

思路

源代码编译

子命令:ahthena make
支持项目如下:

前端项目统一使用 @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

自动化发布

子命令:ahthena setupathena publish
执行操作:

  1. 查询 commit id, tag name 获取对应 hash 数组;
  2. 基于 hash 下载编译包;
  3. 下载预设模板;
  4. 渲染模板,部署用户统一使用 centos 用户,微服务 jar 包统一置于 ~/micro-service 目录下;
  5. 使用 ansible 执行自动化任务;
项目类型 必须参数
前端SPA项目 机器组-域名-Nginx 静态根目录
微服务项目 机器组-服务名-进程特征值

辅助工具

命令行 功能
athena kill 查询,关闭端口对应的进程

Mono repo 增量优化扩展

默认情况下,任何子项目的变更,都将全量上传,部署,尤其是微服务架构下,需要扩展既定标准模式。

mono repo 优化.png-58.5kB

部署通知

任务编排约定,stage 列表如下:

按需求进行编排,stagingproduction 任务失败,成功,警告进行通知,其他行为暂时忽略。

部署成功消息体:

  1. {
  2. "touser": "ox6wO1X4dtHOIJw6eqeeXuoZurq8",
  3. "template_id": "4iLZEW_o6jouTC8gUbWULJ9cawpCa4y2Cx3fz4zcqhQ",
  4. "data": {
  5. "first": {
  6. "value": "Gitlab CI 任务构建成功。",
  7. "color": "#1E88E5"
  8. },
  9. "keyword1": {
  10. "value": "vip-solution-web"
  11. },
  12. "keyword2": {
  13. "value": "生产无锡A"
  14. },
  15. "keyword3": {
  16. "value": "黄小健"
  17. },
  18. "keyword4": {
  19. "value": "部署成功"
  20. },
  21. "remark": {
  22. "value": "相关功能回归测试,有问题及时回滚。",
  23. "color": "#9C27B0"
  24. }
  25. }
  26. }

部署失败消息体:

  1. {
  2. "touser": "ox6wO1X4dtHOIJw6eqeeXuoZurq8",
  3. "template_id": "4iLZEW_o6jouTC8gUbWULJ9cawpCa4y2Cx3fz4zcqhQ",
  4. "url": "https://travis-ci.org/coco-platform",
  5. "data": {
  6. "first": {
  7. "value": "Gitlab CI 任务构建失败。",
  8. "color": "#F44336"
  9. },
  10. "keyword1": {
  11. "value": "vip-solution-web"
  12. },
  13. "keyword2": {
  14. "value": "生产无锡A"
  15. },
  16. "keyword3": {
  17. "value": "黄小健"
  18. },
  19. "keyword4": {
  20. "value": "部署失败"
  21. },
  22. "remark": {
  23. "value": "立即检查自动部署任务,执行回滚任务。",
  24. "color": "#E53935"
  25. }
  26. }
  27. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注