# 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 周) 4. **编写核心模块测试** — K8s handler / Pipeline executor / Auth / Alert engine (覆盖率 > 50%) 5. **引入 Swagger** — `swag init` 生成 API 文档,367 路由全覆盖 6. **module 重命名** — `ezops` → `aiops` 全局替换 7. **前端测试基建** — Vitest + Playwright E2E 冒烟测试 ### 中期 (1-2 月) 8. **数据库迁移评估** — SQLite → MySQL (利用现有 GORM 抽象层) 9. **告警异步化** — 引入 Redis Stream 解耦告警引擎 10. **可观测性** — 后端引入 Prometheus metrics + 结构化日志增强 --- ## 七、总结 AIOps 平台在 **功能广度** 上已达到企业级水准 — 15 个功能模块、367 条路由、80K+ 行代码,K8s 管理能力尤其突出(99 个函数覆盖集群全生命周期)。前后端对接完整,UI/UX 打磨到位,部署方式灵活。 **最大短板是工程质量(30/100)**: 零测试、无 CI、巨型文件。在 171 次/周的高频提交节奏下,缺乏测试保护是最高风险。**当前阶段的战略重心应从"功能开发"转向"质量加固"** — 建立 TDD 流程、搭建 CI/CD、拆分巨型文件,为后续的多云管理和智能化升级打下坚实工程基础。