Files
aiops/PROJECT_EVALUATION.md
T
attacker c624ca5b4a feat(ops): U4 后端镜像瘦身 282MB→107MB (62%降幅)
- 移除 git/docker-cli/docker-cli-buildx (~100MB) 改为懒加载
- PipelineHandler 注入 ToolInstaller, runCheckout/runImageBuild 调 EnsureAvailable
- UpgradeTools 自动升级 DB 中 git/docker-cli preinstall→lazy
- 仅内置 linux-amd64 agent (~12MB节省), arm64/darwin 通过下载API
- kubectl 改用 install-kubectl.sh 下载 stripped 版本
- .dockerignore 排除 backend/kubectl 60MB 二进制
- Dockerfile.embed + backend/Dockerfile 同步更新
- 17/17 集成测试通过
2026-06-27 14:28:09 +08:00

208 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIOps 智能运维平台 — 全量项目评估
> 最后审计: 2026-06-25 | 审计范围: 全项目(后端/前端/Agent/部署) | 审计人: AI + Logan
---
## 一、项目规模总览
| 层 | 文件数 | 代码行数 | 语言/框架 |
|----|--------|----------|-----------|
| **后端** | 116 个 .go | **34,485** | Go 1.24 / Gin / GORM / MySQL 8 / Redis 7 |
| **前端** | 237 个 .tsx/.ts | **58,648** | React 19 / TypeScript / Vite / Tailwind / shadcn/ui |
| **Agent** | 21 个 .go | **2,969** | Go 1.24 静态编译 (CGO_ENABLED=0) |
| **合计** | **374** | **96,102** | — |
### 关键指标
| 指标 | 数量 |
|------|------|
| 后端 API 路由 | **411 条**(GET 171 / POST 144 / DELETE 54 / PUT 41 / PATCH 1) |
| 后端业务模块 | **48 个**(handlers 目录) |
| 数据库表 | **86 张** GORM 映射表 |
| 前端 API 方法 | **352 个**(31 个模块) |
| 前端路由 | **~50 条**(45 个 lazy 组件,零空壳) |
| 前端组件 | **215 个** |
| Agent 采集器 | **11 个**(CPU/Memory/Swap/Disk/DiskIO/Network/Port/ProcessTop/FD/ContextSwitch/HealthProbe) |
| 侧边栏菜单 | **9 个一级 / 42 个二级** |
---
## 二、功能模块评估
### 2.1 资产管理 ✅ 完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 服务器 CRUD + CSV 批量导入 | ✅ | ✅ ServerManager (609L) | ✅ |
| WebShell SSH 终端 | ✅ webshell.go (325L) | ✅ xterm.js WebSocket | ✅ |
| 云账号管理(AWS/阿里/华为) | ✅ cloud_sync.go (277L) | ✅ CloudAccountManager | ✅ |
| 域名/区域/平台管理 | ✅ | ✅ | ✅ |
| 云账单 | ✅ billing.go (307L) | ✅ | ✅ |
| Agent 管理(安装/卸载/升级) | ✅ agent.go(624L) + agent_install.go(514L) | ✅ AgentWizard + HostMonitor | ✅ |
### 2.2 Kubernetes 管理 ✅ 功能完备
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 多集群 CRUD + 同步 + metrics | ✅ kubernetes.go (4204L, 134 函数) | ✅ ClusterOverviewPage | ✅ |
| Deployment 三模式编辑器 | ✅ GetYAML/UpdateYAML | ✅ DeploymentWorkload (773L) + 5 Tab 编辑器 (~2700L) | ✅ |
| StatefulSet/DaemonSet 详情 | ✅ | ✅ WorkloadViewPage (480L) | ✅ |
| Pod 日志/终端/文件浏览 | ✅ WebSocket channel.k8s.io | ✅ PodLogsViewer/PodExecTerminal/PodFileBrowser | ✅ |
| Node 详情(资源分配率) | ✅ GetNodeDetail | ✅ NodeDetailPage (330L) | ✅ |
| 事件聚合看板 | ✅ GetEventsSummary | ✅ EventsPage (480L, recharts) | ✅ |
| 多集群对比 | ✅ GetMultiClusterComparison | ✅ ClusterComparePage (360L) | ✅ |
| Namespace 管理 CRUD | ✅ GetNamespacesDetail | ✅ NamespaceManagementPage (280L) | ✅ |
| kubectl 终端 | ✅ PTY | ✅ KubectlTerminal | ✅ |
| ConfigMap/Secret 编辑 | ✅ UpdateResourceYAMLNS | ✅ YamlViewer(CodeMirror 6) | ✅ |
| YAML 语法高亮编辑器 | ✅ | ✅ CodeMirror 6 | ✅ |
### 2.3 应用发布 ✅ 完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| CI/CD 流水线(GitLab CI 风格) | ✅ pipeline.go(580L) + pipeline_executor.go(665L) | ✅ PipelineManager(961L) + PipelineEditor(602L) | ✅ |
| SSH 主机 + Kubernetes 双路径 | ✅ | ✅ 流水线横幅 | ✅ |
| 发布配置/凭证/工具 | ✅ credential.go(400L) | ✅ CredentialManager(822L) | ✅ |
| 发布权限 RBAC | ✅ | ✅ | ✅ |
### 2.4 监控告警 ⚠️ 部分缺口
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 主机监控(Agent 上报) | ✅ agent.go + health_probe.go | ✅ HostMonitor (1094L, 7 Tab) | ✅ |
| 告警规则引擎 | ✅ alert_engine.go (424L) | ✅ AlertCenter (662L) | ✅ |
| 告警通知(飞书/钉钉/企微/Webhook) | ✅ alert_channels.go (483L) | ✅ AlertContact 管理 | ✅ |
| Prometheus 数据源 + 代理 | ✅ prometheus_datasource.go + proxy | ✅ PrometheusDatasourceManager(829L) | ✅ |
| Zabbix 数据源 + 代理 | ✅ zabbix_proxy.go (284L) | ✅ | ✅ |
| 告警静默规则 | ✅ alert_silence.go + engine 集成 | ✅ SilenceRuleTab | ✅ |
| 监控大屏(Grafana 嵌入) | ❌ 无后端 | ⚠️ dashboardApi **6 个方法 mock 桩** | ❌ 需后端 |
| 链路追踪 | ❌ 无后端 | ⚠️ traceApi **3 个方法 mock 桩** | ❌ 需后端 |
### 2.5 自动化运维 ✅ 完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 定时任务(CronJob) | ✅ automation_cron.go (411L) | ✅ CronJobManager | ✅ |
| 脚本库(Shell/Python) | ✅ automation_script.go (356L) | ✅ ScriptManager | ✅ |
| 远程执行(Go-native SSH) | ✅ remote_exec.go (309L) | ✅ | ✅ |
| Ansible Playbook | ✅ ansible.go (462L) | ✅ AnsibleWorkflow(886L) | ✅ |
### 2.6 AIOps 智能 ✅ 基础完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| AI 智能助手(6 种 LLM) | ✅ llm_chat.go (349L, SSE 流式) | ✅ AIOpsAssistant(694L) | ✅ |
| 告警分析 | ✅ | ✅ | ✅ |
| 容量预测 | ✅ | ✅ | ✅ |
### 2.7 资源申请 ✅ 完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 云服务器申请审批 | ✅ | ✅ | ✅ |
| 应用部署申请 | ✅ | ✅ | ✅ |
### 2.8 系统管理 ✅ 完善
| 功能 | 后端 | 前端 | 状态 |
|------|:----:|:----:|:----:|
| 用户/角色权限 (RBAC) | ✅ user.go + user_admin.go + ldap.go(319L) | ✅ SystemManager | ✅ |
| LDAP 集成 | ✅ ldap.go + ldap_users.go(397L) | ✅ | ✅ |
| 操作审计 | ✅ audit.go (360L) + CSV 导出 | ✅ | ✅ |
| 终端审计(WebSSH 录制) | ✅ | ✅ | ✅ |
| 凭证管理 | ✅ credential.go(400L) | ✅ | ✅ |
| 系统设置 | ✅ | ✅ | ✅ |
---
## 三、技术债评估
### 3.1 🔴 高优先级
| 问题 | 影响 | 范围 | 建议优先级 |
|------|------|------|:----------:|
| ~~`kubernetes.go` 4204 行/134 函数~~ → 已拆分为 12 个域文件(最大 696 行) | ✅ 已解决 | 后端 | ~~P0~~ done |
| ~~`api.ts` 1324 行/352 方法~~ → 已拆分为 12 个域文件 (api/kubernetes.ts, deploy.ts, monitor.ts 等) | ✅ 已解决 | 前端 | ~~P0~~ done |
| 前端 **1026 处** `any` 类型 | 类型安全缺失,重构风险高 | 前端全局 | ~~P0~~ **done** (any 1076→40, unused 25→6, console 93→1, tsc --noEmit=0) |
| ~~K8s 双路由体系(集群域+Kuboard 域)~~ → code 路由统一为主,ID 路由标记 deprecated 向后兼容 | ✅ 已解决 | 后端 | ~~P1~~ done |
| 25 个 ≥500 行巨型组件 | 拆分困难 | 前端 | P1 |
### 3.2 🟡 中优先级
| 问题 | 数量 | 建议优先级 |
|------|------|:----------:|
| 前端未使用变量/导入(ESLint no-unused-vars) | ~~218 处~~ → **0 处** | ~~P1~~ ✅ done |
| 前端 console.log/console.error | ~~93 处~~ → **3 处** | ~~P1~~ ✅ done |
| 前端 React Hooks exhaustive-deps 缺失 | 38 处 | P1 |
| 后端 `_ =` 忽略错误 | 13 处(3 处中风险) | P2 |
| 前端硬编码内网 IP(10.10.10.75 等) | 6+ 处 | P2 |
| 后端告警引擎分布式安全 | ✅ Redis 分布式锁(SetNX + 60s TTL) | 后端 | ~~P2~~ done |
### 3.3 🟢 低优先级
| 问题 | 数量 |
|------|------|
| 前端 `set-state-in-effect`(潜在无限循环) | 7 处 |
| 前端 `react-hooks/purity`(render 调 Date.now) | 6 处 |
| 前端死代码(HostMonitorDashboard lazy 未挂载) | 1 处 |
| 后端 `exec.Command` + `bash -c`(命令注入面) | 18 处(需审计用户输入路径) |
### 3.4 Mock API / 未对接后端
| 前端 API 模块 | 方法数 | 状态 | 需要 |
|---------------|--------|------|------|
| `dashboardApi`(Grafana 大屏) | 6 | mock 返回空 | 后端 Grafana iframe/embed |
| `traceApi`(链路追踪) | 3 | mock 返回空 | 后端 Jaeger/Tempo 集成 |
---
## 四、架构评估
### 4.1 部署架构
| 方式 | 架构 | 容器数 | 状态 |
|------|------|--------|:----:|
| Docker Compose | MySQL+Redis+Backend+Nginx | 4 | ✅ |
| Kubernetes | Embed 单容器 + MySQL/Redis StatefulSet | 3+ | ✅ |
| 独立二进制 | Go embed 前端 | 1 | ✅ |
### 4.2 镜像体积
| 镜像 | 大小 | 评估 |
|------|------|------|
| aiops-backend | ~~277 MB~~ → **107 MB** | ✅ U4 镜像瘦身完成(git/docker-cli 改懒加载, 仅 amd64 agent, kubectl stripped) |
| aiops-frontend | 69.8 MB | ✅ Nginx Alpine |
| aiops-embed | 54.9 MB | ✅ 单文件 |
### 4.3 数据库架构
- **86 张表**,前缀规范统一:`iam_` / `asset_` / `monitor_` / `ops_` / `deploy_` / `ai_` / `sys_` / `kubernetes_`
- GORM AutoMigrate,UTF-8MB4
- 已做索引审计(20 个重复索引已清理)
### 4.4 安全
| 项 | 状态 |
|----|:----:|
| JWT 认证 | ✅ |
| RBAC 角色权限(后端) | ✅ |
| RBAC 前端按钮级控制 | ✅ `usePermission` hook + `<HasPermission>` + Sidebar 过滤 |
| SQL 注入防护 | ✅ 全参数化 |
| XSS 防护 | ✅ React 默认 |
| HTTPS | ⚠️ 生产未强制 |
| 密码 Bcrypt | ✅ |
---
## 五、综合评分
| 维度 | 评分 | 说明 |
|------|:----:|------|
| 功能完整性 | **88/100** | 8 大模块齐全,K8s 管理极为完善;扣分项:监控大屏/链路追踪/告警静默未对接 |
| 代码质量 | **82/100** | 后端规范好(0 panic, 1 TODO);前端 any 从 1026 降至 40 + tsc --noEmit 零错误,类型安全大幅提升 |
| 架构设计 | **86/100** | 前后端分离清晰,自研轻量 K8s 客户端;kubernetes.go/api.ts 已拆分,K8s 双路由已统一为 code 路由为主 (A1 done),WebSocket 统一管理 (A3 done) |
| 部署运维 | **90/100** | 三种部署方式 + run.sh 统一入口;镜像优化 U4 done (282MB→107MB) |
| 用户体验 | **88/100** | 骨架屏 + 页面过渡 + 5 套主题 + 懒加载 + 虚拟滚动 + 统一 DataTable;扣分项:无 i18n |
| **综合** | **88/100** | 企业级运维平台,功能覆盖全面,P0 全部完成,P1 全部完成,P2 A1/A2/A3 全部完成,P3 U1/U2/U4 done (仅 U3 国际化 pending) |