# AIOps 智能运维平台 — 优化路线图 > 基于全量审计(96,102 行代码 / 374 文件),从「K8s 功能开发」全面转向「工程质量 + 功能补全 + 架构治理」。 > 最后更新: 2026-06-25 --- ## 当前状态:功能开发阶段已完成 | 大模块 | 完成度 | 说明 | |--------|:------:|------| | 资产管理 | 100% | 服务器/云账号/域名/账单/Agent 全功能 | | Kubernetes 管理 | 100% | M1-M14 全部完成(14 个子模块) | | 应用发布 | 100% | CI/CD 流水线 + SSH/K8s 双路径 | | 监控告警 | 80% | Agent 监控 + 告警引擎完善;缺:大屏/链路追踪/告警静默 | | 自动化运维 | 100% | CronJob/脚本/Ansible | | AIOps 智能 | 100% | 6 种 LLM + 告警分析 + 容量预测 | | 系统管理 | 95% | 审计导出 TODO | --- ## P0 — 工程质量治理(最高优先级) > 目标:从「能跑」升级到「能维护」。解决前端类型安全和后端巨型文件问题。 ### Q1: 前端类型安全治理 [pending] **问题**: 1026 处 `any` 类型 + 218 处未使用变量 **方案**: 1. 建立 `frontend/src/types/` 后端响应类型定义库(当前仅 375 行,覆盖率极低) 2. 按模块定义接口:`types/kubernetes.ts` / `types/server.ts` / `types/pipeline.ts` 等 3. 逐步将 `any` 替换为具体接口类型 4. 清理 218 处 `no-unused-vars` 5. 移除 93 处 `console.*`(特别是 `api.ts:280` 泄露 token 的调试日志) 6. 配置 CI `tsc --noEmit` 零错误门禁 **验收标准**: - [ ] `types/` 目录覆盖所有后端响应结构 - [ ] `any` 类型从 1026 处降至 < 50 处 - [ ] `npx tsc --noEmit` 零错误 - [ ] ESLint `no-unused-vars` 降至 < 20 处 - [ ] `console.*` 降至 < 10 处(仅保留 error 级别) ### Q2: 后端 kubernetes.go 模块化拆分 [pending] **问题**: 单文件 4204 行 / 134 函数,全仓最大文件 **方案**: ``` handlers/kubernetes.go (4204L) → handlers/k8s_cluster.go (集群 CRUD + 同步 + metrics) → handlers/k8s_workload.go (Deployment/STS/DS 读写操作) → handlers/k8s_pod.go (Pod 日志/终端/文件/exec) → handlers/k8s_yaml.go (通用 YAML get/update) → handlers/k8s_namespace.go (Namespace CRUD + 配额) → handlers/k8s_events.go (事件列表 + 聚合) → handlers/k8s_node.go (Node 详情 + 资源分配) → handlers/k8s_compare.go (多集群对比) ``` **验收标准**: - [ ] 拆分后单文件不超过 800 行 - [ ] 所有路由不变,API 响应不变 - [ ] `go build` 零错误 - [ ] 411 条路由全部可访问(回归测试) ### Q3: 前端 api.ts 模块化拆分 [pending] **问题**: 单文件 1324 行 / 352 方法 **方案**: ``` services/api.ts (1324L) → services/api/kubernetes.ts (78 方法) → services/api/deploy.ts (34 方法) → services/api/agent.ts (23 方法) → services/api/alert.ts (21 方法) → services/api/server.ts (11 方法) → services/api/cloud.ts (12 方法) → services/api/index.ts (统一 re-export) ``` **验收标准**: - [ ] 拆分后单文件不超过 300 行 - [ ] 所有 import 路径正确 - [ ] `npm run build` 零错误 - [ ] 352 个 API 方法全部保留 --- ## P1 — 功能补全 > 目标:消除前端 mock 桩,补全监控模块缺失的后端。 ### F1: 告警静默规则 [pending] **问题**: `alertCenterApi.silence` 硬编码返回 `{success:true}` **方案**: - 后端新增 `alert_silences` 表 + CRUD API - 告警引擎评估时检查静默规则(匹配 namespace/label/时间窗) - 前端 AlertCenter 新增「静默规则」Tab **验收标准**: - [ ] 可创建/查看/删除静默规则 - [ ] 静默期间告警引擎不触发通知 - [ ] 静默到期自动恢复 ### F2: 审计日志导出 [pending] **问题**: 后端 `audit.go` 导出功能仅返回 JSON(TODO) **方案**: - 实现 CSV/Excel 导出(用 `excelize` 库) - 前端添加「导出」按钮 **验收标准**: - [ ] 可导出为 Excel 格式 - [ ] 支持按时间/用户/操作类型筛选导出 ### F3: 前端 RBAC 按钮级控制 [pending] **问题**: 后端 RBAC 完善,但前端无按钮级权限控制 **方案**: - 封装 `` 组件 - Sidebar 菜单按角色过滤 - 操作按钮根据权限显示/隐藏 **验收标准**: - [ ] 不同角色看到不同菜单 - [ ] 无权限按钮自动隐藏 - [ ] 权限变更后实时生效 --- ## P2 — 架构优化 ### A1: K8s 双路由体系统一 [pending] **问题**: 104 条 K8s 路由存在集群域 `/kubernetes-clusters/:id/...` 和 Kuboard 域 `/kubernetes/:code/...` 两套 **方案**: 以 Kuboard code 路由为主,ID 路由保留向后兼容(标记 deprecated) ### A2: 告警引擎分布式安全 [pending] **问题**: 告警引擎用 goroutine + 30s ticker 常驻,多副本会重复告警 **方案**: Redis 分布式锁(每轮 ticker 先抢锁),或选主机制 ### A3: WebSocket 连接统一管理 [pending] **问题**: WebShell/kubectl/PodExec/日志流各有 WebSocket 实现 **方案**: 封装统一的 WebSocket 管理器(断线重连 + 心跳 + 消息分发) --- ## P3 — 用户体验提升 ### U1: 虚拟滚动 [pending] - Pod 列表(1000+ Pod 场景)使用 `@tanstack/react-virtual` - 事件列表、审计日志列表 ### U2: 统一 DataTable 组件 [pending] - 封装排序/筛选/分页/导出/列自定义的通用表格 - 替换散布在各页面的手写表格 ### U3: 国际化 (i18n) [pending] - 提取所有中文文案到 `i18n/zh-CN.json` - 预留 `en-US.json` 扩展 ### U4: 后端镜像优化 [pending] - Backend 277MB → 目标 < 150MB(多阶段构建优化,移除 Agent 编译工具链) - 或使用 distroless 基础镜像 --- ## 模块状态追踪 | ID | 模块 | 优先级 | 状态 | |----|------|:------:|:----:| | Q1 | 前端类型安全治理 | P0 | pending | | Q2 | kubernetes.go 拆分 | P0 | pending | | Q3 | api.ts 拆分 | P0 | pending | | F1 | 告警静默规则 | P1 | pending | | F2 | 审计日志导出 | P1 | pending | | F3 | 前端 RBAC 控制 | P1 | pending | | A1 | K8s 路由统一 | P2 | pending | | A2 | 告警引擎分布式 | P2 | pending | | A3 | WebSocket 管理 | P2 | pending | | U1 | 虚拟滚动 | P3 | pending | | U2 | 统一 DataTable | P3 | pending | | U3 | 国际化 | P3 | pending | | U4 | 镜像优化 | P3 | pending | --- ## 状态标记规则 ``` pending → in_progress → done / blocked ``` 每个模块完成后: 1. 更新本文件状态 2. 更新 PROJECT_EVALUATION.md 对应行 3. git commit message 格式: `refactor: Q2 kubernetes.go 模块化拆分`