vault backup: 2026-07-10 11:38:36
This commit is contained in:
+119
-42
@@ -40,20 +40,22 @@ XINFRA 是七牛云的统一基础设施平台,以**七机房容器资源池
|
|||||||
|
|
||||||
### 通用术语
|
### 通用术语
|
||||||
|
|
||||||
| 概念 | 定义 |
|
| 概念 | 定义 |
|
||||||
|------|------|
|
| ----------------- | -------------------------------------------------------------------------------------- |
|
||||||
| APIKey | Wayne 平台对外提供的 API 认证密钥,用于 CI/CD 流水线等自动化场景的身份认证,遵循最小权限原则 |
|
| APIKey | Wayne 平台对外提供的 API 认证密钥,用于 CI/CD 流水线等自动化场景的身份认证,遵循最小权限原则 |
|
||||||
| RBAC | 基于角色的访问控制(Role-Based Access Control),通过角色分配权限,用户与角色关联实现权限隔离 |
|
| RBAC | 基于角色的访问控制(Role-Based Access Control),通过角色分配权限,用户与角色关联实现权限隔离 |
|
||||||
| RKE2 | Rancher 发行的轻量级 Kubernetes 发行版,专为生产环境设计,支持离线安装和安全加固 |
|
| RKE2 | Rancher 发行的轻量级 Kubernetes 发行版,专为生产环境设计,支持离线安装和安全加固 |
|
||||||
| CI/CD | 持续集成/持续部署,自动化代码构建、测试和部署的流水线 |
|
| CI/CD | 持续集成/持续部署,自动化代码构建、测试和部署的流水线 |
|
||||||
| WAF | Web 应用防火墙(Web Application Firewall),防护 SQL 注入、XSS、CSRF 等常见 Web 攻击 |
|
| WAF | Web 应用防火墙(Web Application Firewall),防护 SQL 注入、XSS、CSRF 等常见 Web 攻击 |
|
||||||
| SLA | 服务等级协议(Service Level Agreement),定义服务可用性的承诺指标,如 99.9% 可用率 |
|
| SLA | 服务等级协议(Service Level Agreement),定义服务可用性的承诺指标,如 99.9% 可用率 |
|
||||||
| CNI | 容器网络接口(Container Network Interface),K8s 中负责 Pod 网络通信的插件规范 |
|
| CNI | 容器网络接口(Container Network Interface),K8s 中负责 Pod 网络通信的插件规范 |
|
||||||
| IaC | 基础设施即代码(Infrastructure as Code),通过 Ansible Playbook 等工具实现基础设施自动化管理 |
|
| IaC | 基础设施即代码(Infrastructure as Code),通过 Ansible Playbook 等工具实现基础设施自动化管理 |
|
||||||
| Console + Sidecar | CloudDM 的集群部署模式,Console 负责管理界面,Sidecar 负责实际 SQL 执行和代理 |
|
| 运维分层 | 故障按层级自愈:子系统处理应用与中间件故障,主系统管理员通过 Ansible / SSH 兜底基础设施层故障,跨层操作需管理员权限 |
|
||||||
| Air-gap | 离线部署模式,适配无外网访问的内网环境,所有依赖包需预先下载 |
|
| Console + Sidecar | CloudDM 的集群部署模式,Console 负责管理界面,Sidecar 负责实际 SQL 执行和代理 |
|
||||||
| Harbor | 企业级容器镜像仓库,用于存储和分发 Docker/OCI 镜像 |
|
| Air-gap | 离线部署模式,适配无外网访问的内网环境,所有依赖包需预先下载 |
|
||||||
| containerd | K8s 默认的容器运行时,负责容器生命周期管理,取代 Docker |
|
| Harbor | 企业级容器镜像仓库,用于存储和分发 Docker/OCI 镜像 |
|
||||||
|
| 跨系统认证 | 主系统统一 LDAP 认证,一个主系统用户对应各子系统中的多个用户(1:N 映射)。主系统管身份(Authentication),子系统管授权(Authorization) |
|
||||||
|
| containerd | K8s 默认的容器运行时(CRI 标准),负责容器生命周期管理,取代 Docker |
|
||||||
|
|
||||||
## 平台架构总览
|
## 平台架构总览
|
||||||
|
|
||||||
@@ -63,30 +65,40 @@ graph TB
|
|||||||
Dev[开发人员]
|
Dev[开发人员]
|
||||||
DBA[DBA]
|
DBA[DBA]
|
||||||
SRE[SRE / 运维]
|
SRE[SRE / 运维]
|
||||||
|
Sec[安全团队]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 平台层["平台层(主系统 + 子系统)"]
|
subgraph 平台层["平台层(主系统 + 子系统)"]
|
||||||
subgraph 主系统["主系统(XINFRA 统管层)"]
|
subgraph 主系统["主系统(XINFRA 统管层)"]
|
||||||
|
Portal[统一门户<br/>LDAP 认证入口]
|
||||||
|
AuditAgg[审计聚合中心]
|
||||||
CICD[CI/CD 流水线]
|
CICD[CI/CD 流水线]
|
||||||
CostBoard[多云成本看板]
|
CostBoard[多云成本看板]
|
||||||
|
OpsTerminal[运维终端<br/>Ansible / SSH<br/>「仅管理员」]
|
||||||
end
|
end
|
||||||
subgraph 子系统["子系统(独立部署平台)"]
|
subgraph 子系统["子系统(独立部署,各自授权)"]
|
||||||
Wayne[Wayne 多集群管理]
|
Wayne[Wayne 多集群管理]
|
||||||
CloudDM[CloudDM SQL 审核]
|
CloudDM[CloudDM SQL 审核<br/>多实例 HA]
|
||||||
CacheCloud[CacheCloud Redis 管理]
|
CacheCloud[CacheCloud Redis 管理]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 工具层
|
subgraph 工具层
|
||||||
Ansible[Ansible Playbook<br/>「工具」]
|
Ansible[Ansible Playbook<br/>「基础设施初始化」]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 基础设施层
|
subgraph 基础设施层
|
||||||
|
Ingress["Ingress / WAF<br/>「安全防护入口」"]
|
||||||
RKE2[RKE2 集群 x7 机房]
|
RKE2[RKE2 集群 x7 机房]
|
||||||
WAF[WAF 安全态势]
|
|
||||||
Network[大内网互联]
|
Network[大内网互联]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
subgraph 监控告警["监控告警(外部依赖)"]
|
||||||
|
Prometheus[(Prometheus<br/>Metrics 采集)]
|
||||||
|
Grafana[Grafana 可视化]
|
||||||
|
Alert[告警路由<br/>邮件 / 企业 IM]
|
||||||
|
end
|
||||||
|
|
||||||
subgraph 数据层
|
subgraph 数据层
|
||||||
MySQL[(MySQL)]
|
MySQL[(MySQL)]
|
||||||
PG[(PostgreSQL)]
|
PG[(PostgreSQL)]
|
||||||
@@ -97,39 +109,62 @@ graph TB
|
|||||||
Harbor[(Harbor 镜像仓库)]
|
Harbor[(Harbor 镜像仓库)]
|
||||||
end
|
end
|
||||||
|
|
||||||
Dev --> Wayne
|
Dev -->|1: N 用户映射| Portal
|
||||||
Dev --> CICD
|
DBA -->|1: N 用户映射| Portal
|
||||||
Dev --> CloudDM
|
SRE -->|1: N 用户映射| Portal
|
||||||
DBA --> CloudDM
|
Sec -->|1: N 用户映射| Portal
|
||||||
SRE --> Ansible
|
Portal --> Wayne
|
||||||
SRE --> CacheCloud
|
Portal --> CICD
|
||||||
|
Portal --> CloudDM
|
||||||
|
Portal --> CacheCloud
|
||||||
|
Portal --> CostBoard
|
||||||
|
SRE --> OpsTerminal
|
||||||
|
Wayne -.->|审计上报| AuditAgg
|
||||||
|
CloudDM -.->|审计上报| AuditAgg
|
||||||
|
CacheCloud -.->|审计上报| AuditAgg
|
||||||
|
|
||||||
Wayne --> RKE2
|
Wayne -->|Client-Go| RKE2
|
||||||
CloudDM --> MySQL
|
CloudDM -->|SQL 审核接入<br/>MySQL / PG / Oracle / CH / MongoDB| MySQL
|
||||||
CloudDM --> PG
|
|
||||||
CloudDM --> Oracle
|
|
||||||
CloudDM --> CH
|
|
||||||
CloudDM --> MongoDB
|
|
||||||
CacheCloud --> Redis
|
CacheCloud --> Redis
|
||||||
CICD --> Harbor
|
CICD --> Harbor
|
||||||
CICD --> Wayne
|
CICD -->|APIKey 触发部署| Wayne
|
||||||
Ansible --> RKE2
|
Ansible --> RKE2
|
||||||
Ansible --> MySQL
|
Ansible --> MySQL
|
||||||
Ansible --> Redis
|
Ansible --> Redis
|
||||||
|
OpsTerminal -->|兜底操作| RKE2
|
||||||
|
OpsTerminal -->|兜底操作| Network
|
||||||
|
|
||||||
|
Ingress --> RKE2
|
||||||
RKE2 --> Network
|
RKE2 --> Network
|
||||||
|
|
||||||
|
Wayne -.->|Metrics| Prometheus
|
||||||
|
CloudDM -.->|Metrics| Prometheus
|
||||||
|
CacheCloud -.->|Metrics| Prometheus
|
||||||
|
Prometheus --> Grafana
|
||||||
|
Prometheus --> Alert
|
||||||
|
Sec -->|安全事件查询| Ingress
|
||||||
|
|
||||||
|
CostBoard -.->|云账单 API| CH
|
||||||
|
CostBoard -.->|K8s / 节点指标| Prometheus
|
||||||
|
|
||||||
classDef subsystem fill:#e8f0fe,stroke:#4285f4,stroke-width:2px
|
classDef subsystem fill:#e8f0fe,stroke:#4285f4,stroke-width:2px
|
||||||
classDef mainsys fill:#f3e8fd,stroke:#9333ea,stroke-width:2px
|
classDef mainsys fill:#f3e8fd,stroke:#9333ea,stroke-width:2px
|
||||||
classDef tool fill:#fef3c7,stroke:#d97706,stroke-width:2px
|
classDef tool fill:#fef3c7,stroke:#d97706,stroke-width:2px
|
||||||
|
classDef monitor fill:#fff7ed,stroke:#ea580c,stroke-width:2px
|
||||||
|
classDef infra fill:#ecfdf5,stroke:#059669,stroke-width:2px
|
||||||
class Wayne,CloudDM,CacheCloud subsystem
|
class Wayne,CloudDM,CacheCloud subsystem
|
||||||
class CICD,CostBoard mainsys
|
class Portal,AuditAgg,CICD,CostBoard,OpsTerminal mainsys
|
||||||
class Ansible tool
|
class Ansible tool
|
||||||
|
class Prometheus,Grafana,Alert monitor
|
||||||
|
class Ingress,RKE2,Network infra
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!tip] 图例说明
|
> [!tip] 图例说明
|
||||||
> - **紫色节点** = 主系统(XINFRA 统管层:CI/CD、成本看板)
|
> - **紫色节点** = 主系统(XINFRA 统管层:统一门户、审计聚合、CI/CD、成本看板、运维终端)
|
||||||
> - **蓝色节点** = 子系统(有独立 WebUI 的平台:Wayne、CloudDM、CacheCloud)
|
> - **蓝色节点** = 子系统(有独立 WebUI 的平台:Wayne、CloudDM、CacheCloud)
|
||||||
> - **黄色节点** = 工具层(CLI/IaC 脚本,无常驻 WebUI:Ansible Playbook)
|
> - **黄色节点** = 工具层(CLI/IaC 脚本,无常驻 WebUI:Ansible Playbook)
|
||||||
|
> - **橙色节点** = 监控告警(外部依赖:Prometheus + Grafana + 告警路由)
|
||||||
|
> - **绿色节点** = 基础设施层(Ingress/WAF、RKE2 集群、大内网互联)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -228,6 +263,7 @@ graph TB
|
|||||||
- 所有生产库 SQL 操作必须经 CloudDM 工单流程,无直连通道
|
- 所有生产库 SQL 操作必须经 CloudDM 工单流程,无直连通道
|
||||||
- 审核规则可按需配置白名单豁免
|
- 审核规则可按需配置白名单豁免
|
||||||
- 生产部署已替换默认 JWT 密钥和管理员密码
|
- 生产部署已替换默认 JWT 密钥和管理员密码
|
||||||
|
- Console 多实例部署,单实例故障不影响服务可用性
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -362,6 +398,7 @@ graph TB
|
|||||||
**验收标准**:
|
**验收标准**:
|
||||||
- 成本数据延迟 < 24 小时
|
- 成本数据延迟 < 24 小时
|
||||||
- 支持按维度下钻到具体资源粒度
|
- 支持按维度下钻到具体资源粒度
|
||||||
|
- 云资源通过各厂商 Billing API 经 Exporter 采集入 ClickHouse;自建机房成本由 Prometheus 节点指标 + SNMP 网络指标汇总,按 Namespace → Project → Department 路径归属
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -408,18 +445,28 @@ graph TB
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR
|
graph LR
|
||||||
|
subgraph 认证
|
||||||
|
LDAP[(企业 LDAP)] -->|统一身份认证| Portal[XINFRA 统一门户]
|
||||||
|
end
|
||||||
|
|
||||||
subgraph 自动化流水线
|
subgraph 自动化流水线
|
||||||
GitLab[GitLab CI] -->|镜像推送| Harbor[Harbor]
|
GitLab[GitLab CI] -->|镜像推送| Harbor[Harbor]
|
||||||
GitLab -->|触发部署 API| Wayne
|
GitLab -->|触发部署 API| Wayne
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 平台层
|
subgraph 平台层
|
||||||
|
Portal -->|1:N 用户映射| Wayne
|
||||||
|
Portal -->|1:N 用户映射| CloudDM
|
||||||
|
Portal -->|1:N 用户映射| CacheCloud
|
||||||
Wayne -->|Client-Go| K8s[RKE2 集群]
|
Wayne -->|Client-Go| K8s[RKE2 集群]
|
||||||
CloudDM -->|SQL 执行| MySQL[(MySQL)]
|
CloudDM -->|Sidecar SQL 代理| MySQL[(MySQL)]
|
||||||
CacheCloud -->|Agent 管理| Redis[(Redis)]
|
CacheCloud -->|Agent 管理| Redis[(Redis)]
|
||||||
Ansible -->|SSH| K8s
|
Ansible -->|SSH| K8s
|
||||||
Ansible -->|SSH| MySQL
|
Ansible -->|SSH| MySQL
|
||||||
Ansible -->|SSH| Redis
|
Ansible -->|SSH| Redis
|
||||||
|
Wayne -.->|审计上报| AuditAgg[审计聚合]
|
||||||
|
CloudDM -.->|审计上报| AuditAgg
|
||||||
|
CacheCloud -.->|审计上报| AuditAgg
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 跨集群
|
subgraph 跨集群
|
||||||
@@ -429,15 +476,24 @@ graph LR
|
|||||||
end
|
end
|
||||||
|
|
||||||
subgraph 安全与网络
|
subgraph 安全与网络
|
||||||
WAF[WAF] -->|防护| K8s
|
WAF[WAF] -->|HTTP/HTTPS 防护| Ingress[Ingress 入口]
|
||||||
|
Ingress --> K8s
|
||||||
Network[大内网] -->|互联| ClusterA
|
Network[大内网] -->|互联| ClusterA
|
||||||
Network -->|互联| ClusterB
|
Network -->|互联| ClusterB
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 成本
|
subgraph 监控告警
|
||||||
CostBoard[成本看板] -.->|采集| K8s
|
K8s -.->|Metrics| Prometheus[(Prometheus)]
|
||||||
CostBoard -.->|采集| MySQL
|
MySQL -.->|Metrics| Prometheus
|
||||||
CostBoard -.->|采集| Redis
|
Redis -.->|Metrics| Prometheus
|
||||||
|
Prometheus --> Grafana[Grafana]
|
||||||
|
Prometheus --> Alert[告警路由]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph 成本采集
|
||||||
|
CloudAPI[云厂商 Billing API] -->|Exporter| CH[(ClickHouse)]
|
||||||
|
Prometheus -->|节点/网络指标| CostBoard[成本看板]
|
||||||
|
CH --> CostBoard
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -445,13 +501,18 @@ graph LR
|
|||||||
|
|
||||||
| 源 | 目标 | 接口方式 | 说明 |
|
| 源 | 目标 | 接口方式 | 说明 |
|
||||||
|----|------|---------|------|
|
|----|------|---------|------|
|
||||||
|
| 企业 LDAP | XINFRA 统一门户 | LDAP Bind | 统一身份认证,1:N 用户映射到子系统 |
|
||||||
|
| XINFRA 统一门户 | 各子系统 | 内部 API / 会话代理 | 用户选择子系统后代入本地身份 |
|
||||||
| GitLab CI | Wayne | REST API(APIKey 认证) | 自动触发部署 |
|
| GitLab CI | Wayne | REST API(APIKey 认证) | 自动触发部署 |
|
||||||
| GitLab CI | Harbor | Docker Push | 镜像推送 |
|
| GitLab CI | Harbor | Docker Push | 镜像推送 |
|
||||||
| Wayne | RKE2 | Client-Go(K8s API) | 容器编排操作 |
|
| Wayne | RKE2 | Client-Go(K8s API) | 容器编排操作 |
|
||||||
| CloudDM | MySQL | JDBC / Sidecar 代理 | SQL 审核执行 |
|
| CloudDM | MySQL | Sidecar SQL 代理 | SQL 审核执行 |
|
||||||
| CacheCloud | Redis | Agent(SSH + 心跳) | 实例生命周期管理 |
|
| CacheCloud | Redis | Agent(SSH + 心跳) | 实例生命周期管理 |
|
||||||
| Ansible | 各主机 | SSH | 配置管理与部署 |
|
| Ansible | 各主机 | SSH | 基础设施初始化部署 |
|
||||||
| 各子系统 | 告警平台 | HTTP / 邮件 / IM | 统一告警通道 |
|
| 各子系统 | 审计聚合中心 | HTTP Webhook | 操作审计统一归集 |
|
||||||
|
| 各子系统 + 基础设施 | Prometheus | HTTP / Exporter | Metrics 采集 |
|
||||||
|
| 云厂商 Billing API | ClickHouse | Exporter 定时拉取 | 多云成本数据归集 |
|
||||||
|
| Prometheus | 告警路由 | Alertmanager | 统一告警(邮件 / 企业 IM) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -467,6 +528,22 @@ graph LR
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 运维分层模型
|
||||||
|
|
||||||
|
> 故障按层级自愈,跨层操作需主系统管理员权限。
|
||||||
|
|
||||||
|
| 故障层级 | 处理方 | 工具链 | 权限要求 |
|
||||||
|
|---------|--------|--------|---------|
|
||||||
|
| 应用发布异常 | 子系统自愈 | Wayne 一键回滚 | 项目成员 |
|
||||||
|
| 中间件故障 | 子系统自恢复 | CacheCloud / CloudDM 内置运维能力 | 子系统运维角色 |
|
||||||
|
| 基础设施故障 | 主系统管理员 | Ansible Playbook / SSH 终端 | 仅主系统管理员 |
|
||||||
|
| 机房级故障 | 主系统管理员 | Ansible + 大内网链路切换 | 仅主系统管理员 |
|
||||||
|
|
||||||
|
> [!warning] 安全约束
|
||||||
|
> Ansible / SSH 终端等基础设施级操作仅对主系统管理员角色可见,普通用户菜单中不包含此项。所有跨层操作全程审计留痕。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 关联笔记
|
## 关联笔记
|
||||||
|
|
||||||
- [[technical/xinfra-preview]]
|
- [[technical/xinfra-preview]]
|
||||||
|
|||||||
Reference in New Issue
Block a user