- ROADMAP Q1: 记录 src/api 清零里程碑, any 1076→937 - TDD_PLAN Q1: 补充 U8 通过标准 (src/api any 清零) - PROJECT_EVALUATION: 技术债 any 标记 in_progress
208 lines
9.3 KiB
Markdown
208 lines
9.3 KiB
Markdown
# 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 (in_progress: src/api 已清零, any 1076→937) |
|
||
| K8s 双路由体系(集群域+Kuboard 域) | 路由冗余 104 条 | 后端 | P1 |
|
||
| 25 个 ≥500 行巨型组件 | 拆分困难 | 前端 | P1 |
|
||
|
||
### 3.2 🟡 中优先级
|
||
|
||
| 问题 | 数量 | 建议优先级 |
|
||
|------|------|:----------:|
|
||
| 前端未使用变量/导入(ESLint no-unused-vars) | 218 处 | P1 |
|
||
| 前端 console.log/console.error | 93 处(含 token 泄露风险) | P1 |
|
||
| 前端 React Hooks exhaustive-deps 缺失 | 38 处 | P1 |
|
||
| 后端 `_ =` 忽略错误 | 13 处(3 处中风险) | P2 |
|
||
| 前端硬编码内网 IP(10.10.10.75 等) | 6+ 处 | P2 |
|
||
| 后端告警引擎单实例 + 无优雅退出 | 多副本会重复告警 | P2 |
|
||
|
||
### 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 | ⚠️ 偏大(含 Agent 编译工具链) |
|
||
| 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 管理极为完善;扣分项:监控大屏/链路追踪/告警静默未对接 |
|
||
| 代码质量 | **72/100** | 后端规范好(0 panic, 1 TODO);前端 1026 处 any + 218 处未用变量是主要扣分项 |
|
||
| 架构设计 | **82/100** | 前后端分离清晰,自研轻量 K8s 客户端;扣分项:kubernetes.go/api.ts 巨型文件 |
|
||
| 部署运维 | **85/100** | 三种部署方式 + run.sh 统一入口;扣分项:后端镜像偏大,告警引擎单实例 |
|
||
| 用户体验 | **86/100** | 骨架屏 + 页面过渡 + 5 套主题 + 懒加载;扣分项:无 i18n,无虚拟滚动 |
|
||
| **综合** | **83/100** | 企业级运维平台,功能覆盖全面,工程治理是当前首要提升方向 |
|