Compare commits

...

5 Commits

Author SHA1 Message Date
wonder aa6bbb0f62 docs: add qpass subsystem slide and refine Superset section in xinfra deck
Deploy Slides / build-and-deploy (push) Successful in 3m52s
2026-07-17 20:44:44 +08:00
wonder 83b990afa9 docs: remove qpass and CI/CD subsystem slides from xinfra deck 2026-07-17 20:38:11 +08:00
wonder ebdddfcb03 docs: refine architecture diagrams and add CI/CD slides
- Scale overall architecture diagram to 100% and switch to horizontal layout
- Convert portal overview from flowchart to mindmap for clarity
- Remove subsystem integration and deployment architecture slides
- Rewrite Wayne positioning to emphasize multi-tenant K8s resource management
- Add CI/CD integration and GitLab CI workflow slides
- Refine qpass title to 七牛云统一运维平台
2026-07-17 20:36:49 +08:00
wonder 137932996b style: scale overall architecture diagram to 80% 2026-07-17 20:29:30 +08:00
wonder ed1df2a8ba docs: replace architecture diagrams with Mermaid from architecture doc 2026-07-17 20:29:03 +08:00
+81 -307
View File
@@ -72,10 +72,12 @@ layout: default
### 五、架构图
- 平台分层
- 总体分层
- 主系统功能
- 子系统集成
- 自动化执行
- 部署架构
- 监控告警
- 安全认证
- 监控数据流
</div>
<div>
@@ -546,315 +548,111 @@ layout: center
# 四、架构设计
<div class="text-gray-400 mt-2">平台分层 · 部署 · 监控 · 安全</div>
---
# 平台分层架构 — 总体分层
<div class="mt-2">
<div class="mt-4" style="transform: scale(1.0); transform-origin: top left;">
```mermaid
graph LR
User["用户层<br/>LDAP SSO 统一认证"] --> Main["主系统层<br/>统一门户 + 功能模块"]
Main --> Sub["子系统层<br/>独立部署,各自授权"]
Main --> Infra["基础设施层<br/>计算 · 网络 · 存储 · 自动化"]
User["用户层<br/>LDAP SSO 统一认证"] --> Main["XINFRA 主系统层<br/>统一入口 + 资源纳管 + 交付 + 审计"]
Main --> Sub["专业子系统层<br/>Wayne / Apollo / CloudDM / 夜莺"]
Main --> Auto["自动化执行层<br/>Ansible 控制中心"]
Main --> Infra["基础设施层<br/>计算 · 网络 · 存储 · 监控源"]
Sub --> Infra
Auto --> 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
style Auto fill:#ecfdf5,stroke:#059669
style Infra fill:#fff7ed,stroke:#f97316
```
</div>
<div class="mt-4 text-sm text-gray-400">
> 四层模型:用户层 → 主系统层 → 子系统层 → 基础设施层,主系统是统一入口,子系统各司其职。
</div>
---
# 平台分层架构 — 主系统功能
# 平台分层架构 — 主系统功能架构
<div class="mt-2">
<div class="mt-4">
```mermaid
mindmap
root((统一入口))
SSO 登录
菜单聚合
资源纳管
K8s 集群管理
基础服务交付
数据库审核
任务中心
审计中心
监控概览
权限中心
配置接入
业务交付
```
</div>
---
# 自动化执行架构
<div class="mt-4">
```mermaid
graph TB
Portal["统一门户<br/>LDAP SSO 跳转入口"]
Main["XINFRA 主系统"]
AC["Ansible 控制中心<br/>独立部署"]
subgraph 全局视图
DashBoard["资源大盘<br/>集群拓扑 · 节点方格图"]
MonitorView["资源状态看板<br/>物理机/虚机/服务三层告警"]
subgraph 各区域
RegionA["区域 A"]
RegionB["区域 B"]
RegionC["区域 C"]
end
subgraph 运维能力
TaskCenter["任务中心<br/>Ansible/Wayne 实时日志"]
OpsTerminal["运维终端<br/>Ansible / SSH<br/>仅管理员"]
end
subgraph 治理能力
AuditDash["审计面板<br/>登录记录 · 运维操作日志"]
CMDB["资源台账<br/>CMDB 多云同步"]
SvcDir["服务目录<br/>Consul 只读聚合"]
end
Portal --> DashBoard & MonitorView & TaskCenter & AuditDash & CMDB & SvcDir
Main -->|任务提交 / 结果查询| AC
AC -->|SSH / Playbook| RegionA
AC -->|SSH / Playbook| RegionB
AC -->|SSH / Playbook| RegionC
```
</div>
<div class="mt-2 text-sm text-gray-400">
> 主系统不替代子系统,只自建子系统无法覆盖的能力:全局视图、运维兜底、审计、资源台账。
</div>
---
# 平台分层架构 — 子系统集成
<div class="mt-2" style="transform: scale(0.5); transform-origin: top left; height: 50vh;">
# 监控与数据流
<div class="mt-4">
```mermaid
graph LR
Portal["XINFRA 主系统"]
subgraph 子系统
Wayne["Wayne<br/>容器发布与配额管理"]
CloudDM["CloudDM<br/>SQL 审核"]
CacheCloud["CacheCloud<br/>Redis 全生命周期"]
Apollo["Apollo<br/>配置中心"]
QPass["qpass<br/>七牛运维平台"]
Grafana["Grafana<br/>指标可视化"]
Superset["Superset<br/>日志可视化"]
subgraph 资源层
K8s["K8s 集群"]
Node["物理机 / 虚机"]
end
Portal -.->|SSO 跳转| Wayne & CloudDM & CacheCloud & Apollo & QPass & Grafana & Superset
subgraph 监控源
Nightingale["夜莺"]
end
Wayne -->|Client-Go| RKE2["RKE2 集群"]
CloudDM -->|SQL 审核| MySQL[("MySQL")]
CacheCloud -->|Agent| Redis[("Redis")]
Apollo -->|ConfigService| RKE2
Grafana -->|PromQL| VM["VictoriaMetrics"]
Superset -->|SQL| CH["ClickHouse"]
subgraph 展示层
Main["XINFRA 监控概览"]
end
K8s -.->|指标| Nightingale
Node -.->|指标| Nightingale
Nightingale --> Main
```
</div>
---
# 平台分层架构 — 基础设施层
<div class="mt-2" style="transform: scale(0.5); transform-origin: top left; height: 50vh;">
```mermaid
graph TB
subgraph 计算
RKE2["RKE2 集群 × 7 机房<br/>CIS 安全加固"]
end
subgraph 网络
Calico["Calico BGP<br/>每集群独立 AS 号<br/>跨机房扁平互通"]
end
subgraph 存储
Ceph["Ceph RBD<br/>MySQL/Redis 有状态服务 PV"]
end
subgraph 自动化
Ansible["Ansible Playbook<br/>节点初始化 · 服务部署<br/>WebSocket 实时日志"]
end
RKE2 --> Calico
RKE2 --> Ceph
Ansible -->|SSH| RKE2
```
</div>
---
# 部署架构
<div class="mt-2" style="transform: scale(0.45); transform-origin: top left; height: 50vh;">
```mermaid
graph TB
subgraph "RKE2 集群(任一机房)"
subgraph "xinfra 命名空间"
FE["Nginx<br/>前端静态文件 + 反向代理"]
BE["Go API Server<br/>Deployment × 2"]
WS["WebSocket Gateway<br/>任务日志实时推送"]
end
subgraph "监控命名空间"
VM[("VictoriaMetrics")]
Grafana["Grafana"]
NE["Nightingale"]
end
subgraph "子系统命名空间"
Wayne["Wayne"]
CloudDM["CloudDM"]
CacheCloud["CacheCloud"]
Apollo["Apollo"]
Superset["Superset"]
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
```
</div>
<!--
Nginx 托管前端静态文件并反向代理后端 API,Go API Server 无状态水平扩展,WebSocket Gateway 独立处理实时日志推送
-->
---
# 监控告警数据流
<div class="mt-2" style="transform: scale(0.8); transform-origin: top left; height: 50vh;">
```mermaid
graph LR
subgraph 采集源
RKE2["RKE2 集群"]
Zabbix["Zabbix<br/>硬件监控"]
end
subgraph 指标存储
VM[("VictoriaMetrics<br/>容器/业务指标")]
end
subgraph 可视化
Grafana["Grafana 仪表盘"]
end
subgraph 告警链路
Nightingale["夜莺<br/>去重 · 收敛 · 分级"]
end
RKE2 -.->|Metrics| VM
VM --> Grafana
VM --> Nightingale
Zabbix -.->|Webhook| Nightingale
Zabbix -->|Zabbix API| Main["XINFRA 主系统<br/>资源状态看板"]
```
</div>
<div class="mt-58 text-sm text-gray-400">
> Zabbix 硬件监控分两条链路:告警事件通过 Webhook 推送至夜莺统一聚合;可观测数据(IPMI/温度/电源/风扇等)由主系统直接调用 Zabbix API 采集展示。
</div>
---
# 基础服务交付流程
<div class="mt-2">
```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: 部署完成,跳转任务中心
```
</div>
---
# 多租户隔离模型
<div class="mt-2" style="transform: scale(1); transform-origin: top left; height: 50vh;">
```mermaid
graph LR
LDAP["企业 LDAP"] -->|部门 DN| BL["业务线租户<br/>Kodo / LAS / 灵矽 / ..."]
BL --> NS["Kubernetes Namespace<br/>+ ResourceQuota + LimitRange"]
BL --> NP["物理节点池<br/>node-label + taint"]
NS -.->|Pod 只能调度到<br/>本业务线节点| 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
```
</div>
<div class="mt-30 text-sm text-gray-400">
> **双重隔离**:节点层通过 `business-line=xxx` 标签 + Taint 确保 Pod 调度隔离;命名空间层通过 ResourceQuota / LimitRange 限制资源用量上限。
</div>
---
# 安全认证流程
<div class="mt-2" style="transform: scale(0.65); transform-origin: top left; height: 50vh;">
```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: 跳转至子系统(免登录)
```
</div>
<div class="mt-60 text-sm text-gray-400">
> 外部 LDAP 通过 SAML 集成统一认证;子系统 SSO 通过 OAuth 2.0 对接,实现单点登录免跳转。
</div>
---
section: 对接子系统
layout: center
@@ -872,7 +670,7 @@ layout: center
<div>
### 定位
多集群 Kubernetes 容器管理平台,负责**业务容器发布**和**命名空间与配额管理**,复用 Wayne 原生多租户能力。
**多租户 K8s 资源管理平台**,提供命名空间与资源配额管理。RKE2 集群和 GitLab CI 通过 Wayne 进行 K8s 资源管控与业务容器发布。
### 核心能力
- **业务容器发布** — Deployment、StatefulSet 等工作负载的部署与回滚
@@ -1015,6 +813,18 @@ graph LR
---
# 子系统 — qpass(七牛统一运维平台)
<div class="mt-8 text-lg leading-relaxed">
七牛云内部**统一运维平台**,提供基础设施运维操作的标准化入口。
XINFRA 通过 SSO 对接 qpass,运维人员从统一入口跳转即可使用,无需单独登录。
</div>
---
# 子系统 — Grafana(指标可视化平台)
<div class="grid grid-cols-2 gap-6 mt-4">
@@ -1076,44 +886,8 @@ graph LR
Main["XINFRA 主系统"] -.->|SSO| Superset
```
### 说明
- 与 Grafana 互补:Grafana 侧重实时指标监控,Superset 侧重日志数据的探索分析
- 支持 SQL 自定义查询,适合复杂日志场景的灵活分析
</div>
</div>
---
# 子系统 — qpass(七牛统一运维平台)
<div class="grid grid-cols-2 gap-6 mt-4">
<div>
### 定位
七牛云内部的**统一运维平台**,提供基础设施运维、密码管理等基础能力。
### 核心能力
- **密码管理** — 集中存储和管理各类账号密码、密钥、证书
- **权限控制** — 基于 RBAC 的访问权限,按业务线隔离
- **审计追溯** — 密码访问、修改、共享全程记录
- **自动轮换** — 支持定期密码轮换策略,降低泄露风险
</div>
<div>
### 关键对接
```mermaid
graph LR
QPass["qpass<br/>七牛运维平台"] -->|密码分发| RKE2["RKE2 集群"]
QPass -->|密码注入| DB["MySQL / Redis"]
Main["XINFRA 主系统"] -.->|SSO| QPass
```
### 说明
- 七牛内部系统,XINFRA 通过 SSO 跳转对接
- 基础设施部署完成后,密码由 qpass 统一管理并注入
</div>
</div>
---