- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui - 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5) - 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志 - 文档: 设计文档(ROADMAP/PDD/架构/模块)
643 lines
22 KiB
Markdown
643 lines
22 KiB
Markdown
# EZOps AIOps 智能运维平台 - 产品设计文档
|
|
|
|
> 文档版本: v1.0.0
|
|
> 编写日期: 2025-04-14
|
|
> 文档状态: 正式发布
|
|
|
|
---
|
|
|
|
## 目录
|
|
|
|
1. [产品概述](#1-产品概述)
|
|
2. [目标用户](#2-目标用户)
|
|
3. [产品架构](#3-产品架构)
|
|
4. [功能设计](#4-功能设计)
|
|
5. [AI能力设计](#5-ai能力设计)
|
|
6. [界面设计](#6-界面设计)
|
|
7. [技术方案](#7-技术方案)
|
|
8. [安全设计](#8-安全设计)
|
|
9. [部署方案](#9-部署方案)
|
|
10. [运营计划](#10-运营计划)
|
|
|
|
---
|
|
|
|
## 1. 产品概述
|
|
|
|
### 1.1 产品定位
|
|
|
|
EZOps AIOps 智能运维平台是一款面向企业级用户的云原生智能运维解决方案,通过深度集成AI大模型能力,实现运维工作的智能化、自动化,帮助企业降低运维成本、提升系统稳定性。
|
|
|
|
### 1.2 核心价值
|
|
|
|
- **降本增效**: AI辅助决策,减少人工干预,提升运维效率
|
|
- **预防为主**: 智能预测和预警,防患于未然
|
|
- **快速恢复**: 智能诊断和自动修复,缩短故障恢复时间
|
|
- **知识沉淀**: 运维经验AI化,实现知识复用
|
|
|
|
### 1.3 产品Slogan
|
|
|
|
> **智能运维,让系统更稳定,让团队更高效**
|
|
|
|
---
|
|
|
|
## 2. 目标用户
|
|
|
|
### 2.1 用户画像
|
|
|
|
| 用户类型 | 角色描述 | 核心需求 | 使用场景 |
|
|
|---------|---------|---------|---------|
|
|
| 运维工程师 | 日常运维执行者 | 快速定位问题、自动化操作 | 故障处理、日常巡检 |
|
|
| 运维主管 | 团队管理者 | 全局视图、效率提升 | 团队管理、决策支持 |
|
|
| SRE工程师 | 站点可靠性工程师 | 系统稳定性、性能优化 | 容量规划、性能调优 |
|
|
| DevOps工程师 | 开发运维一体化 | CI/CD、自动化发布 | 应用发布、流水线管理 |
|
|
| 技术总监 | 技术决策者 | 成本优化、风险评估 | 技术选型、预算规划 |
|
|
|
|
### 2.2 用户场景
|
|
|
|
#### 场景1: 故障快速响应
|
|
```
|
|
用户: 运维工程师小王
|
|
场景: 凌晨2点收到告警,生产环境服务响应缓慢
|
|
流程:
|
|
1. 收到AI告警分析推送,了解根因是数据库连接池耗尽
|
|
2. 查看AI推荐的解决方案
|
|
3. 一键执行自动修复脚本
|
|
4. 验证修复效果,故障恢复
|
|
时间: 从30分钟缩短到5分钟
|
|
```
|
|
|
|
#### 场景2: 日常运维自动化
|
|
```
|
|
用户: SRE工程师小李
|
|
场景: 需要每日巡检100+台服务器
|
|
流程:
|
|
1. 使用AI脚本生成器创建巡检脚本
|
|
2. 配置定时任务自动执行
|
|
3. AI分析巡检结果,生成报告
|
|
4. 异常情况自动创建告警
|
|
效果: 节省2小时/天
|
|
```
|
|
|
|
#### 场景3: 容量规划决策
|
|
```
|
|
用户: 技术总监老张
|
|
场景: 规划下季度服务器采购预算
|
|
流程:
|
|
1. 查看AI预测分析,了解资源使用趋势
|
|
2. 获取AI推荐的扩容方案
|
|
3. 对比不同方案的成本和性能
|
|
4. 做出最优决策
|
|
效果: 成本节省20%
|
|
```
|
|
|
|
---
|
|
|
|
## 3. 产品架构
|
|
|
|
### 3.1 系统架构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 展示层 │
|
|
│ ┌──────────────┬──────────────┬──────────────┬──────────────┐ │
|
|
│ │ Web控制台 │ 移动App │ 可视化大屏 │ CLI工具 │ │
|
|
│ └──────────────┴──────────────┴──────────────┴──────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 接入层 │
|
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
│ │ API网关 (认证/限流/路由/日志) │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 服务层 │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐│
|
|
│ │ 资产管理 │ │ 应用发布 │ │ 监控告警 │ │ 自动化 │ │ AIOps ││
|
|
│ │ 服务 │ │ 服务 │ │ 服务 │ │ 服务 │ │ 服务 ││
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘│
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 数据层 │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐│
|
|
│ │ MySQL │ │ Redis │ │ Prometheus│ │ ES │ │ MinIO ││
|
|
│ │ 业务数据 │ │ 缓存 │ │ 时序数据 │ │ 日志 │ │ 对象存储││
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘│
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ AI服务层 │
|
|
│ ┌──────────┬──────────┬──────────┬──────────┬──────────────┐ │
|
|
│ │ OpenAI │Anthropic │ Azure │ Ollama │ 本地模型 │ │
|
|
│ │ GPT-4 │ Claude │ OpenAI │ 本地部署 │ 微调模型 │ │
|
|
│ └──────────┴──────────┴──────────┴──────────┴──────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 3.2 模块划分
|
|
|
|
| 模块名称 | 功能描述 | 优先级 |
|
|
|---------|---------|--------|
|
|
| 资产管理 | 服务器、云资源、域名等资产全生命周期管理 | P0 |
|
|
| 应用发布 | CI/CD流水线、发布管理、版本控制 | P0 |
|
|
| 监控告警 | 指标采集、告警管理、可视化大屏 | P0 |
|
|
| 自动化运维 | 定时任务、脚本管理、Ansible执行 | P1 |
|
|
| AIOps智能 | AI助手、告警分析、故障诊断、预测分析 | P0 |
|
|
| 系统管理 | 用户权限、操作审计、系统配置 | P1 |
|
|
|
|
---
|
|
|
|
## 4. 功能设计
|
|
|
|
### 4.1 资产管理模块
|
|
|
|
#### 4.1.1 服务器管理
|
|
|
|
**功能列表:**
|
|
- 服务器CRUD操作
|
|
- 批量导入 (Excel/云API)
|
|
- 标签管理
|
|
- 远程WebShell
|
|
- 状态监控
|
|
|
|
**数据模型:**
|
|
```typescript
|
|
interface Server {
|
|
id: string;
|
|
name: string;
|
|
hostname: string;
|
|
ip: string;
|
|
os: string;
|
|
cpu: number;
|
|
memory: number;
|
|
disk: number;
|
|
status: 'running' | 'stopped' | 'error';
|
|
tags: string[];
|
|
cloudProvider?: string;
|
|
region?: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
```
|
|
|
|
#### 4.1.2 云账号管理
|
|
|
|
**功能列表:**
|
|
- 多云账号接入 (阿里云/腾讯云/AWS)
|
|
- AK/SK安全存储
|
|
- 资源自动同步
|
|
- 成本分析
|
|
|
|
### 4.2 应用发布模块
|
|
|
|
#### 4.2.1 流水线管理
|
|
|
|
**功能列表:**
|
|
- 可视化流水线配置
|
|
- 多阶段构建
|
|
- 并行/串行执行
|
|
- 审批节点
|
|
|
|
**流水线阶段:**
|
|
```yaml
|
|
stages:
|
|
- name: 代码检出
|
|
type: checkout
|
|
- name: 构建
|
|
type: build
|
|
- name: 单元测试
|
|
type: test
|
|
- name: 镜像构建
|
|
type: docker_build
|
|
- name: 部署
|
|
type: deploy
|
|
approval: true
|
|
- name: 健康检查
|
|
type: health_check
|
|
```
|
|
|
|
#### 4.2.2 发布管理
|
|
|
|
**功能列表:**
|
|
- 发布申请
|
|
- 发布审批
|
|
- 发布历史
|
|
- 一键回滚
|
|
|
|
### 4.3 监控告警模块
|
|
|
|
#### 4.3.1 指标监控
|
|
|
|
**支持指标:**
|
|
- CPU使用率
|
|
- 内存使用率
|
|
- 磁盘使用率
|
|
- 网络流量
|
|
- 应用性能指标 (QPS/RT/错误率)
|
|
|
|
#### 4.3.2 告警中心
|
|
|
|
**功能列表:**
|
|
- 告警规则配置
|
|
- 告警级别划分 (严重/警告/提示)
|
|
- 告警通知 (邮件/短信/钉钉/企业微信)
|
|
- 告警抑制和聚合
|
|
- AI告警分析
|
|
|
|
### 4.4 自动化运维模块
|
|
|
|
#### 4.4.1 定时任务
|
|
|
|
**功能列表:**
|
|
- Cron表达式配置
|
|
- 任务执行日志
|
|
- 失败重试机制
|
|
- 任务依赖管理
|
|
|
|
#### 4.4.2 Ansible管理
|
|
|
|
**功能列表:**
|
|
- Playbook管理
|
|
- 主机清单管理
|
|
- 任务执行
|
|
- 执行结果展示
|
|
|
|
### 4.5 K8s集群管理
|
|
|
|
**功能列表:**
|
|
- 多集群管理
|
|
- 节点管理
|
|
- 工作负载管理 (Deployment/Service/Ingress)
|
|
- 架构拓扑可视化
|
|
- 资源监控
|
|
|
|
---
|
|
|
|
## 5. AI能力设计
|
|
|
|
### 5.1 AI架构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ AI能力层 │
|
|
│ ┌───────────────────────────────────────────────────────┐ │
|
|
│ │ AI编排引擎 │ │
|
|
│ │ (Prompt管理/上下文管理/工具调用/结果解析) │ │
|
|
│ └───────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌──────────────┬──────────────┬──────────────┬──────────┐ │
|
|
│ │ 告警分析 │ 脚本生成 │ 故障诊断 │ 预测分析 │ │
|
|
│ │ Agent │ Agent │ Agent │ Agent │ │
|
|
│ └──────────────┴──────────────┴──────────────┴──────────┘ │
|
|
│ │ │
|
|
│ ┌───────────────────────────────────────────────────────┐ │
|
|
│ │ 模型接入层 │ │
|
|
│ │ OpenAI / Anthropic / Azure / Ollama / 本地模型 │ │
|
|
│ └───────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 5.2 AI告警分析
|
|
|
|
**功能描述:**
|
|
- 接收告警事件
|
|
- 关联相关日志和指标
|
|
- AI分析根因
|
|
- 生成修复建议
|
|
- 推荐自动修复脚本
|
|
|
|
**Prompt设计:**
|
|
```
|
|
你是一位资深的运维专家,请分析以下告警信息:
|
|
|
|
告警名称: {alert_name}
|
|
告警级别: {severity}
|
|
告警对象: {target}
|
|
告警时间: {time}
|
|
告警详情: {details}
|
|
|
|
相关日志:
|
|
{logs}
|
|
|
|
相关指标:
|
|
{metrics}
|
|
|
|
请提供:
|
|
1. 根因分析 (置信度)
|
|
2. 影响范围评估
|
|
3. 修复建议 (按优先级排序)
|
|
4. 自动修复脚本 (如适用)
|
|
5. 相似历史案例
|
|
```
|
|
|
|
### 5.3 AI脚本生成
|
|
|
|
**功能描述:**
|
|
- 自然语言描述需求
|
|
- AI生成运维脚本
|
|
- 支持多语言 (Bash/Python/Ansible)
|
|
- 一键测试执行
|
|
|
|
**Prompt设计:**
|
|
```
|
|
你是一位运维脚本专家,请根据以下需求生成{language}脚本:
|
|
|
|
需求描述: {description}
|
|
目标系统: {os}
|
|
执行环境: {environment}
|
|
|
|
要求:
|
|
1. 添加详细的注释
|
|
2. 包含错误处理
|
|
3. 添加日志输出
|
|
4. 考虑安全性
|
|
|
|
请生成完整的可执行脚本。
|
|
```
|
|
|
|
### 5.4 AI故障诊断
|
|
|
|
**功能描述:**
|
|
- 接收故障症状描述
|
|
- AI分析可能原因
|
|
- 提供诊断步骤
|
|
- 推荐解决方案
|
|
|
|
### 5.5 AI预测分析
|
|
|
|
**功能描述:**
|
|
- 分析历史指标数据
|
|
- 预测未来趋势
|
|
- 容量规划建议
|
|
- 异常预警
|
|
|
|
**预测模型:**
|
|
- 时间序列分析 (ARIMA/Prophet)
|
|
- 异常检测 (Isolation Forest)
|
|
- 趋势预测 (LSTM)
|
|
|
|
---
|
|
|
|
## 6. 界面设计
|
|
|
|
### 6.1 设计原则
|
|
|
|
- **简洁高效**: 减少用户操作步骤,提升效率
|
|
- **信息密度**: 合理的信息展示,避免信息过载
|
|
- **一致性**: 统一的视觉风格和交互模式
|
|
- **响应式**: 适配不同屏幕尺寸
|
|
|
|
### 6.2 色彩系统
|
|
|
|
```css
|
|
/* 主色调 */
|
|
--primary: #3b82f6; /* 蓝色 - 主要操作 */
|
|
--primary-hover: #2563eb;
|
|
|
|
/* 功能色 */
|
|
--success: #10b981; /* 绿色 - 成功 */
|
|
--warning: #f59e0b; /* 橙色 - 警告 */
|
|
--danger: #ef4444; /* 红色 - 危险 */
|
|
--info: #06b6d4; /* 青色 - 信息 */
|
|
|
|
/* 中性色 */
|
|
--slate-900: #0f172a; /* 深色背景 */
|
|
--slate-800: #1e293b; /* 卡片背景 */
|
|
--slate-700: #334155; /* 边框 */
|
|
--slate-100: #f1f5f9; /* 浅色文字 */
|
|
|
|
/* AI强调色 */
|
|
--ai-purple: #8b5cf6; /* 紫色 - AI功能 */
|
|
--ai-pink: #ec4899; /* 粉色 - AI强调 */
|
|
```
|
|
|
|
### 6.3 布局结构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Header (Logo + 全局搜索 + 通知 + 用户头像) │
|
|
├──────────┬──────────────────────────────────────────────────┤
|
|
│ │ │
|
|
│ │ │
|
|
│ Sidebar │ Main Content │
|
|
│ (菜单) │ (主内容区) │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
└──────────┴──────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 6.4 核心页面
|
|
|
|
#### 仪表盘
|
|
- 系统健康度卡片
|
|
- 成本费用图表
|
|
- Top资源使用排行
|
|
- 告警消息列表
|
|
- 快捷操作入口
|
|
|
|
#### AI智能助手
|
|
- 对话界面
|
|
- 快捷操作面板
|
|
- 能力展示
|
|
- 模型配置
|
|
|
|
---
|
|
|
|
## 7. 技术方案
|
|
|
|
### 7.1 技术栈
|
|
|
|
| 层级 | 技术选型 | 版本 |
|
|
|-----|---------|------|
|
|
| 前端 | React + TypeScript + Vite | React 18 |
|
|
| UI组件 | shadcn/ui + Tailwind CSS | v2.x |
|
|
| 状态管理 | Zustand | v4.x |
|
|
| 后端 | Go + Gin | Go 1.22 |
|
|
| ORM | GORM | v2.x |
|
|
| 数据库 | MySQL + Redis | 8.0 / 7.x |
|
|
| 消息队列 | RabbitMQ | 3.x |
|
|
| 监控 | Prometheus + Grafana | - |
|
|
| AI服务 | OpenAI/Anthropic/Azure | - |
|
|
|
|
### 7.2 API设计
|
|
|
|
**RESTful API规范:**
|
|
```
|
|
GET /api/v1/servers # 列表查询
|
|
GET /api/v1/servers/:id # 详情查询
|
|
POST /api/v1/servers # 创建
|
|
PUT /api/v1/servers/:id # 更新
|
|
DELETE /api/v1/servers/:id # 删除
|
|
```
|
|
|
|
**AI服务API:**
|
|
```
|
|
POST /api/v1/ai/chat # AI对话
|
|
POST /api/v1/ai/analyze-alert # 告警分析
|
|
POST /api/v1/ai/generate-script # 脚本生成
|
|
POST /api/v1/ai/diagnose # 故障诊断
|
|
POST /api/v1/ai/predict # 预测分析
|
|
```
|
|
|
|
### 7.3 数据模型
|
|
|
|
**核心实体关系:**
|
|
```
|
|
User (1) ----< (N) Role
|
|
User (1) ----< (N) OperationLog
|
|
|
|
Server (N) --> (1) CloudAccount
|
|
Server (N) --> (N) Tag
|
|
|
|
Cluster (1) ----< (N) Node
|
|
Cluster (1) ----< (N) Workload
|
|
|
|
Pipeline (1) ----< (N) PipelineStage
|
|
Pipeline (1) ----< (N) Release
|
|
|
|
AlertRule (1) ----< (N) AlertEvent
|
|
```
|
|
|
|
---
|
|
|
|
## 8. 安全设计
|
|
|
|
### 8.1 认证授权
|
|
|
|
- JWT Token认证
|
|
- RBAC权限模型
|
|
- 操作审计日志
|
|
- 敏感数据加密
|
|
|
|
### 8.2 数据安全
|
|
|
|
- 数据库连接加密
|
|
- 敏感配置加密存储
|
|
- 定期数据备份
|
|
- 操作日志保留
|
|
|
|
### 8.3 网络安全
|
|
|
|
- HTTPS传输加密
|
|
- API限流保护
|
|
- SQL注入防护
|
|
- XSS攻击防护
|
|
|
|
---
|
|
|
|
## 9. 部署方案
|
|
|
|
### 9.1 部署架构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 负载均衡层 │
|
|
│ Nginx / Traefik │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 应用服务层 │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Frontend │ │ Backend │ │ AI │ │
|
|
│ │ (Nginx) │ │ (Gin) │ │ Service │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 数据存储层 │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │ MySQL │ │ Redis │ │Prometheus│ │ ES │ │
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 9.2 部署方式
|
|
|
|
**Docker Compose (开发/测试):**
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
frontend:
|
|
image: ezops/frontend:latest
|
|
ports:
|
|
- "80:80"
|
|
|
|
backend:
|
|
image: ezops/backend:latest
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
```
|
|
|
|
**Kubernetes (生产):**
|
|
- Helm Chart部署
|
|
- ConfigMap配置管理
|
|
- Secret密钥管理
|
|
- HPA自动扩缩容
|
|
|
|
---
|
|
|
|
## 10. 运营计划
|
|
|
|
### 10.1 版本发布计划
|
|
|
|
| 版本 | 发布日期 | 主要功能 | 目标用户 |
|
|
|-----|---------|---------|---------|
|
|
| v0.1.0 | 2025-04 | MVP核心功能 | 早期用户 |
|
|
| v0.2.0 | 2025-06 | AI能力增强 | 技术团队 |
|
|
| v0.3.0 | 2025-09 | 企业级特性 | 企业客户 |
|
|
| v0.4.0 | 2025-12 | 全栈智能化 | 大规模用户 |
|
|
| v1.0.0 | 2026-Q1 | 正式发布 | 全量用户 |
|
|
|
|
### 10.2 成功指标
|
|
|
|
| 指标 | 目标值 | 测量方式 |
|
|
|-----|-------|---------|
|
|
| 用户活跃度 | DAU > 1000 | 系统统计 |
|
|
| 故障响应时间 | < 5分钟 | 告警系统 |
|
|
| AI分析准确率 | > 85% | 用户反馈 |
|
|
| 用户满意度 | NPS > 50 | 问卷调查 |
|
|
| 系统可用性 | 99.9% | 监控数据 |
|
|
|
|
### 10.3 迭代策略
|
|
|
|
- **双周迭代**: 每两周发布一个小版本
|
|
- **月度规划**: 每月制定功能规划
|
|
- **季度复盘**: 每季度进行产品复盘
|
|
- **年度规划**: 每年制定产品路线图
|
|
|
|
---
|
|
|
|
## 附录
|
|
|
|
### A. 术语表
|
|
|
|
| 术语 | 说明 |
|
|
|-----|------|
|
|
| AIOps | 人工智能运维,将AI能力应用于IT运维 |
|
|
| SRE | 站点可靠性工程 |
|
|
| DevOps | 开发运维一体化 |
|
|
| CI/CD | 持续集成/持续部署 |
|
|
| MTTR | 平均修复时间 |
|
|
| MTBF | 平均故障间隔时间 |
|
|
|
|
### B. 参考资料
|
|
|
|
- [Google SRE Book](https://sre.google/sre-book/table-of-contents/)
|
|
- [The Phoenix Project](https://itrevolution.com/the-phoenix-project/)
|
|
- [AIOps白皮书](https://www.gartner.com/en/documents/aiops)
|
|
|
|
---
|
|
|
|
*本文档由EZOps产品团队维护,如有疑问请联系 product@ezops.io*
|