从 0 到 1 解析技术架构平台

系统简介

技术架构平台,提供系统全链路可用性监控和告警,服务器、应用、数据库等资源管理,应用打包部署,服务全生命周期管理及治理,是支撑 PSI 软件开发一站式平台,核心目标是让系统开发运维更便捷高效。

功能概览

  • 概览:近24小时可用性拨测、PV/UV、告警概览、资源概览、容器云资源概览、公告、FAQ

  • 监控

    • 监控面板
    • 云拨测
    • 站点统计
  • 告警

    • 当前告警
    • 自定义事件
    • 告警规则
    • 通知组
    • 告警备案
    • 历史告警
  • 应用分区

  • 应用

    • 全部应用
    • 无状态后端应用:容器云部署、服务器部署
    • 无状态前端应用:容器云部署、服务器部署
    • 定时任务
  • 持续集成:打包

  • 链路追踪

    • 追踪
    • 仪表盘
    • 拓扑图
    • 接入
    • 统计
  • 数据库

    • 阿里云 RDS
    • 自建 MySQL
    • Redis
  • 日志服务

    • 日志搜索
    • 日志下载
  • 容器镜像

    • 私有镜像
    • 公有镜像
  • 服务器

  • 阿里云费用:账单明细

  • 设置

    • 项目配置
    • 用户组
    • 操作日志
    • 个人设置
  • 工单

  • 文档

数据库表

  • console_db_mysql:自建 MySQL 基本信息表
  • console_db_mysql_backup:自建 MySQL 备份信息表
  • console_db_rds:阿里云 RDS 基本信息表

相关组件

YAPI:可视化 API 接口管理平台

Sentry:前端错误监控系统

SkyWalking:APM (应用性能管理) 工具,包括指标监控、分布式追踪、分布式系统性能诊断等功能。demo

前期准备

项目下载和运行

  • UI
1
2
3
4
5
6
7
8
9
# clone代码
git clone https://git.haier.net/console/ui.git
cd ui

# 安装依赖
npm install --registry=http://10.138.16.188:4873

# 开发模式运行
npm run serve
  • CMDB
1
2
# 环境变量
DB_MYSQL=console:suMuCaSu1e@tcp(10.138.228.243:3306)/console?parseTime=true&loc=Local;COMPASS_USER=admin;COMPASS_PASSWORD=Pwd123456;COMPASS_ADDRESS=10.135.7.71:6002

技术选型

前端技术

技术 版本 说明
Vue 2.5.22 前端框架
Vue-router 3.0.1 路由框架
Vuex 3.1.0 全局状态管理框架
Ant Design of Vue 1.5.3 前端 UI 框架
Axios 0.19.0 前端 HTTP 框架
Viser 2.3.3 前端图表框架

后端技术

技术 版本 说明
gin v1.5.0 HTTP Web 开发框架

代码结构

aliyun-adaptor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.
├── client // 阿里云各服务sdk客户端
│   └── aliyun_client.go
├── cmd // main函数入口
│   └── main.go
├── conf // yaml配置文件及解析
│   ├── config.go
│   ├── config.yml
│   └── config_test.go
├── db // 数据库连接池
│   ├── errors.go
│   └── init.go
├── docs // swagger文档
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── models // 数据结构
│   ├── account.go
│   ├── account_manager.go
│   ├── aliyun.go
│   ├── database.go
│   ├── excel.go
│   └── resp.go
├── pkg // 业务逻辑
│   ├── aliyun_account
│   │   ├── account
│   │   │   ├── account_db.go
│   │   │   └── account_db_test.go
│   │   ├── account_manager
│   │   │   ├── excel.go
│   │   │   ├── manager.go
│   │   │   ├── manager_db.go
│   │   │   └── manager_test.go
│   │   ├── account_sync
│   │   │   ├── account_sync.go
│   │   │   └── aliyun_sdk.go
│   │   ├── account_test.go
│   │   └── excel
│   │   ├── excel.go
│   │   ├── excel_db.go
│   │   ├── excel_sync.go
│   │   └── oss_client.go
│   ├── aliyun_mysql // 自建MySQL
│   │   ├── mysql.go
│   │   └── mysql_test.go
│   ├── aliyun_rds // 阿里云RDS
│   │   ├── rds.go
│   │   └── rds_test.go
│   ├── aliyun_redis // Redis
│   │   ├── prometheustool.go
│   │   ├── redis.go
│   │   └── redis_test.go
│   ├── cmdb
│   │   ├── cmdb_client.go
│   │   └── cmdb_test.go
│   ├── compass // 容器云
│   │   ├── compass.go
│   │   ├── compass_db.go
│   │   └── compass_test.go
│   └── mail // 邮件
│   ├── email.go
│   ├── excel.go
│   ├── mail_db.go
│   ├── sendmail.go
│   ├── sendmail_test.go
│   ├── template.go
│   └── templates
│   └── template.html
├── router // 路由
│   ├── api
│   │   └── v1
│   │   ├── account.go
│   │   ├── account_manager.go
│   │   ├── mysql.go
│   │   ├── rds.go
│   │   ├── redis.go
│   │   └── v1.go
│   ├── app
│   │   └── gin.go
│   └── router.go
└── task // 定时任务
├── account_data
│   └── main.go
└── create_excel
└── main.go
├── Dockerfile // 构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明
├── Dockerfile.account_data // 构建定时账单数据的镜像文件
├── Dockerfile.create_excel // 构建excel的镜像文件
└── go.mod // 包管理工具

学习资料