Files
aiops/docs/PDD_PLAN.md
T
attacker 7d6674bddd init: EZOps AIOps 智能运维平台
- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
2026-06-13 23:09:47 +08:00

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*