diff --git a/decks/xinfra/slides.md b/decks/xinfra/slides.md
new file mode 100644
index 0000000..2a5ec84
--- /dev/null
+++ b/decks/xinfra/slides.md
@@ -0,0 +1,761 @@
+---
+theme: frankfurt
+title: XINFRA 平台架构
+author: SRE Team
+infoLine: true
+transition: slide-left
+mdc: true
+drawings:
+ persist: false
+---
+
+# XINFRA 平台架构
+
+
+统一基础设施管理平台 · 总体架构设计
+
+
+
+SRE Team
+
+
+
+
+---
+layout: default
+---
+
+# 目录
+
+
+
+
+### 一、名词概述
+
+- 组内约定
+- 通用术语
+
+
+
+
+### 二、架构图
+
+- 平台分层架构
+- 部署架构
+- 监控告警链路
+- 安全认证流程
+
+
+
+
+### 三、架构描述
+
+- 技术选型
+- 数据库设计
+- 安全机制
+- 运维模型与风险
+
+
+
+
+---
+section: 名词概述
+layout: center
+---
+
+# 一、名词概述
+
+平台核心概念与通用术语
+
+---
+layout: default
+---
+
+# 组内约定
+
+
+
+
+### 主系统
+XINFRA 平台自身的统管层,负责子系统无法覆盖的能力:
+- 统一门户(SSO 跳转入口)
+- 资源大盘、运维终端
+- 登录审计与运维操作审计
+- 资源指标面板
+
+
+
+
+### 子系统
+XINFRA 纳管的专项平台(独立 WebUI + API):
+- **Wayne** — 多集群容器管理
+- **CloudDM** — 数据库管理与 SQL 审核
+- **CacheCloud** — Redis 缓存管理
+- **Apollo** — 配置中心
+- **Grafana** — 监控可视化
+- **qpass** — 统一告警与值班通知
+
+
+
+
+
+
+
+### 工具层
+纳管的 CLI / IaC 工具,无常驻 WebUI:
+- **Ansible Playbook** — 自动化部署与基础设施即代码
+
+
+
+
+### 监控告警层
+聚合异构告警源,统一去重、收敛、分级:
+- **Nightingale(夜莺)** — 告警聚合引擎
+- **VictoriaMetrics** — 容器/业务指标存储
+- **Zabbix** — 物理机硬件监控
+
+
+
+
+
+
+---
+
+# 通用术语(一)
+
+
+
+
+| 术语 | 说明 |
+|------|------|
+| **APIKey** | Wayne 对外 API 认证密钥,CI/CD 自动化场景使用,最小权限 |
+| **RBAC** | 基于角色的访问控制,用户与角色关联实现权限隔离 |
+| **RKE2** | Rancher K8s 发行版,CIS 安全加固,支持离线安装 |
+| **Calico BGP** | 纯路由模式无隧道开销,每集群独立 AS 号,跨机房扁平网络 |
+| **Ceph RBD** | 分布式块存储,供给 K8s PV 给有状态服务 |
+| **Nightingale** | 夜莺,统一告警聚合引擎,去重收敛分级后推送 |
+| **Apollo** | 携程开源配置中心,多机房部署、灰度、回滚、审计 |
+
+
+
+
+| 术语 | 说明 |
+|------|------|
+| **Consul** | 各机房服务注册发现,XINFRA 只读聚合展示 |
+| **CD** | 持续部署,自动化服务上线流水线 |
+| **WAF** | Web 应用防火墙,防护 SQL 注入、XSS、CSRF |
+| **SLA** | 服务等级协议,定义可用性承诺指标 |
+| **IaC** | 基础设施即代码,通过 Ansible 实现自动化管理 |
+| **SINA CMDB** | 公司内部 CMDB,物理机与虚机资产数据基础来源 |
+| **SSO** | 单点登录,主系统通过 LDAP 统一认证后跳转子系统 |
+
+
+
+
+---
+section: 架构图
+layout: center
+---
+
+# 二、架构图
+
+平台分层 · 部署 · 监控 · 安全
+
+---
+
+# 平台分层架构 — 总体分层
+
+
+
+```mermaid
+graph TB
+ User["用户层
LDAP SSO 统一认证"] --> Main["主系统层
统一门户 + 功能模块"]
+ Main --> Sub["子系统层
独立部署,各自授权"]
+ Main --> Infra["基础设施层
计算 · 网络 · 存储 · 自动化"]
+ Sub --> Infra
+
+ style User fill:#f3e8fd,stroke:#9333ea
+ style Main fill:#e0f2fe,stroke:#0284c7
+ style Sub fill:#e8f0fe,stroke:#4285f4
+ style Infra fill:#ecfdf5,stroke:#059669
+```
+
+
+
+
+
+> 四层模型:用户层 → 主系统层 → 子系统层 → 基础设施层,主系统是统一入口,子系统各司其职。
+
+
+
+---
+
+# 平台分层架构 — 主系统功能
+
+
+
+```mermaid
+graph TB
+ Portal["统一门户
LDAP SSO 跳转入口"]
+
+ subgraph 全局视图
+ DashBoard["资源大盘
集群拓扑 · 节点方格图"]
+ MonitorView["资源状态看板
物理机/虚机/服务三层告警"]
+ end
+
+ subgraph 运维能力
+ TaskCenter["任务中心
Ansible/Wayne 实时日志"]
+ OpsTerminal["运维终端
Ansible / SSH
仅管理员"]
+ end
+
+ subgraph 治理能力
+ AuditDash["审计面板
登录记录 · 运维操作日志"]
+ CMDB["资源台账
CMDB 多云同步"]
+ SvcDir["服务目录
Consul 只读聚合"]
+ end
+
+ Portal --> DashBoard & MonitorView & TaskCenter & AuditDash & CMDB & SvcDir
+```
+
+
+
+
+
+> 主系统不替代子系统,只自建子系统无法覆盖的能力:全局视图、运维兜底、审计、资源台账。
+
+
+
+---
+
+# 平台分层架构 — 子系统集成
+
+
+
+```mermaid
+graph LR
+ Portal["XINFRA 主系统"]
+
+ subgraph 子系统
+ Wayne["Wayne
多集群容器管理"]
+ CloudDM["CloudDM
SQL 审核"]
+ CacheCloud["CacheCloud
Redis 管理"]
+ Apollo["Apollo
配置中心"]
+ Grafana["Grafana
监控可视化"]
+ QPass["qpass
告警通知"]
+ end
+
+ Portal -.->|SSO 跳转| Wayne & CloudDM & CacheCloud & Apollo & Grafana & QPass
+
+ Wayne -->|Client-Go| RKE2["RKE2 集群"]
+ CloudDM -->|SQL 审核| MySQL[("MySQL")]
+ CacheCloud -->|Agent| Redis[("Redis")]
+ Apollo -->|ConfigService| RKE2
+```
+
+
+
+
+
+> 子系统各自独立部署和授权,主系统只做 SSO 跳转入口,各子系统自行维护操作审计。
+
+
+
+---
+
+# 平台分层架构 — 基础设施层
+
+
+
+```mermaid
+graph TB
+ subgraph 计算
+ RKE2["RKE2 集群 × 7 机房
CIS 安全加固"]
+ end
+
+ subgraph 网络
+ Calico["Calico BGP
每集群独立 AS 号
跨机房扁平互通"]
+ end
+
+ subgraph 存储
+ Ceph["Ceph RBD
MySQL/Redis 有状态服务 PV"]
+ end
+
+ subgraph 自动化
+ Ansible["Ansible Playbook
节点初始化 · 服务部署
WebSocket 实时日志"]
+ end
+
+ RKE2 --> Calico
+ RKE2 --> Ceph
+ Ansible -->|SSH| RKE2
+```
+
+
+
+
+
+> RKE2 是计算底座,Calico BGP 构建跨机房扁平网络,Ceph RBD 提供持久化存储,Ansible 贯穿自动化运维。
+
+
+
+---
+
+# 部署架构
+
+
+
+```mermaid
+graph TB
+ subgraph "RKE2 集群(任一机房)"
+ subgraph "xinfra 命名空间"
+ FE["Nginx
前端静态文件 + 反向代理"]
+ BE["Go API Server
Deployment × 2"]
+ WS["WebSocket Gateway
任务日志实时推送"]
+ end
+
+ subgraph "监控命名空间"
+ VM[("VictoriaMetrics")]
+ Grafana["Grafana"]
+ NE["Nightingale"]
+ end
+
+ subgraph "子系统命名空间"
+ Wayne["Wayne"]
+ CloudDM["CloudDM"]
+ CacheCloud["CacheCloud"]
+ Apollo["Apollo"]
+ end
+ end
+
+ LB["SLB / NodePort"] --> FE
+ FE -->|/api/*| BE
+ FE -->|WebSocket| WS
+ BE --> MySQL[("MySQL 8.0 主从")]
+ BE --> Redis[("Redis 会话缓存")]
+ BE -->|SSH/Ansible| Nodes["业务节点池"]
+ WS --> BE
+
+ style FE fill:#e0f2fe,stroke:#0284c7
+ style BE fill:#e0f2fe,stroke:#0284c7
+ style WS fill:#e0f2fe,stroke:#0284c7
+```
+
+
+
+
+
+---
+
+# 监控告警数据流
+
+
+
+```mermaid
+graph LR
+ subgraph 采集源
+ RKE2["RKE2 集群"]
+ Zabbix["Zabbix
硬件监控"]
+ end
+
+ subgraph 指标存储
+ VM[("VictoriaMetrics
容器/业务指标")]
+ end
+
+ subgraph 可视化
+ Grafana["Grafana 仪表盘"]
+ end
+
+ subgraph 告警链路
+ Nightingale["夜莺
去重 · 收敛 · 分级"]
+ QPass["qpass
企业 IM 推送"]
+ end
+
+ RKE2 -.->|Metrics| VM
+ VM --> Grafana
+ VM --> Nightingale
+ Zabbix -.->|Webhook| Nightingale
+ Nightingale --> QPass
+ Zabbix -->|Zabbix API| Main["XINFRA 主系统
资源状态看板"]
+```
+
+
+
+
+
+> Zabbix 硬件监控分两条链路:告警事件通过 Webhook 推送至夜莺统一聚合;可观测数据(IPMI/温度/电源/风扇等)由主系统直接调用 Zabbix API 采集展示。
+
+
+
+---
+
+# 基础服务交付流程
+
+
+
+```mermaid
+sequenceDiagram
+ actor User as 业务人员
+ participant Portal as XINFRA 服务目录
+ participant Ansible as Ansible Playbook
+ participant Infra as RKE2 / 主机
+ participant Sub as 子系统注册
+
+ User->>Portal: 选择服务卡片,填写业务线、规格
+ Portal->>Portal: 实时预览 playbook 参数(YAML)
+ User->>Portal: 确认部署
+ Portal->>Ansible: 提交 playbook 任务
+ Ansible->>Infra: 内核初始化 · containerd · 加入集群
+ Ansible-->>Portal: 任务状态 → WebSocket 实时日志
+ Portal->>Sub: 自动注册(CloudDM / CacheCloud)
+ Portal-->>User: 部署完成,跳转任务中心
+```
+
+
+
+
+
+> 用户通过服务卡片填参 → Ansible 自动化部署 → 完成后自动注册到对应子系统,全程日志实时查看。
+
+
+
+---
+
+# 多租户隔离模型(Phase 2+)
+
+
+
+```mermaid
+graph TB
+ LDAP["企业 LDAP"] -->|部门 DN| BL["业务线租户
Kodo / LAS / 灵矽 / ..."]
+
+ BL --> NS["Kubernetes Namespace
+ ResourceQuota + LimitRange"]
+ BL --> NP["物理节点池
node-label + taint"]
+
+ NS -.->|Pod 只能调度到
本业务线节点| NP
+
+ style LDAP fill:#f3e8fd,stroke:#9333ea
+ style BL fill:#e0f2fe,stroke:#0284c7
+ style NS fill:#ecfdf5,stroke:#059669
+ style NP fill:#fef3c7,stroke:#d97706
+```
+
+
+
+
+
+> **双重隔离**:节点层通过 `business-line=xxx` 标签 + Taint 确保 Pod 调度隔离;命名空间层通过 ResourceQuota / LimitRange 限制资源用量上限。
+> Phase 1 仅做基础设施准备(节点标签预留),多租户功能为 Phase 2+。
+
+
+
+---
+
+# 安全认证流程
+
+
+
+```mermaid
+sequenceDiagram
+ actor User as 用户
+ participant Main as XINFRA 主系统
+ participant LDAP as 企业 LDAP
+ participant Sub as 子系统
+
+ User->>Main: 访问主系统
+ Main->>LDAP: SAML 认证请求
+ LDAP-->>Main: SAML Response(用户身份 + LDAP 组信息)
+ Main->>Main: 签发 JWT Token(含角色 + 业务线)
+ Main-->>User: 登录成功,返回 Token
+
+ User->>Main: 点击子系统卡片
+ Main->>Sub: OAuth 2.0 Authorization Code
+ Sub->>Main: 验证 Token,创建子系统会话
+ Main-->>User: 跳转至子系统(免登录)
+```
+
+
+
+
+
+> 外部 LDAP 通过 SAML 集成统一认证;子系统 SSO 通过 OAuth 2.0 对接,实现单点登录免跳转。
+
+
+
+---
+section: 架构描述
+layout: center
+---
+
+# 三、架构描述
+
+技术选型 · 数据库设计 · 安全机制 · 运维模型
+
+---
+layout: default
+---
+
+# 技术选型
+
+
+
+
+| 层级 | 选型 |
+|------|------|
+| 前端框架 | Vue 3 + Element Plus |
+| 后端框架 | Go + Gin |
+| 前后端通信 | REST/JSON,URL 路径版本 |
+| 主系统数据库 | MySQL 8.0 |
+| 缓存 | Redis |
+| 前端部署 | Nginx |
+| 主系统部署 | K8s Deployment |
+
+
+
+
+| 层级 | 选型 |
+|------|------|
+| SSO 协议 | OAuth 2.0 + SAML |
+| 告警数据源 | Nightingale + Zabbix API |
+| Ansible 调度 | SSH 直接执行 |
+| 实时推送 | 原生 WebSocket |
+| 接口文档 | Swagger/OpenAPI |
+| 界面语言 | 纯中文 |
+| 测试策略 | 后端单元 + 集成测试 |
+
+
+
+
+### 选型依据
+
+| 选型 | 理由 | 备选淘汰原因 |
+|------|------|------------|
+| Vue 3 + Element Plus | 七牛内部技术栈统一,团队有 Vue 2 迁移经验 | React + Ant Design — 学习成本更高 |
+| Go + Gin | Wayne/CloudDM 同生态,可复用 Client-Go、GORM | Java Spring Boot — 部署资源占用更大 |
+| MySQL 8.0 | 运维团队已有经验和工具链,CloudDM 原生支持 | PostgreSQL — 团队运维经验不足 |
+
+---
+
+# API 设计规范
+
+
+
+
+| 规范项 | 约定 |
+|--------|------|
+| 路由命名 | RESTful 风格,资源名复数 |
+| 版本管理 | URL 路径版本 `/api/v1/...` |
+| 分页 | `?page=1&pageSize=20`,响应含 `total` |
+| 排序 | `?sort=created_at&order=desc` |
+| 筛选 | `?status=running&businessLine=kodo` |
+
+
+
+
+| 规范项 | 约定 |
+|--------|------|
+| 错误码 | HTTP 状态码 + 业务错误码 |
+| 认证 | Bearer Token(JWT),OAuth 2.0 获取 |
+| 响应格式 | `{ "code": 0, "data": {...} }` |
+| 接口文档 | Swagger/OpenAPI 3.0 |
+
+
+
+
+### 路由示例
+
+```
+GET /api/v1/clusters # 集群列表
+GET /api/v1/clusters/:id/nodes # 集群节点
+POST /api/v1/tasks # 创建任务
+GET /api/v1/audit-logs?page=1&pageSize=20
+```
+
+---
+
+# 数据库 ER 设计(核心表)
+
+
+
+```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"
+ }
+```
+
+
+
+---
+
+# 安全机制
+
+
+
+
+### 认证与授权
+
+| 层面 | 机制 |
+|------|------|
+| 身份认证 | SAML + OAuth 2.0 |
+| 访问控制 | RBAC + 业务线维度 |
+| 传输安全 | HTTPS + TLS 1.2+ |
+| 数据加密 | AES-256,敏感字段加密存储 |
+| APIKey 管理 | SHA-256 哈希存储,scope 粒度授权 |
+
+
+
+
+### 审计与隔离
+
+| 层面 | 机制 |
+|------|------|
+| 审计留痕 | 登录/运维/API 全程记录,不可篡改 |
+| 网络隔离 | BGP + 防火墙,管理面与数据面分离 |
+| 凭证管理 | 禁止默认凭证,Vault / K8s Secret |
+| Ansible/SSH | 仅管理员可见,普通用户菜单不包含 |
+
+
+
+
+
+
+> **RBAC 二维模型**:权限维度(角色能力)× 业务线维度(资源范围),遵循最小权限原则。
+> 所有跨层操作全程审计留痕。
+
+
+
+---
+
+# 运维分层模型
+
+
+
+| 故障层级 | 处理方 | 工具链 | 权限要求 |
+|---------|--------|--------|---------|
+| 应用发布异常 | 子系统自愈 | Wayne 一键回滚 | 项目成员 |
+| 中间件故障 | 子系统自恢复 | CacheCloud / CloudDM 内置能力 | 子系统运维角色 |
+| 配置变更异常 | Apollo 回滚 | Apollo 版本回滚 + 灰度发布 | 配置管理员 |
+| 基础设施故障 | 主系统管理员 | Ansible Playbook / SSH 终端 | 仅主系统管理员 |
+| 机房级故障 | 主系统管理员 | Ansible + 大内网链路切换 | 仅主系统管理员 |
+
+
+
+
+
+> 故障按层级自愈,跨层操作需主系统管理员权限。Ansible / SSH 终端等基础设施级操作仅对管理员角色可见,所有跨层操作全程审计留痕。
+
+
+
+---
+
+# 风险与约束
+
+
+
+
+| 风险 | 缓解措施 |
+|------|---------|
+| RKE2 版本升级不兼容 | 测试环境验证,灰度发布 |
+| Wayne 开源维护不确定 | 内部 Fork,保持核心可维护 |
+| 七机房网络链路故障 | 网络冗余 + BGP 自动切换 |
+| SQL 审核规则误判 | 白名单机制 + 规则持续调优 |
+| Redis 大 Key / 热 Key | CacheCloud 诊断 + 应用侧治理 |
+
+
+
+
+| 风险 | 缓解措施 |
+|------|---------|
+| Apollo 多机房配置一致性 | 本地缓存降级 + 灰度发布 |
+| Consul 跨机房同步延迟 | 30 秒轮询 + 健康状态标注 |
+| 云平台 API 限流 | 增量同步 + 重试 + 状态告警 |
+| AWX 未引入,Ansible 直调 | 自建任务队列 + WebSocket 日志 |
+| Go/Gin 开发人力 | 复用 Wayne/CloudDM 生态降低学习成本 |
+
+
+
+
+---
+layout: center
+---
+
+# 总结
+
+
+
+
+### 🏗 四层架构
+用户层 → 主系统层
→ 子系统层 → 基础设施层
+
+
+
+
+### 🔐 统一安全
+LDAP SAML 认证
RBAC + 业务线隔离
全程审计留痕
+
+
+
+
+### 🚀 自动化运维
+Ansible IaC 交付
WebSocket 实时日志
故障分层自愈
+
+
+
+
+
+XINFRA — 统一基础设施管理平台
+
diff --git a/index.html b/index.html
index 83c6084..53be365 100644
--- a/index.html
+++ b/index.html
@@ -26,7 +26,7 @@