Files
aiops/PROJECT_EVALUATION.md
T
attacker 3b112ee813 docs: 添加项目评估、开发路线图、TDD开发计划三份核心文档
- PROJECT_EVALUATION.md: 综合评分72/100,15模块全量审计,工程质量(零测试)为最大风险
- ROADMAP.md: v0.3.0质量加固(当前)→v0.4.0企业级→v1.0.0智能化,含技术债务清单
- TDD_PLAN.md: 后端3阶段测试计划(覆盖率0%→50%),含K8s/Auth/Pipeline具体测试函数
2026-06-21 21:20:04 +08:00

9.2 KiB

AIOps 智能运维平台 — 项目评估报告

审计日期: 2026-06-21 审计方式: 全量代码扫描 + 模块逐项评估 当前版本: v0.2.0 (Phase 2 — AI 能力增强) 综合评分: 72 / 100


一、项目概况

项目 说明
名称 AIOps 智能运维平台
定位 企业级云原生智能运维解决方案
仓库 gitee.com/attacker/aiops (master 分支)
开发机 10.10.10.75 (Ubuntu 24.04, Go 1.22.2)
生产机 10.10.10.150 (docker-compose 部署)
部署方式 3 种: embed 单容器 / 二进制 / K8s
近 7 天提交 171 次 (极度活跃)

三大核心能力

  1. 资产管理 — 服务器/云资源(云账号·域名·账单)/K8s 集群
  2. 监控告警 — Agent 指标采集 / 告警引擎 / 告警中心 / 日志 / 链路追踪 / 监控大屏
  3. 自动化运维 + AIOps — CronJob/Script/Ansible / 资源审批 / AI 告警分析·故障诊断·脚本生成

二、技术架构评估

技术栈

层 技术 版本 端口
后端 Go + Gin + GORM + SQLite(CGO) + JWT + Zap Go 1.24 8080
前端 React + TypeScript + Vite + Tailwind + shadcn/ui + Zustand + TanStack Query React 19 5173
Agent Go (CGO_ENABLED=0 静态二进制, amd64+arm64) Go 1.24 —
数据库 SQLite (CGO) — —
缓存 Redis — 6379

代码规模

模块 行数 文件数 说明
后端 Go 28,633 60+ handler, 25 model 含 K8s 2583 行 + client 1486 行
前端 TS/TSX 50,287 15 组件目录 + 6 页面 K8s 组件 22 个
Agent Go 1,701 13 文件 双通道: 指标采集 + 远程任务
合计 ~80,621 — 中大型项目

架构亮点

  • ✅ Agent 双通道设计 — 指标采集 (10s 上报 /proc) + 远程任务 (5s 轮询),解耦清晰
  • ✅ 5 套主题 — CSS 变量驱动,暗色/亮色/紫色/绿色/玫红一键切换
  • ✅ WebShell / PTY 终端 — WebSocket 实现,K8s exec + kubectl 双终端
  • ✅ 3 种部署方式 — embed 单容器 / 二进制 / K8s,灵活适配
  • ✅ RBAC + Item-Role — 细粒度数据级权限控制
  • ✅ WebSocket 实时能力 — 终端 / 指标流 / Pipeline 日志 / K8s exec

架构风险

  • ⚠️ SQLite + CGO — 单文件数据库,并发写入受限,不适合多实例横向扩展
  • ⚠️ kubernetes.go 巨型文件 — 96KB / 2583 行 / 99 函数,严重违反单一职责
  • ⚠️ Go module 名仍为 ezops — 与项目名 aiops 不一致 (历史遗留)
  • ⚠️ 无消息队列 — 告警/任务全同步处理,高并发下可能阻塞

三、功能完成度评估

后端逐模块 (15 个功能模块)

# 模块 Handler 文件 路由数 完成度 状态
1 认证/用户/角色 (JWT+RBAC) user.go, user_admin.go, role.go, item_role.go ~25 100% ✅ 生产可用
2 LDAP 集成 ldap.go, ldap_ou.go, ldap_users.go ~12 100% ✅ 生产可用
3 仪表盘 dashboard.go ~4 100% ✅
4 服务器管理 server.go, server_batch.go, webshell.go ~10 100% ✅ 生产可用
5 云资源管理 cloud_accounts/domain/platform/region/billing/sync ~25 100% ✅ 生产可用
6 监控告警 prometheus/zabbix/snmp/site/alert* ~40 95% ✅ 告警渠道待完善
7 Kubernetes kubernetes.go (99 函数!) 74 95% ✅ 核心功能完备
8 CI/CD 部署 pipeline*.go, credential*.go, deploy*.go ~30 90% ✅ 执行器完备
9 自动化运维 automation_cron/script, ansible.go ~20 100% ✅ 15 个 Ansible 模板
10 资源审批 approval.go, approval_process.go ~8 100% ✅ 动态表单
11 AI/LLM llm*.go (chat/config/history) ~10 90% ✅ 多模型支持
12 操作审计 audit.go ~5 90% ⚠️ CSV 导出 TODO
13 导航/菜单 navigation*.go ~6 100% ✅
14 Agent 管理 agent.go, agent_install.go, agent_task.go ~15 100% ✅ 含一键安装
15 监控数据源 prometheus/zabbix_datasource + proxy ~15 100% ✅

前端逐模块

模块 组件数 代表组件 完成度
K8s 管理 22 DeploymentDetail (719行), TopologyView (586行), PodFileBrowser (552行) 95%
CI/CD 部署 8 PipelineManager, PipelineEditor, CredentialManager 90%
监控告警 12 AlertCenter, GrafanaDashboard, TraceManager 90%
服务器管理 6 ServerManager, CloudServerImport, WebShell 100%
云资源 4 CloudAccountManager, CloudBilling, DomainManager 100%
自动化 3 AnsibleWorkflow (886行) 100%
AI 助手 2 AIOpsAssistant (686行) 90%
系统管理 4 LdapManagementSection 100%
审批流程 3 ApprovalFlow, ApprovalCreateDialog 100%
布局/UI — sidebar (689行) + shadcn/ui 全家桶 100%

Mock / TODO 清单

位置 类型 严重度 说明
audit.go:223 TODO 低 CSV/Excel 导出未实现
scripts/mock.go 种子数据 无 开发用 mock 数据生成器,非生产代码
scripts/seed*.go 种子数据 无 K8s 资源种子数据

结论: 生产代码中 Mock 极少,仅 1 个 TODO。功能真实度高。


四、多维度评分

维度 权重 得分 加权 说明
功能完整度 25% 90 22.5 15 模块全部可用,K8s 99 函数覆盖极广
前后端对接 20% 85 17.0 367 路由全连通,WebSocket 实时通道完备
工程质量 20% 30 6.0 ⚠️ 零测试! 无 CI/CD,技术债集中在测试
UI/UX 15% 85 12.75 5 主题,shadcn/ui,响应式,交互流畅
后端架构 20% 70 14.0 模块清晰但 kubernetes.go 巨型,SQLite 限扩展
综合 100% — 72.25 72 / 100

评分雷达图 (ASCII)

        功能完整度 90
           ★★★★★
          /       \
         /         \
架构 70 ★           ★ 85 对接
        \         /
         \       /
工程质量  ★★★☆☆   ★★★★★  UI/UX
   30         85

五、关键风险 (按严重度排序)

🔴 P0 — 必须立即处理

# 风险 影响 建议
1 零测试覆盖 任何改动无回归保护,171 次/周提交量下极其危险 立即建立后端单元测试,优先覆盖 K8s/CI-CD/认证模块
2 无 CI/CD 流水线 代码质量无门禁,构建/部署全手动 搭建 GitHub Actions/Gitea CI,PR 必须过测试+lint

🟡 P1 — 本版本内处理

# 风险 影响 建议
3 SQLite 并发瓶颈 高并发写入锁竞争,无法多实例部署 评估迁移 MySQL/PostgreSQL (已有多数据库抽象层)
4 kubernetes.go 巨型文件 96KB 维护困难,合并冲突高发 拆分为 cluster/deployment/pod/hpa/cronjob 等子文件
5 Go module 名 ezops 与项目名不一致,导入路径混乱 全局重命名 ezops → aiops
6 无 API 文档自动生成 367 路由无 Swagger/OpenAPI 引入 swaggo 自动生成 API 文档

🟢 P2 — 下个版本规划

# 风险 影响 建议
7 无消息队列 告警/任务同步处理 引入 Redis Stream / NATS 异步化
8 前端无 E2E 测试 UI 回归靠人工 引入 Playwright 覆盖核心流程
9 审计日志 CSV 导出缺失 用户无法导出审计报表 实现 audit.go:223 TODO

六、下一步行动 (优先级排序)

立即行动 (本周)

  1. 搭建测试框架 — 后端 testing + testify + httptest,前端 Vitest + React Testing Library
  2. 建立 CI 流水线 — .gitea/workflows/ci.yml:lint → test → build → docker push
  3. 拆分 kubernetes.go — 按资源类型拆为 6-8 个文件

短期 (2-4 周)

  1. 编写核心模块测试 — K8s handler / Pipeline executor / Auth / Alert engine (覆盖率 > 50%)
  2. 引入 Swagger — swag init 生成 API 文档,367 路由全覆盖
  3. module 重命名 — ezops → aiops 全局替换
  4. 前端测试基建 — Vitest + Playwright E2E 冒烟测试

中期 (1-2 月)

  1. 数据库迁移评估 — SQLite → MySQL (利用现有 GORM 抽象层)
  2. 告警异步化 — 引入 Redis Stream 解耦告警引擎
  3. 可观测性 — 后端引入 Prometheus metrics + 结构化日志增强

七、总结

AIOps 平台在 功能广度 上已达到企业级水准 — 15 个功能模块、367 条路由、80K+ 行代码,K8s 管理能力尤其突出(99 个函数覆盖集群全生命周期)。前后端对接完整,UI/UX 打磨到位,部署方式灵活。

最大短板是工程质量(30/100): 零测试、无 CI、巨型文件。在 171 次/周的高频提交节奏下,缺乏测试保护是最高风险。当前阶段的战略重心应从"功能开发"转向"质量加固" — 建立 TDD 流程、搭建 CI/CD、拆分巨型文件,为后续的多云管理和智能化升级打下坚实工程基础。