fix: restructure xinfra slides section order and remove API/ER slides
Deploy Slides / build-and-deploy (push) Successful in 2m18s

- Remove API 设计规范 and 数据库 ER 设计(核心表)slides
- Fix TOC: remove deleted 数据库设计 entry
- Fix 对接子系统 section divider: add 三、 prefix
- Move 对接子系统 after all architecture diagrams to keep
  架构图 section完整连续(9 diagrams uninterrupted)
This commit is contained in:
2026-07-16 10:20:06 +08:00
parent 2e6a3a198d
commit 8a422528d5
+223 -325
View File
@@ -58,7 +58,6 @@ layout: default
### 四、架构描述
- 技术选型
- 数据库设计
- 安全机制
- 运维模型与风险
@@ -269,228 +268,6 @@ graph LR
</div>
---
section: 对接子系统
layout: center
---
# 对接子系统
<div class="text-gray-400 mt-2">Wayne · CloudDM · CacheCloud · Apollo · Grafana · qpass</div>
---
# 子系统 — Wayne(多集群容器管理)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
多集群 Kubernetes 容器管理平台,统一管理 7 机房 RKE2 集群。
### 核心能力
- **多集群纳管** — 通过 Client-Go 对接各机房 RKE2 集群 API
- **应用部署** — 支持 Deployment、StatefulSet 等 K8s 工作负载管理
- **CI/CD 集成** — 对外提供 APIKey,GitLab CI 自动触发部署
- **一键回滚** — 应用发布异常时快速回滚至历史版本
</div>
<div>
### 关键对接
```mermaid
graph LR
CI["GitLab CI"] -->|APIKey 认证| Wayne["Wayne"]
Wayne -->|Client-Go| RKE2["RKE2 集群"]
Main["XINFRA 主系统"] -.->|SSO| Wayne
```
### 说明
- 独立 WebUI + API 服务
- APIKey 遵循最小权限原则
- 主系统通过 SSO 跳转,各自维护操作审计
</div>
</div>
---
# 子系统 — CloudDM(数据库管理与 SQL 审核)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
SQL 审核与变更平台,统一管控数据库上线流程。
### 核心能力
- **SQL 审核** — 上线前自动检查 SQL 语句合规性与风险
- **多库支持** — 原生支持 MySQL,后续扩展 PostgreSQL 等
- **变更执行** — 审核通过后通过 Sidecar SQL 代理执行变更
- **操作审计** — 所有 SQL 操作全程记录,可追溯
</div>
<div>
### 关键对接
```mermaid
graph LR
User["DBA / 开发"] --> CloudDM["CloudDM"]
CloudDM -->|Sidecar 代理| MySQL[("MySQL")]
Deploy["服务部署完成"] -.->|自动注册| CloudDM
Main["XINFRA 主系统"] -.->|SSO| CloudDM
```
### 说明
- 基础服务交付流程中,MySQL 部署完成后自动注册至 CloudDM
- 白名单机制防止规则误判拦截合法 SQL
</div>
</div>
---
# 子系统 — CacheCloud(Redis 缓存管理)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
Redis 实例生命周期管理平台,覆盖创建、监控、运维全流程。
### 核心能力
- **实例管理** — Redis 实例的创建、扩缩容、下线
- **Agent 模式** — 通过 Agent 远程管理各机房 Redis 实例
- **诊断工具** — 大 Key / 热 Key 检测,慢查询分析
- **监控集成** — 实例指标上报至 VictoriaMetrics
</div>
<div>
### 关键对接
```mermaid
graph LR
User["运维人员"] --> CacheCloud["CacheCloud"]
CacheCloud -->|Agent| Redis[("Redis")]
Deploy["服务部署完成"] -.->|自动注册| CacheCloud
Main["XINFRA 主系统"] -.->|SSO| CacheCloud
```
### 说明
- 基础服务交付流程中,Redis 部署完成后自动注册至 CacheCloud
- 配合应用侧治理解决大 Key / 热 Key 性能问题
</div>
</div>
---
# 子系统 — Apollo(配置中心)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
携程开源的分布式配置中心,统一管理各业务线应用配置。
### 核心能力
- **多机房部署** — 支持 Cluster 模式,7 机房独立部署
- **配置灰度** — 配置变更可灰度发布,降低变更风险
- **版本回滚** — 配置历史版本管理,异常时一键回滚
- **操作审计** — 配置变更全程记录,可追溯
</div>
<div>
### 关键对接
```mermaid
graph LR
App["业务应用"] -->|ConfigService| Apollo["Apollo"]
Apollo -->|配置下发| RKE2["RKE2 集群"]
Main["XINFRA 主系统"] -.->|SSO| Apollo
```
### 说明
- 本地缓存降级保障多机房配置一致性
- 灰度发布验证避免配置下发错误
</div>
</div>
---
# 子系统 — Grafana(监控可视化)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
统一监控可视化平台,对接 VictoriaMetrics 等数据源。
### 核心能力
- **仪表盘** — 集群、节点、应用多维度监控面板
- **PromQL 查询** — 直接查询 VictoriaMetrics 中的指标数据
- **告警可视化** — 告警规则与历史趋势展示
- **多数据源** — 支持 VictoriaMetrics、Zabbix 等多种数据源
</div>
<div>
### 关键对接
```mermaid
graph LR
VM["VictoriaMetrics"] -->|PromQL| Grafana["Grafana"]
Zabbix["Zabbix"] -->|数据源| Grafana
Main["XINFRA 主系统"] -.->|SSO| Grafana
```
### 说明
- 直接复用现有 Grafana 仪表盘,无需主系统重建监控视图
- 主系统资源状态看板侧重告警聚合,Grafana 侧重指标可视化
</div>
</div>
---
# 子系统 — qpass(密码管理平台)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
企业级密码管理平台,统一管理各业务线和基础设施的账号密码。
### 核心能力
- **密码托管** — 集中存储和管理各类账号密码、密钥、证书
- **权限控制** — 基于 RBAC 的密码访问权限,按业务线隔离
- **审计追溯** — 密码访问、修改、共享全程记录
- **自动轮换** — 支持定期密码轮换策略,降低泄露风险
</div>
<div>
### 关键对接
```mermaid
graph LR
QPass["qpass"] -->|密码分发| RKE2["RKE2 集群"]
QPass -->|密码注入| DB["MySQL / Redis"]
Main["XINFRA 主系统"] -.->|SSO| QPass
```
### 说明
- 基础设施部署完成后,密码由 qpass 统一管理并注入
- 配合 Ansible 实现自动化密码分发与轮换
</div>
</div>
---
# 平台分层架构 — 基础设施层
@@ -713,6 +490,228 @@ sequenceDiagram
</div>
---
section: 对接子系统
layout: center
---
# 三、对接子系统
<div class="text-gray-400 mt-2">Wayne · CloudDM · CacheCloud · Apollo · Grafana · qpass</div>
---
# 子系统 — Wayne(多集群容器管理)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
多集群 Kubernetes 容器管理平台,统一管理 7 机房 RKE2 集群。
### 核心能力
- **多集群纳管** — 通过 Client-Go 对接各机房 RKE2 集群 API
- **应用部署** — 支持 Deployment、StatefulSet 等 K8s 工作负载管理
- **CI/CD 集成** — 对外提供 APIKey,GitLab CI 自动触发部署
- **一键回滚** — 应用发布异常时快速回滚至历史版本
</div>
<div>
### 关键对接
```mermaid
graph LR
CI["GitLab CI"] -->|APIKey 认证| Wayne["Wayne"]
Wayne -->|Client-Go| RKE2["RKE2 集群"]
Main["XINFRA 主系统"] -.->|SSO| Wayne
```
### 说明
- 独立 WebUI + API 服务
- APIKey 遵循最小权限原则
- 主系统通过 SSO 跳转,各自维护操作审计
</div>
</div>
---
# 子系统 — CloudDM(数据库管理与 SQL 审核)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
SQL 审核与变更平台,统一管控数据库上线流程。
### 核心能力
- **SQL 审核** — 上线前自动检查 SQL 语句合规性与风险
- **多库支持** — 原生支持 MySQL,后续扩展 PostgreSQL 等
- **变更执行** — 审核通过后通过 Sidecar SQL 代理执行变更
- **操作审计** — 所有 SQL 操作全程记录,可追溯
</div>
<div>
### 关键对接
```mermaid
graph LR
User["DBA / 开发"] --> CloudDM["CloudDM"]
CloudDM -->|Sidecar 代理| MySQL[("MySQL")]
Deploy["服务部署完成"] -.->|自动注册| CloudDM
Main["XINFRA 主系统"] -.->|SSO| CloudDM
```
### 说明
- 基础服务交付流程中,MySQL 部署完成后自动注册至 CloudDM
- 白名单机制防止规则误判拦截合法 SQL
</div>
</div>
---
# 子系统 — CacheCloud(Redis 缓存管理)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
Redis 实例生命周期管理平台,覆盖创建、监控、运维全流程。
### 核心能力
- **实例管理** — Redis 实例的创建、扩缩容、下线
- **Agent 模式** — 通过 Agent 远程管理各机房 Redis 实例
- **诊断工具** — 大 Key / 热 Key 检测,慢查询分析
- **监控集成** — 实例指标上报至 VictoriaMetrics
</div>
<div>
### 关键对接
```mermaid
graph LR
User["运维人员"] --> CacheCloud["CacheCloud"]
CacheCloud -->|Agent| Redis[("Redis")]
Deploy["服务部署完成"] -.->|自动注册| CacheCloud
Main["XINFRA 主系统"] -.->|SSO| CacheCloud
```
### 说明
- 基础服务交付流程中,Redis 部署完成后自动注册至 CacheCloud
- 配合应用侧治理解决大 Key / 热 Key 性能问题
</div>
</div>
---
# 子系统 — Apollo(配置中心)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
携程开源的分布式配置中心,统一管理各业务线应用配置。
### 核心能力
- **多机房部署** — 支持 Cluster 模式,7 机房独立部署
- **配置灰度** — 配置变更可灰度发布,降低变更风险
- **版本回滚** — 配置历史版本管理,异常时一键回滚
- **操作审计** — 配置变更全程记录,可追溯
</div>
<div>
### 关键对接
```mermaid
graph LR
App["业务应用"] -->|ConfigService| Apollo["Apollo"]
Apollo -->|配置下发| RKE2["RKE2 集群"]
Main["XINFRA 主系统"] -.->|SSO| Apollo
```
### 说明
- 本地缓存降级保障多机房配置一致性
- 灰度发布验证避免配置下发错误
</div>
</div>
---
# 子系统 — Grafana(监控可视化)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
统一监控可视化平台,对接 VictoriaMetrics 等数据源。
### 核心能力
- **仪表盘** — 集群、节点、应用多维度监控面板
- **PromQL 查询** — 直接查询 VictoriaMetrics 中的指标数据
- **告警可视化** — 告警规则与历史趋势展示
- **多数据源** — 支持 VictoriaMetrics、Zabbix 等多种数据源
</div>
<div>
### 关键对接
```mermaid
graph LR
VM["VictoriaMetrics"] -->|PromQL| Grafana["Grafana"]
Zabbix["Zabbix"] -->|数据源| Grafana
Main["XINFRA 主系统"] -.->|SSO| Grafana
```
### 说明
- 直接复用现有 Grafana 仪表盘,无需主系统重建监控视图
- 主系统资源状态看板侧重告警聚合,Grafana 侧重指标可视化
</div>
</div>
---
# 子系统 — qpass(密码管理平台)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
企业级密码管理平台,统一管理各业务线和基础设施的账号密码。
### 核心能力
- **密码托管** — 集中存储和管理各类账号密码、密钥、证书
- **权限控制** — 基于 RBAC 的密码访问权限,按业务线隔离
- **审计追溯** — 密码访问、修改、共享全程记录
- **自动轮换** — 支持定期密码轮换策略,降低泄露风险
</div>
<div>
### 关键对接
```mermaid
graph LR
QPass["qpass"] -->|密码分发| RKE2["RKE2 集群"]
QPass -->|密码注入| DB["MySQL / Redis"]
Main["XINFRA 主系统"] -.->|SSO| QPass
```
### 说明
- 基础设施部署完成后,密码由 qpass 统一管理并注入
- 配合 Ansible 实现自动化密码分发与轮换
</div>
</div>
---
section: 架构描述
layout: center
@@ -720,7 +719,7 @@ layout: center
# 四、架构描述
<div class="text-gray-400 mt-2">技术选型 · 数据库设计 · 安全机制 · 运维模型</div>
<div class="text-gray-400 mt-2">技术选型 · 安全机制 · 运维模型</div>
---
layout: default
@@ -767,107 +766,6 @@ layout: default
---
# API 设计规范
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
<div>
| 规范项 | 约定 |
|--------|------|
| 路由命名 | RESTful 风格,资源名复数 |
| 版本管理 | URL 路径版本 `/api/v1/...` |
| 分页 | `?page=1&pageSize=20`,响应含 `total` |
| 排序 | `?sort=created_at&order=desc` |
| 筛选 | `?status=running&businessLine=kodo` |
</div>
<div>
| 规范项 | 约定 |
|--------|------|
| 错误码 | HTTP 状态码 + 业务错误码 |
| 认证 | Bearer Token(JWT),OAuth 2.0 获取 |
| 响应格式 | `{ "code": 0, "data": {...} }` |
| 接口文档 | Swagger/OpenAPI 3.0 |
</div>
</div>
### 路由示例
```
GET /api/v1/clusters # 集群列表
GET /api/v1/clusters/:id/nodes # 集群节点
POST /api/v1/tasks # 创建任务
GET /api/v1/audit-logs?page=1&pageSize=20
```
---
# 数据库 ER 设计(核心表)
<div class="mt-2">
```mermaid
erDiagram
USERS ||--o{ AUDIT_LOGS : "产生"
USERS ||--o{ TASKS : "执行"
USERS ||--o{ API_KEYS : "拥有"
USERS {
bigint id PK
varchar username UK "LDAP 用户名"
varchar role "管理员/操作员/访客"
varchar business_line "所属业务线"
}
AUDIT_LOGS {
bigint id PK
bigint user_id FK
varchar action "login/terminal/playbook"
varchar ip "来源 IP"
}
TASKS {
bigint id PK
varchar task_type "ansible/wayne-deploy"
varchar status "pending/running/success/failed"
bigint user_id FK
}
API_KEYS {
bigint id PK
varchar key_hash UK "密钥哈希"
varchar scope "授权范围"
datetime expires_at
}
CLUSTERS {
bigint id PK
varchar name UK "集群名称"
varchar datacenter "所在机房"
varchar status "健康状态"
}
NODES {
bigint id PK
bigint cluster_id FK
varchar hostname "主机名"
varchar business_line "业务线标签"
}
RESOURCES {
bigint id PK
varchar hostname UK "主机名"
varchar source "cmdb/alicloud/aws/las"
varchar lifecycle "production/idle/retired"
}
```
</div>
---
# 安全机制
<div class="grid grid-cols-2 gap-6 mt-4">