docs: restructure xinfra deck, add requirements and features sections
- Remove 名词概述 and 架构描述 sections - Add 需求与边界 section: system boundaries, user stories, key decisions - Add 关键功能 section: resource management, service delivery, subsystem features - Update table of contents and section numbering (4 sections total)
This commit is contained in:
+620
-264
@@ -9,7 +9,7 @@ drawings:
|
||||
persist: false
|
||||
---
|
||||
|
||||
# XINFRA 平台架构
|
||||
# XINFRA 平台需求与架构
|
||||
|
||||
<div class="text-xl mt-4 text-gray-400">
|
||||
统一基础设施管理平台 · 总体架构设计
|
||||
@@ -32,15 +32,25 @@ layout: default
|
||||
<div class="grid grid-cols-4 gap-8 mt-8">
|
||||
<div>
|
||||
|
||||
### 一、名词概述
|
||||
### 一、需求与边界
|
||||
|
||||
- 组内约定
|
||||
- 通用术语
|
||||
- 系统边界
|
||||
- 用户故事
|
||||
- 关键决策
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 二、架构图
|
||||
### 二、关键功能
|
||||
|
||||
- 资源纳管
|
||||
- 服务交付
|
||||
- 子系统功能
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 三、架构图
|
||||
|
||||
- 平台分层架构
|
||||
- 部署架构
|
||||
@@ -50,129 +60,648 @@ layout: default
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 三、对接子系统
|
||||
### 四、对接子系统
|
||||
|
||||
- Wayne
|
||||
- CloudDM
|
||||
- CacheCloud
|
||||
- Apollo
|
||||
- Grafana
|
||||
- qpass
|
||||
- Wayne · CloudDM
|
||||
- CacheCloud · Apollo
|
||||
- Grafana · qpass
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 需求与边界
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 一、需求与边界
|
||||
|
||||
<div class="text-gray-400 mt-2">系统边界 · 用户故事 · 关键决策 · 关键功能</div>
|
||||
|
||||
---
|
||||
|
||||
# 系统边界
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph XINFRA["XINFRA 平台边界"]
|
||||
Portal["统一门户<br/>SSO 跳转入口"]
|
||||
Resource["资源纳管<br/>物理机/虚机/云主机/K8s"]
|
||||
Service["服务交付入口<br/>跳转 Wayne/CloudDM/Apollo"]
|
||||
BasicSvc["基础服务交付<br/>Ansible 编排部署"]
|
||||
DBReview["数据库审核<br/>SQL 工单审批"]
|
||||
Monitor["监控纳管<br/>对接夜莺展示"]
|
||||
Config["配置中心接入<br/>Apollo 配置管理"]
|
||||
Audit["审计中心<br/>登录/操作/任务审计"]
|
||||
TaskCenter["任务中心<br/>Ansible 执行记录"]
|
||||
end
|
||||
|
||||
subgraph External["专业系统(不在平台内重做)"]
|
||||
Wayne["Wayne<br/>容器管理"]
|
||||
CloudDM["CloudDM<br/>SQL 审核"]
|
||||
Apollo["Apollo<br/>配置中心"]
|
||||
Grafana["Grafana<br/>监控可视化"]
|
||||
Nightingale["夜莺<br/>告警引擎"]
|
||||
CacheCloud["CacheCloud<br/>Redis 管理"]
|
||||
end
|
||||
|
||||
subgraph OutOfScope["不在范围内"]
|
||||
AI["AI 排障<br/>其他项目负责"]
|
||||
VMCreate["虚机创建<br/>统一走线下"]
|
||||
MonitorEngine["自研监控引擎<br/>成本高非重点"]
|
||||
end
|
||||
|
||||
Portal --> Resource & Service & Monitor & Audit
|
||||
Service -.->|SSO 跳转| Wayne & CloudDM & Apollo
|
||||
Monitor -.->|数据接入| Nightingale
|
||||
BasicSvc -.->|自动注册| CloudDM & CacheCloud
|
||||
|
||||
style XINFRA fill:#e0f2fe,stroke:#0284c7
|
||||
style External fill:#f3e8fd,stroke:#9333ea
|
||||
style OutOfScope fill:#fee2e2,stroke:#dc2626
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> **边界原则**:XINFRA 做入口聚合和统一纳管,不替代专业系统;虚机创建走线下,AI 排障由其他项目负责。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 系统边界 — 做什么 vs 不做什么
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
### ✅ 做什么
|
||||
|
||||
| 范围 | 说明 |
|
||||
|------|------|
|
||||
| 统一入口 | 一个入口登录,集中展示各子系统和平台能力 |
|
||||
| 资源台账 | 统一查看物理机、虚机、云主机、K8s 资源 |
|
||||
| 容器纳管 | 管理 K8s 集群、Namespace、配额和业务线归属 |
|
||||
| 业务交付 | 跳转 Wayne、CloudDM、Apollo 等系统 |
|
||||
| 基础服务交付 | 标准化模板 + Ansible 编排 |
|
||||
| 数据库审核 | SQL 工单、审批、审计 |
|
||||
| 监控纳管 | 对接夜莺,按业务线展示告警 |
|
||||
| 权限管理 | 业务线维度授权、子系统角色管理 |
|
||||
| 审计 | 记录登录、跳转、审批和自动化执行 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 四、架构描述
|
||||
### ❌ 不做什么
|
||||
|
||||
- 技术选型
|
||||
- 安全机制
|
||||
- 运维模型与风险
|
||||
| 范围 | 不做原因 |
|
||||
|------|---------|
|
||||
| 替代 Wayne、Apollo、CloudDM、夜莺 | 专业系统继续保留 |
|
||||
| 全量自研监控和告警引擎 | 成本高,非当前重点 |
|
||||
| 复杂 AI 排障 | 由其他项目负责 |
|
||||
| 虚机创建主流程 | 统一走线下流程 |
|
||||
| 大而全的运维平台 | 两个月内不现实,也不必要 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 名词概述
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 一、名词概述
|
||||
# 用户故事 — 资源查看
|
||||
|
||||
<div class="text-gray-400 mt-2">平台核心概念与通用术语</div>
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor SRE as 业务 SRE
|
||||
participant XINFRA as XINFRA 主系统
|
||||
participant CMDB as SINA CMDB
|
||||
participant Cloud as 云平台 API
|
||||
participant K8s as RKE2 集群
|
||||
|
||||
SRE->>XINFRA: 登录,选择业务线
|
||||
XINFRA->>CMDB: 同步物理机/虚机数据
|
||||
XINFRA->>Cloud: 同步云主机数据
|
||||
XINFRA->>K8s: 查询集群节点状态
|
||||
XINFRA-->>SRE: 展示全量资源分布<br/>业务线归属 · 节点状态 · 容量概览
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-4 p-4 bg-blue-50 rounded-lg text-sm text-blue-800">
|
||||
|
||||
> **场景**:运维人员登录 XINFRA 后,直接看到全量资源分布、业务线归属、节点状态和容量概览,不需要在多个 CMDB 和云平台之间来回切换。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
layout: default
|
||||
|
||||
# 用户故事 — 业务交付
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor SRE as 业务 SRE
|
||||
participant XINFRA as XINFRA 业务交付
|
||||
participant Wayne as Wayne
|
||||
participant CloudDM as CloudDM
|
||||
participant Apollo as Apollo
|
||||
|
||||
SRE->>XINFRA: 进入业务交付,选择业务线
|
||||
XINFRA-->>SRE: 展示可用子系统入口
|
||||
|
||||
alt 容器部署
|
||||
SRE->>XINFRA: 点击 Wayne 卡片
|
||||
XINFRA->>Wayne: SSO 跳转 + 上下文传递
|
||||
Wayne-->>SRE: 免登录进入 Wayne
|
||||
else 数据库变更
|
||||
SRE->>XINFRA: 点击 CloudDM 卡片
|
||||
XINFRA->>CloudDM: SSO 跳转 + 上下文传递
|
||||
CloudDM-->>SRE: 免登录进入 CloudDM
|
||||
else 配置管理
|
||||
SRE->>XINFRA: 点击 Apollo 卡片
|
||||
XINFRA->>Apollo: SSO 跳转 + 上下文传递
|
||||
Apollo-->>SRE: 免登录进入 Apollo
|
||||
end
|
||||
|
||||
XINFRA->>XINFRA: 记录跳转审计日志
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> **场景**:业务 SRE 在 XINFRA 中进入"业务交付",选择对应业务线后跳转到 Wayne、CloudDM 或 Apollo 完成实际操作,平台保留入口、上下文和审计。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 组内约定
|
||||
# 用户故事 — 基础服务交付
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor Ops as 运维人员
|
||||
participant XINFRA as XINFRA 服务目录
|
||||
participant Ansible as Ansible 控制中心
|
||||
participant Target as 目标主机/RKE2
|
||||
participant Reg as 子系统注册
|
||||
|
||||
Ops->>XINFRA: 选择 MySQL/Redis/Nginx 服务卡片
|
||||
XINFRA-->>Ops: 展示标准化模板,填写业务线、规格
|
||||
Ops->>XINFRA: 确认提交
|
||||
XINFRA->>Ansible: 提交 playbook 任务
|
||||
Ansible->>Target: 执行标准化部署
|
||||
Ansible-->>XINFRA: WebSocket 实时日志推送
|
||||
XINFRA-->>Ops: 任务中心查看执行进度
|
||||
Target-->>Reg: 部署完成,自动注册至 CloudDM/CacheCloud
|
||||
XINFRA-->>Ops: 部署完成通知
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> **场景**:运维人员在 XINFRA 中提交 MySQL、Redis 等基础服务交付任务,平台调用 Ansible 控制中心执行标准化部署,并在任务中心查看日志和结果。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 用户故事 — 数据库审核
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor Dev as 开发/运维
|
||||
participant XINFRA as XINFRA 审核入口
|
||||
participant CloudDM as CloudDM
|
||||
participant DB as 目标数据库
|
||||
|
||||
Dev->>XINFRA: 提交 SQL 工单
|
||||
XINFRA->>CloudDM: 转发工单至 CloudDM
|
||||
CloudDM-->>XINFRA: 返回审核状态
|
||||
|
||||
actor Reviewer as 审核人
|
||||
Reviewer->>XINFRA: 查看待审核工单
|
||||
XINFRA->>CloudDM: 获取工单详情
|
||||
Reviewer->>XINFRA: 审批通过
|
||||
XINFRA->>CloudDM: 执行变更
|
||||
CloudDM->>DB: Sidecar 代理执行 SQL
|
||||
CloudDM-->>XINFRA: 返回执行结果
|
||||
XINFRA->>XINFRA: 记录审计日志
|
||||
XINFRA-->>Dev: 通知执行完成
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2 text-sm text-gray-400">
|
||||
|
||||
> **场景**:开发或运维提交 SQL 工单后,审核人可以在 XINFRA 中完成审批、查看执行记录和审计信息,减少线下沟通和手工操作。
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 用户故事 — 业务线切换场景
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
### 场景一:系统运维查看全局
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| 1 | 系统运维登录 XINFRA |
|
||||
| 2 | 业务线选择器显示"全部业务线" |
|
||||
| 3 | 资源大盘展示 Kodo、LAS、灵矽、LTOKEN、MAAS 全量数据 |
|
||||
| 4 | 可切换到任意业务线查看详细资源 |
|
||||
|
||||
### 场景二:业务 SRE 切换业务线
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| 1 | 业务 SRE 登录,默认归属业务线(如 Kodo) |
|
||||
| 2 | 资源大盘仅展示 Kodo 相关资源 |
|
||||
| 3 | 点击业务线切换器,切换到 LAS |
|
||||
| 4 | 资源大盘、子系统入口、监控数据同步切换至 LAS |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 场景三:跨业务线操作
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| 1 | 运维人员需要为灵矽部署 Redis |
|
||||
| 2 | 切换业务线至"灵矽" |
|
||||
| 3 | 进入服务目录,选择 Redis 卡片 |
|
||||
| 4 | 提交部署任务,自动关联灵矽 Namespace |
|
||||
|
||||
### 场景四:只读用户查看状态
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| 1 | 只读用户登录,仅能查看授权业务线 |
|
||||
| 2 | 资源大盘展示授权范围内的只读数据 |
|
||||
| 3 | 子系统入口灰显,点击提示"无权限" |
|
||||
| 4 | 可查看监控告警,不可执行操作 |
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键决策 — 入口聚合而非替代
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 主系统
|
||||
XINFRA 平台自身的统管层,负责子系统无法覆盖的能力:
|
||||
- 统一门户(SSO 跳转入口)
|
||||
- 资源大盘、运维终端
|
||||
- 登录审计与运维操作审计
|
||||
- 资源指标面板
|
||||
### 决策
|
||||
|
||||
</div>
|
||||
<div>
|
||||
XINFRA 做**入口聚合**,不替代 Wayne、CloudDM、Apollo 等专业系统。
|
||||
|
||||
### 子系统
|
||||
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** | 携程开源配置中心,多机房部署、灰度、回滚、审计 |
|
||||
| 运维需要登录 6+ 个系统 | 入口分散,效率低 |
|
||||
| 各系统独立认证 | 重复登录,体验差 |
|
||||
| 操作记录分散在各系统 | 审计困难,无法追溯 |
|
||||
| 新人不知道该用哪个系统 | 上手门槛高 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
| 术语 | 说明 |
|
||||
|------|------|
|
||||
| **Consul** | 各机房服务注册发现,XINFRA 只读聚合展示 |
|
||||
| **CD** | 持续部署,自动化服务上线流水线 |
|
||||
| **WAF** | Web 应用防火墙,防护 SQL 注入、XSS、CSRF |
|
||||
| **SLA** | 服务等级协议,定义可用性承诺指标 |
|
||||
| **IaC** | 基础设施即代码,通过 Ansible 实现自动化管理 |
|
||||
| **SINA CMDB** | 公司内部 CMDB,物理机与虚机资产数据基础来源 |
|
||||
| **SSO** | 单点登录,主系统通过 LDAP 统一认证后跳转子系统 |
|
||||
### 方案对比
|
||||
|
||||
| 方案 | 优点 | 缺点 |
|
||||
|------|------|------|
|
||||
| **入口聚合(选定)** | 开发量小,复用现有系统能力 | 依赖子系统稳定性 |
|
||||
| 全量自研替代 | 完全可控 | 开发周期长,团队人力不足 |
|
||||
| 仅做文档指引 | 零开发成本 | 无法解决认证和审计问题 |
|
||||
|
||||
### 预期收益
|
||||
|
||||
- 运维人员**一个入口**完成所有操作
|
||||
- **SSO 免登录**跳转子系统
|
||||
- **统一审计**记录所有跨系统操作
|
||||
- **降低新人上手门槛**
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键决策 — 业务线作为核心隔离维度
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 决策
|
||||
|
||||
以**业务线**作为资源、权限、监控的核心隔离维度。
|
||||
|
||||
### 背景
|
||||
|
||||
| 现状 | 问题 |
|
||||
|------|------|
|
||||
| 资源按机房/集群管理 | 无法按业务视角查看成本 |
|
||||
| 权限按系统独立管理 | 跨系统权限不一致 |
|
||||
| 监控按技术栈分散 | 排障时需要多系统切换 |
|
||||
| 业务线有 5+ 条 | Kodo、LAS、灵矽、LTOKEN、MAAS |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 隔离模型
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
BL["业务线<br/>Kodo / LAS / 灵矽 / ..."]
|
||||
BL --> NS["K8s Namespace<br/>ResourceQuota"]
|
||||
BL --> Perm["权限隔离<br/>RBAC 业务线维度"]
|
||||
BL --> Monitor["监控隔离<br/>告警按业务线展示"]
|
||||
BL --> Resource["资源台账<br/>按业务线统计成本"]
|
||||
|
||||
style BL fill:#e0f2fe,stroke:#0284c7
|
||||
```
|
||||
|
||||
### 预期收益
|
||||
|
||||
- 资源成本**按业务线可视**
|
||||
- 权限**一次配置,全系统生效**
|
||||
- 监控告警**按业务线隔离展示**
|
||||
- 运维人员**聚焦自己负责的业务线**
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键决策 — Ansible 编排而非自研部署引擎
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 决策
|
||||
|
||||
基础服务交付采用 **Ansible Playbook** 编排,不自研部署引擎。
|
||||
|
||||
### 背景
|
||||
|
||||
| 现状 | 问题 |
|
||||
|------|------|
|
||||
| 基础服务部署依赖人工操作 | 效率低,容易出错 |
|
||||
| 不同运维人员操作方式不同 | 缺少标准化 |
|
||||
| 部署过程不可见 | 排障困难 |
|
||||
| 跨机房部署需要 SSH 到各机房 | 操作繁琐 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 方案对比
|
||||
|
||||
| 方案 | 优点 | 缺点 |
|
||||
|------|------|------|
|
||||
| **Ansible 编排(选定)** | 运维团队熟悉,生态成熟 | 需要自建任务队列 |
|
||||
| 自研部署引擎 | 完全可控 | 开发周期长,重复造轮子 |
|
||||
| AWX/Tower | 开源方案 | 引入新组件,增加复杂度 |
|
||||
|
||||
### 执行模型
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
XINFRA["XINFRA<br/>任务提交"] --> Queue["任务队列"]
|
||||
Queue --> Ansible["Ansible 控制中心"]
|
||||
Ansible -->|SSH| Host1["机房 A 主机"]
|
||||
Ansible -->|SSH| Host2["机房 B 主机"]
|
||||
Ansible -.->|WebSocket| XINFRA
|
||||
|
||||
style XINFRA fill:#e0f2fe,stroke:#0284c7
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键决策 — 对接夜莺而非自建监控引擎
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 决策
|
||||
|
||||
监控数据**对接夜莺(Nightingale)**,不在 XINFRA 内自建监控和告警引擎。
|
||||
|
||||
### 背景
|
||||
|
||||
| 现状 | 问题 |
|
||||
|------|------|
|
||||
| 告警分散在基础资源和业务系统 | 排障时信息割裂 |
|
||||
| 夜莺已有告警聚合能力 | 重复建设浪费资源 |
|
||||
| 监控分析和告警治理复杂 | 非当前重点 |
|
||||
| 业务线需要隔离查看告警 | 缺少统一视图 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 方案对比
|
||||
|
||||
| 方案 | 优点 | 缺点 |
|
||||
|------|------|------|
|
||||
| **对接夜莺(选定)** | 复用现有能力,开发量小 | 依赖夜莺稳定性 |
|
||||
| 自建监控引擎 | 完全可控 | 成本高,非核心能力 |
|
||||
| 仅做文档指引 | 零成本 | 无法统一视图 |
|
||||
|
||||
### 数据流
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
VM["VictoriaMetrics<br/>指标存储"] --> Nightingale["夜莺<br/>告警聚合"]
|
||||
Zabbix["Zabbix<br/>硬件监控"] --> Nightingale
|
||||
Nightingale --> XINFRA["XINFRA<br/>按业务线展示"]
|
||||
Nightingale --> IM["企业 IM 推送"]
|
||||
|
||||
style XINFRA fill:#e0f2fe,stroke:#0284c7
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键功能 — 资源纳管
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 功能概述
|
||||
|
||||
统一展示和管理物理机、虚机、云主机、K8s 节点等资源,形成可视化资源台账。
|
||||
|
||||
### 核心能力
|
||||
|
||||
| 能力 | 说明 |
|
||||
|------|------|
|
||||
| 资源统一展示 | 物理机、虚机、云主机、K8s 节点统一视图 |
|
||||
| 业务线关联 | 资源与业务线绑定,支持按业务线筛选 |
|
||||
| 多维度筛选 | 机房、集群、状态、业务线组合筛选 |
|
||||
| 容量统计 | 资源使用率、剩余容量、成本概览 |
|
||||
| 数据同步 | CMDB + 云平台 API 自动同步 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 资源类型
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph 资源纳管
|
||||
Physical["物理机<br/>CMDB 同步"]
|
||||
VM["虚机<br/>CMDB 同步"]
|
||||
Cloud["云主机<br/>云平台 API 同步"]
|
||||
K8sNode["K8s 节点<br/>RKE2 集群同步"]
|
||||
end
|
||||
|
||||
XINFRA["XINFRA 资源大盘"] --> Physical & VM & Cloud & K8sNode
|
||||
|
||||
style XINFRA fill:#e0f2fe,stroke:#0284c7
|
||||
```
|
||||
|
||||
### 页面入口
|
||||
|
||||
- **资源管理** — 资源台账列表,支持筛选和导出
|
||||
- **资源状态看板** — 机房健康度、告警汇总
|
||||
- **业务配额** — 按业务线划分 K8s 命名空间与资源配额
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键功能 — 服务交付
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4">
|
||||
<div>
|
||||
|
||||
### 基础服务交付
|
||||
|
||||
通过 Ansible 编排实现基础服务标准化部署,支持任务提交、执行状态、日志和历史记录。
|
||||
|
||||
| 服务 | 交付方式 | 自动注册 |
|
||||
|------|---------|---------|
|
||||
| MySQL | Ansible Playbook | 部署完成自动注册至 CloudDM |
|
||||
| PostgreSQL | Ansible Playbook | 部署完成自动注册至 CloudDM |
|
||||
| Redis | Ansible Playbook | 部署完成自动注册至 CacheCloud |
|
||||
| Nginx | Ansible Playbook | — |
|
||||
|
||||
### 业务交付入口
|
||||
|
||||
在"业务交付"菜单下提供统一入口,跳转到专业系统完成实际操作。
|
||||
|
||||
| 目标系统 | 用途 | 上下文传递 |
|
||||
|---------|------|-----------|
|
||||
| Wayne | 容器应用部署 | 业务线 + Namespace |
|
||||
| CloudDM | 数据库管理与 SQL 审核 | 业务线 + 数据库实例 |
|
||||
| Apollo | 配置管理 | 业务线 + 应用 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 交付流程
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
User["运维人员"] --> Catalog["服务目录<br/>选择服务卡片"]
|
||||
Catalog --> Template["标准化模板<br/>填写业务线、规格"]
|
||||
Template --> Submit["提交任务"]
|
||||
Submit --> Ansible["Ansible 控制中心"]
|
||||
Ansible --> Deploy["执行部署"]
|
||||
Deploy --> Register["自动注册<br/>CloudDM/CacheCloud"]
|
||||
Deploy --> Log["任务中心<br/>实时日志"]
|
||||
|
||||
style Catalog fill:#e0f2fe,stroke:#0284c7
|
||||
style Ansible fill:#ecfdf5,stroke:#059669
|
||||
```
|
||||
|
||||
### 任务中心
|
||||
|
||||
- 任务列表:所有 Ansible 任务执行记录
|
||||
- 执行详情:实时日志、执行结果、耗时
|
||||
- 历史回溯:支持任务重跑和结果对比
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 关键功能 — 子系统功能
|
||||
|
||||
<div class="grid grid-cols-2 gap-6 mt-4 text-sm">
|
||||
<div>
|
||||
|
||||
### 子系统导航
|
||||
|
||||
XINFRA 提供统一的子系统入口卡片列表,支持 SSO 免登录跳转。
|
||||
|
||||
| 子系统 | 功能定位 | XINFRA 集成方式 |
|
||||
|--------|---------|----------------|
|
||||
| Wayne | 多集群容器管理 | SSO 跳转 + APIKey |
|
||||
| CloudDM | 数据库管理与 SQL 审核 | SSO 跳转 + 自动注册 |
|
||||
| CacheCloud | Redis 缓存管理 | SSO 跳转 + 自动注册 |
|
||||
| Apollo | 配置中心 | SSO 跳转 |
|
||||
| Grafana | 监控可视化 | SSO 跳转 |
|
||||
| qpass | 密码管理 | SSO 跳转 |
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
### 子系统赋权
|
||||
|
||||
用户首次跳转子系统时,XINFRA 自动完成角色授权。
|
||||
|
||||
| 子系统 | 授权模型 | 说明 |
|
||||
|--------|---------|------|
|
||||
| Wayne | Namespace 映射 | 业务线 → Wayne Namespace |
|
||||
| CloudDM | 角色分配 | 业务线 → 数据库访问权限 |
|
||||
| Apollo | 环境权限 | 业务线 → 配置环境访问 |
|
||||
| Grafana | 仪表盘权限 | 业务线 → 监控面板 |
|
||||
|
||||
### 审计记录
|
||||
|
||||
所有子系统跳转和操作均记录审计日志:
|
||||
- 跳转时间、用户、目标系统
|
||||
- 操作类型、操作结果
|
||||
- 支持按业务线、用户、时间筛选
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
section: 关键功能
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 二、关键功能
|
||||
|
||||
<div class="text-gray-400 mt-2">资源纳管 · 服务交付 · 子系统功能</div>
|
||||
|
||||
---
|
||||
|
||||
section: 架构图
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 二、架构图
|
||||
# 三、架构图
|
||||
|
||||
<div class="text-gray-400 mt-2">平台分层 · 部署 · 监控 · 安全</div>
|
||||
|
||||
@@ -486,7 +1015,7 @@ section: 对接子系统
|
||||
layout: center
|
||||
---
|
||||
|
||||
# 三、对接子系统
|
||||
# 四、对接子系统
|
||||
|
||||
<div class="text-gray-400 mt-2">Wayne · CloudDM · CacheCloud · Apollo · Grafana · qpass</div>
|
||||
|
||||
@@ -702,176 +1231,3 @@ graph LR
|
||||
|
||||
</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 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 — 团队运维经验不足 |
|
||||
|
||||
---
|
||||
|
||||
# 安全机制
|
||||
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user