将 handlers/kubernetes.go (4204行/134函数) 按业务域拆分为: - kubernetes.go (106L): struct + constructor + 共享helpers - k8s_cluster.go (642L): 集群CRUD + 同步 + RBAC - k8s_workload.go (696L): Deployment/STS/DS/ReplicaSet操作 - k8s_pod.go (653L): Pod日志/终端/exec/指标 - k8s_pod_files.go (206L): Pod文件浏览/上传/下载 - k8s_resource.go (351L): Service/Ingress/ConfigMap/Secret/PVC/Topology - k8s_hpa_cronjob.go (384L): HPA + CronJob - k8s_yaml.go (213L): YAML get/update/delete/apply - k8s_namespace.go (305L): Namespace CRUD - k8s_events.go (207L): 事件列表+聚合 - k8s_node.go (428L): Node详情+资源分配 - k8s_compare.go (146L): 多集群对比 验收: go build零错误, 425条路由不变, 26个K8s API端点回归测试全通过
7.0 KiB
7.0 KiB
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 处未使用变量
方案:
- 建立
frontend/src/types/后端响应类型定义库(当前仅 375 行,覆盖率极低) - 按模块定义接口:
types/kubernetes.ts/types/server.ts/types/pipeline.ts等 - 逐步将
any替换为具体接口类型 - 清理 218 处
no-unused-vars - 移除 93 处
console.*(特别是api.ts:280泄露 token 的调试日志) - 配置 CI
tsc --noEmit零错误门禁
验收标准:
types/目录覆盖所有后端响应结构any类型从 1026 处降至 < 50 处npx tsc --noEmit零错误- ESLint
no-unused-vars降至 < 20 处 console.*降至 < 10 处(仅保留 error 级别)
Q2: 后端 kubernetes.go 模块化拆分 [done]
问题: 单文件 4204 行 / 134 函数,全仓最大文件
方案:
handlers/kubernetes.go (4204L → 106L core)
→ handlers/kubernetes.go (106L: struct + constructor + shared helpers)
→ handlers/k8s_cluster.go (642L: 集群 CRUD + 同步 + RBAC)
→ handlers/k8s_workload.go (696L: Deployment/STS/DS/ReplicaSet 读写操作)
→ handlers/k8s_pod.go (653L: Pod 日志/终端/exec/指标)
→ handlers/k8s_pod_files.go (206L: Pod 文件浏览/上传/下载)
→ handlers/k8s_resource.go (351L: Service/Ingress/ConfigMap/Secret/PVC/Topology)
→ handlers/k8s_hpa_cronjob.go (384L: HPA + CronJob)
→ handlers/k8s_yaml.go (213L: 通用 YAML get/update/delete/apply)
→ handlers/k8s_namespace.go (305L: Namespace CRUD + 配额)
→ handlers/k8s_events.go (207L: 事件列表 + 聚合)
→ handlers/k8s_node.go (428L: Node 详情 + 资源分配)
→ handlers/k8s_compare.go (146L: 多集群对比)
验收标准:
- 拆分后单文件不超过 800 行(最大 k8s_workload.go 696 行)
- 所有路由不变,API 响应不变(425 条路由,26 个核心端点回归测试全通过)
go build零错误- 425 条路由全部可访问(回归测试)
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 完善,但前端无按钮级权限控制
方案:
- 封装
<HasPermission permission="xxx">组件 - 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 | done |
| 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
每个模块完成后:
- 更新本文件状态
- 更新 PROJECT_EVALUATION.md 对应行
- git commit message 格式:
refactor: Q2 kubernetes.go 模块化拆分