feat: add xinfra architecture slide deck
This commit is contained in:
@@ -0,0 +1,761 @@
|
||||
---
|
||||
theme: frankfurt
|
||||
title: XINFRA 平台架构
|
||||
author: SRE Team
|
||||
infoLine: true
|
||||
transition: slide-left
|
||||
mdc: true
|
||||
drawings:
|
||||
persist: false
|
||||
---
|
||||
|
||||
# XINFRA 平台架构
|
||||
|
||||
<div class="text-xl mt-4 text-gray-400">
|
||||
统一基础设施管理平台 · 总体架构设计
|
||||
</div>
|
||||
|
||||
<div class="mt-8 text-lg text-gray-500">
|
||||
SRE Team
|
||||
</div>
|
||||
|
||||
<!--
|
||||
封面:XINFRA 平台架构总览
|
||||
-->
|
||||
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
# 目录
|
||||
|
||||
<div class="grid grid-cols-3 gap-8 mt-8">
|
||||
<div>
|
||||
|
||||
### 一、名词概述
|
||||
|
||||
- 组内约定
|
||||
- 通用术语
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 二、架构图
|
||||
|
||||
- 平台分层架构
|
||||
- 部署架构
|
||||
- 监控告警链路
|
||||
- 安全认证流程
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 三、架构描述
|
||||
|
||||
- 技术选型
|
||||
- 数据库设计
|
||||
- 安全机制
|
||||
- 运维模型与风险
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 名词概述
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 一、名词概述
|
||||
|
||||
<div class="text-gray-400 mt-2">平台核心概念与通用术语</div>
|
||||
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
# 组内约定
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 主系统
|
||||
XINFRA 平台自身的统管层,负责子系统无法覆盖的能力:
|
||||
- 统一门户(SSO 跳转入口)
|
||||
- 资源大盘、运维终端
|
||||
- 登录审计与运维操作审计
|
||||
- 资源指标面板
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 子系统
|
||||
XINFRA 纳管的专项平台(独立 WebUI + API):
|
||||
- **Wayne** — 多集群容器管理
|
||||
- **CloudDM** — 数据库管理与 SQL 审核
|
||||
- **CacheCloud** — Redis 缓存管理
|
||||
- **Apollo** — 配置中心
|
||||
- **Grafana** — 监控可视化
|
||||
- **qpass** — 统一告警与值班通知
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-6">
|
||||
<div>
|
||||
|
||||
### 工具层
|
||||
纳管的 CLI / IaC 工具,无常驻 WebUI:
|
||||
- **Ansible Playbook** — 自动化部署与基础设施即代码
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 监控告警层
|
||||
聚合异构告警源,统一去重、收敛、分级:
|
||||
- **Nightingale(夜莺)** — 告警聚合引擎
|
||||
- **VictoriaMetrics** — 容器/业务指标存储
|
||||
- **Zabbix** — 物理机硬件监控
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
主系统不替代子系统,只自建子系统无法覆盖的能力
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 通用术语(一)
|
||||
|
||||
<div class="grid grid-cols-2 gap-x-8 gap-y-3 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
| 术语 | 说明 |
|
||||
|------|------|
|
||||
| **APIKey** | Wayne 对外 API 认证密钥,CI/CD 自动化场景使用,最小权限 |
|
||||
| **RBAC** | 基于角色的访问控制,用户与角色关联实现权限隔离 |
|
||||
| **RKE2** | Rancher K8s 发行版,CIS 安全加固,支持离线安装 |
|
||||
| **Calico BGP** | 纯路由模式无隧道开销,每集群独立 AS 号,跨机房扁平网络 |
|
||||
| **Ceph RBD** | 分布式块存储,供给 K8s PV 给有状态服务 |
|
||||
| **Nightingale** | 夜莺,统一告警聚合引擎,去重收敛分级后推送 |
|
||||
| **Apollo** | 携程开源配置中心,多机房部署、灰度、回滚、审计 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
| 术语 | 说明 |
|
||||
|------|------|
|
||||
| **Consul** | 各机房服务注册发现,XINFRA 只读聚合展示 |
|
||||
| **CD** | 持续部署,自动化服务上线流水线 |
|
||||
| **WAF** | Web 应用防火墙,防护 SQL 注入、XSS、CSRF |
|
||||
| **SLA** | 服务等级协议,定义可用性承诺指标 |
|
||||
| **IaC** | 基础设施即代码,通过 Ansible 实现自动化管理 |
|
||||
| **SINA CMDB** | 公司内部 CMDB,物理机与虚机资产数据基础来源 |
|
||||
| **SSO** | 单点登录,主系统通过 LDAP 统一认证后跳转子系统 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 架构图
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 二、架构图
|
||||
|
||||
<div class="text-gray-400 mt-2">平台分层 · 部署 · 监控 · 安全</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 总体分层
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
User["用户层<br/>LDAP SSO 统一认证"] --> Main["主系统层<br/>统一门户 + 功能模块"]
|
||||
Main --> Sub["子系统层<br/>独立部署,各自授权"]
|
||||
Main --> Infra["基础设施层<br/>计算 · 网络 · 存储 · 自动化"]
|
||||
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
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-4 text-sm text-gray-400">
|
||||
|
||||
> 四层模型:用户层 → 主系统层 → 子系统层 → 基础设施层,主系统是统一入口,子系统各司其职。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 主系统功能
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
Portal["统一门户<br/>LDAP SSO 跳转入口"]
|
||||
|
||||
subgraph 全局视图
|
||||
DashBoard["资源大盘<br/>集群拓扑 · 节点方格图"]
|
||||
MonitorView["资源状态看板<br/>物理机/虚机/服务三层告警"]
|
||||
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
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> 主系统不替代子系统,只自建子系统无法覆盖的能力:全局视图、运维兜底、审计、资源台账。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 子系统集成
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Portal["XINFRA 主系统"]
|
||||
|
||||
subgraph 子系统
|
||||
Wayne["Wayne<br/>多集群容器管理"]
|
||||
CloudDM["CloudDM<br/>SQL 审核"]
|
||||
CacheCloud["CacheCloud<br/>Redis 管理"]
|
||||
Apollo["Apollo<br/>配置中心"]
|
||||
Grafana["Grafana<br/>监控可视化"]
|
||||
QPass["qpass<br/>告警通知"]
|
||||
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
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> 子系统各自独立部署和授权,主系统只做 SSO 跳转入口,各子系统自行维护操作审计。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 平台分层架构 — 基础设施层
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```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 text-sm text-gray-400">
|
||||
|
||||
> RKE2 是计算底座,Calico BGP 构建跨机房扁平网络,Ceph RBD 提供持久化存储,Ansible 贯穿自动化运维。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 部署架构
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```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"]
|
||||
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">
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph 采集源
|
||||
RKE2["RKE2 集群"]
|
||||
Zabbix["Zabbix<br/>硬件监控"]
|
||||
end
|
||||
|
||||
subgraph 指标存储
|
||||
VM[("VictoriaMetrics<br/>容器/业务指标")]
|
||||
end
|
||||
|
||||
subgraph 可视化
|
||||
Grafana["Grafana 仪表盘"]
|
||||
end
|
||||
|
||||
subgraph 告警链路
|
||||
Nightingale["夜莺<br/>去重 · 收敛 · 分级"]
|
||||
QPass["qpass<br/>企业 IM 推送"]
|
||||
end
|
||||
|
||||
RKE2 -.->|Metrics| VM
|
||||
VM --> Grafana
|
||||
VM --> Nightingale
|
||||
Zabbix -.->|Webhook| Nightingale
|
||||
Nightingale --> QPass
|
||||
Zabbix -->|Zabbix API| Main["XINFRA 主系统<br/>资源状态看板"]
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 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 text-sm text-gray-400">
|
||||
|
||||
> 用户通过服务卡片填参 → Ansible 自动化部署 → 完成后自动注册到对应子系统,全程日志实时查看。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 多租户隔离模型(Phase 2+)
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
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-4 text-sm text-gray-400">
|
||||
|
||||
> **双重隔离**:节点层通过 `business-line=xxx` 标签 + Taint 确保 Pod 调度隔离;命名空间层通过 ResourceQuota / LimitRange 限制资源用量上限。
|
||||
> Phase 1 仅做基础设施准备(节点标签预留),多租户功能为 Phase 2+。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 安全认证流程
|
||||
|
||||
<div class="mt-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: 跳转至子系统(免登录)
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> 外部 LDAP 通过 SAML 集成统一认证;子系统 SSO 通过 OAuth 2.0 对接,实现单点登录免跳转。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 架构描述
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 三、架构描述
|
||||
|
||||
<div class="text-gray-400 mt-2">技术选型 · 数据库设计 · 安全机制 · 运维模型</div>
|
||||
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
# 技术选型
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
| 层级 | 选型 |
|
||||
|------|------|
|
||||
| 前端框架 | Vue 3 + Element Plus |
|
||||
| 后端框架 | Go + Gin |
|
||||
| 前后端通信 | REST/JSON,URL 路径版本 |
|
||||
| 主系统数据库 | MySQL 8.0 |
|
||||
| 缓存 | Redis |
|
||||
| 前端部署 | Nginx |
|
||||
| 主系统部署 | K8s Deployment |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
| 层级 | 选型 |
|
||||
|------|------|
|
||||
| SSO 协议 | OAuth 2.0 + SAML |
|
||||
| 告警数据源 | Nightingale + Zabbix API |
|
||||
| Ansible 调度 | SSH 直接执行 |
|
||||
| 实时推送 | 原生 WebSocket |
|
||||
| 接口文档 | Swagger/OpenAPI |
|
||||
| 界面语言 | 纯中文 |
|
||||
| 测试策略 | 后端单元 + 集成测试 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### 选型依据
|
||||
|
||||
| 选型 | 理由 | 备选淘汰原因 |
|
||||
|------|------|------------|
|
||||
| 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 设计规范
|
||||
|
||||
<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">
|
||||
<div>
|
||||
|
||||
### 认证与授权
|
||||
|
||||
| 层面 | 机制 |
|
||||
|------|------|
|
||||
| 身份认证 | SAML + OAuth 2.0 |
|
||||
| 访问控制 | RBAC + 业务线维度 |
|
||||
| 传输安全 | HTTPS + TLS 1.2+ |
|
||||
| 数据加密 | AES-256,敏感字段加密存储 |
|
||||
| APIKey 管理 | SHA-256 哈希存储,scope 粒度授权 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 审计与隔离
|
||||
|
||||
| 层面 | 机制 |
|
||||
|------|------|
|
||||
| 审计留痕 | 登录/运维/API 全程记录,不可篡改 |
|
||||
| 网络隔离 | BGP + 防火墙,管理面与数据面分离 |
|
||||
| 凭证管理 | 禁止默认凭证,Vault / K8s Secret |
|
||||
| Ansible/SSH | 仅管理员可见,普通用户菜单不包含 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 p-4 bg-blue-50 rounded-lg text-sm text-blue-800">
|
||||
|
||||
> **RBAC 二维模型**:权限维度(角色能力)× 业务线维度(资源范围),遵循最小权限原则。
|
||||
> 所有跨层操作全程审计留痕。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 运维分层模型
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
| 故障层级 | 处理方 | 工具链 | 权限要求 |
|
||||
|---------|--------|--------|---------|
|
||||
| 应用发布异常 | 子系统自愈 | Wayne 一键回滚 | 项目成员 |
|
||||
| 中间件故障 | 子系统自恢复 | CacheCloud / CloudDM 内置能力 | 子系统运维角色 |
|
||||
| 配置变更异常 | Apollo 回滚 | Apollo 版本回滚 + 灰度发布 | 配置管理员 |
|
||||
| 基础设施故障 | 主系统管理员 | Ansible Playbook / SSH 终端 | 仅主系统管理员 |
|
||||
| 机房级故障 | 主系统管理员 | Ansible + 大内网链路切换 | 仅主系统管理员 |
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-6 p-4 bg-amber-50 rounded-lg text-sm text-amber-800">
|
||||
|
||||
> 故障按层级自愈,跨层操作需主系统管理员权限。Ansible / SSH 终端等基础设施级操作仅对管理员角色可见,所有跨层操作全程审计留痕。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 风险与约束
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
| 风险 | 缓解措施 |
|
||||
|------|---------|
|
||||
| RKE2 版本升级不兼容 | 测试环境验证,灰度发布 |
|
||||
| Wayne 开源维护不确定 | 内部 Fork,保持核心可维护 |
|
||||
| 七机房网络链路故障 | 网络冗余 + BGP 自动切换 |
|
||||
| SQL 审核规则误判 | 白名单机制 + 规则持续调优 |
|
||||
| Redis 大 Key / 热 Key | CacheCloud 诊断 + 应用侧治理 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
| 风险 | 缓解措施 |
|
||||
|------|---------|
|
||||
| Apollo 多机房配置一致性 | 本地缓存降级 + 灰度发布 |
|
||||
| Consul 跨机房同步延迟 | 30 秒轮询 + 健康状态标注 |
|
||||
| 云平台 API 限流 | 增量同步 + 重试 + 状态告警 |
|
||||
| AWX 未引入,Ansible 直调 | 自建任务队列 + WebSocket 日志 |
|
||||
| Go/Gin 开发人力 | 复用 Wayne/CloudDM 生态降低学习成本 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 总结
|
||||
|
||||
<div class="grid grid-cols-3 gap-8 mt-8 text-sm">
|
||||
<div class="text-center">
|
||||
|
||||
### 🏗 四层架构
|
||||
用户层 → 主系统层<br/>→ 子系统层 → 基础设施层
|
||||
|
||||
</div>
|
||||
<div class="text-center">
|
||||
|
||||
### 🔐 统一安全
|
||||
LDAP SAML 认证<br/>RBAC + 业务线隔离<br/>全程审计留痕
|
||||
|
||||
</div>
|
||||
<div class="text-center">
|
||||
|
||||
### 🚀 自动化运维
|
||||
Ansible IaC 交付<br/>WebSocket 实时日志<br/>故障分层自愈
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-12 text-gray-400 text-center">
|
||||
XINFRA — 统一基础设施管理平台
|
||||
</div>
|
||||
+1
-1
@@ -26,7 +26,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
const decks = ['resume', 'gen2D'];
|
||||
const decks = ['resume', 'gen2D', 'xinfra'];
|
||||
const container = document.getElementById('decks');
|
||||
if (decks.length === 0) {
|
||||
container.innerHTML = '<p class="empty">No slide decks yet.</p>';
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
"build:resume": "slidev build decks/resume/slides.md --base /resume/ --out dist/resume",
|
||||
"dev:gen2D": "slidev decks/gen2D/slides.md",
|
||||
"build:gen2D": "slidev build decks/gen2D/slides.md --base /gen2D/ --out dist/gen2D",
|
||||
"dev:xinfra": "slidev decks/xinfra/slides.md",
|
||||
"build:xinfra": "slidev build decks/xinfra/slides.md --base /xinfra/ --out dist/xinfra",
|
||||
"serve": "pnpm run build && pnpm exec serve dist -l 3030",
|
||||
"export": "slidev export"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user