Files
slide/decks/xinfra/slides.md
T
wonder 4dfe3de9f3 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)
2026-07-17 17:57:29 +08:00

30 KiB
Raw Blame History

theme, title, author, infoLine, transition, mdc, drawings
theme title author infoLine transition mdc drawings
frankfurt XINFRA 平台架构 实训小组 true slide-left true
persist
false

XINFRA 平台需求与架构

统一基础设施管理平台 · 总体架构设计
实训小组

layout: default

目录

一、需求与边界

  • 系统边界
  • 用户故事
  • 关键决策

二、关键功能

  • 资源纳管
  • 服务交付
  • 子系统功能

三、架构图

  • 平台分层架构
  • 部署架构
  • 监控告警链路
  • 安全认证流程

四、对接子系统

  • Wayne · CloudDM
  • CacheCloud · Apollo
  • Grafana · qpass

section: 需求与边界 layout: center

一、需求与边界

系统边界 · 用户故事 · 关键决策 · 关键功能

系统边界

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

边界原则:XINFRA 做入口聚合和统一纳管,不替代专业系统;虚机创建走线下,AI 排障由其他项目负责。


系统边界 — 做什么 vs 不做什么

✅ 做什么

范围 说明
统一入口 一个入口登录,集中展示各子系统和平台能力
资源台账 统一查看物理机、虚机、云主机、K8s 资源
容器纳管 管理 K8s 集群、Namespace、配额和业务线归属
业务交付 跳转 Wayne、CloudDM、Apollo 等系统
基础服务交付 标准化模板 + Ansible 编排
数据库审核 SQL 工单、审批、审计
监控纳管 对接夜莺,按业务线展示告警
权限管理 业务线维度授权、子系统角色管理
审计 记录登录、跳转、审批和自动化执行

❌ 不做什么

范围 不做原因
替代 Wayne、Apollo、CloudDM、夜莺 专业系统继续保留
全量自研监控和告警引擎 成本高,非当前重点
复杂 AI 排障 由其他项目负责
虚机创建主流程 统一走线下流程
大而全的运维平台 两个月内不现实,也不必要

用户故事 — 资源查看

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/>业务线归属 · 节点状态 · 容量概览

场景:运维人员登录 XINFRA 后,直接看到全量资源分布、业务线归属、节点状态和容量概览,不需要在多个 CMDB 和云平台之间来回切换。


用户故事 — 业务交付

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: 记录跳转审计日志

场景:业务 SRE 在 XINFRA 中进入"业务交付",选择对应业务线后跳转到 Wayne、CloudDM 或 Apollo 完成实际操作,平台保留入口、上下文和审计。


用户故事 — 基础服务交付

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: 部署完成通知

场景:运维人员在 XINFRA 中提交 MySQL、Redis 等基础服务交付任务,平台调用 Ansible 控制中心执行标准化部署,并在任务中心查看日志和结果。


用户故事 — 数据库审核

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: 通知执行完成

场景:开发或运维提交 SQL 工单后,审核人可以在 XINFRA 中完成审批、查看执行记录和审计信息,减少线下沟通和手工操作。


用户故事 — 业务线切换场景

场景一:系统运维查看全局

步骤 操作
1 系统运维登录 XINFRA
2 业务线选择器显示"全部业务线"
3 资源大盘展示 Kodo、LAS、灵矽、LTOKEN、MAAS 全量数据
4 可切换到任意业务线查看详细资源

场景二:业务 SRE 切换业务线

步骤 操作
1 业务 SRE 登录,默认归属业务线(如 Kodo)
2 资源大盘仅展示 Kodo 相关资源
3 点击业务线切换器,切换到 LAS
4 资源大盘、子系统入口、监控数据同步切换至 LAS

场景三:跨业务线操作

步骤 操作
1 运维人员需要为灵矽部署 Redis
2 切换业务线至"灵矽"
3 进入服务目录,选择 Redis 卡片
4 提交部署任务,自动关联灵矽 Namespace

场景四:只读用户查看状态

步骤 操作
1 只读用户登录,仅能查看授权业务线
2 资源大盘展示授权范围内的只读数据
3 子系统入口灰显,点击提示"无权限"
4 可查看监控告警,不可执行操作

关键决策 — 入口聚合而非替代

决策

XINFRA 做入口聚合,不替代 Wayne、CloudDM、Apollo 等专业系统。

背景

现状 问题
运维需要登录 6+ 个系统 入口分散,效率低
各系统独立认证 重复登录,体验差
操作记录分散在各系统 审计困难,无法追溯
新人不知道该用哪个系统 上手门槛高

方案对比

方案 优点 缺点
入口聚合(选定) 开发量小,复用现有系统能力 依赖子系统稳定性
全量自研替代 完全可控 开发周期长,团队人力不足
仅做文档指引 零开发成本 无法解决认证和审计问题

预期收益

  • 运维人员一个入口完成所有操作
  • SSO 免登录跳转子系统
  • 统一审计记录所有跨系统操作
  • 降低新人上手门槛

关键决策 — 业务线作为核心隔离维度

决策

以业务线作为资源、权限、监控的核心隔离维度。

背景

现状 问题
资源按机房/集群管理 无法按业务视角查看成本
权限按系统独立管理 跨系统权限不一致
监控按技术栈分散 排障时需要多系统切换
业务线有 5+ 条 Kodo、LAS、灵矽、LTOKEN、MAAS

隔离模型

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

预期收益

  • 资源成本按业务线可视
  • 权限一次配置,全系统生效
  • 监控告警按业务线隔离展示
  • 运维人员聚焦自己负责的业务线

关键决策 — Ansible 编排而非自研部署引擎

决策

基础服务交付采用 Ansible Playbook 编排,不自研部署引擎。

背景

现状 问题
基础服务部署依赖人工操作 效率低,容易出错
不同运维人员操作方式不同 缺少标准化
部署过程不可见 排障困难
跨机房部署需要 SSH 到各机房 操作繁琐

方案对比

方案 优点 缺点
Ansible 编排(选定) 运维团队熟悉,生态成熟 需要自建任务队列
自研部署引擎 完全可控 开发周期长,重复造轮子
AWX/Tower 开源方案 引入新组件,增加复杂度

执行模型

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

关键决策 — 对接夜莺而非自建监控引擎

决策

监控数据对接夜莺(Nightingale),不在 XINFRA 内自建监控和告警引擎。

背景

现状 问题
告警分散在基础资源和业务系统 排障时信息割裂
夜莺已有告警聚合能力 重复建设浪费资源
监控分析和告警治理复杂 非当前重点
业务线需要隔离查看告警 缺少统一视图

方案对比

方案 优点 缺点
对接夜莺(选定) 复用现有能力,开发量小 依赖夜莺稳定性
自建监控引擎 完全可控 成本高,非核心能力
仅做文档指引 零成本 无法统一视图

数据流

graph LR
    VM["VictoriaMetrics<br/>指标存储"] --> Nightingale["夜莺<br/>告警聚合"]
    Zabbix["Zabbix<br/>硬件监控"] --> Nightingale
    Nightingale --> XINFRA["XINFRA<br/>按业务线展示"]
    Nightingale --> IM["企业 IM 推送"]

    style XINFRA fill:#e0f2fe,stroke:#0284c7

关键功能 — 资源纳管

功能概述

统一展示和管理物理机、虚机、云主机、K8s 节点等资源,形成可视化资源台账。

核心能力

能力 说明
资源统一展示 物理机、虚机、云主机、K8s 节点统一视图
业务线关联 资源与业务线绑定,支持按业务线筛选
多维度筛选 机房、集群、状态、业务线组合筛选
容量统计 资源使用率、剩余容量、成本概览
数据同步 CMDB + 云平台 API 自动同步

资源类型

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 命名空间与资源配额

关键功能 — 服务交付

基础服务交付

通过 Ansible 编排实现基础服务标准化部署,支持任务提交、执行状态、日志和历史记录。

服务 交付方式 自动注册
MySQL Ansible Playbook 部署完成自动注册至 CloudDM
PostgreSQL Ansible Playbook 部署完成自动注册至 CloudDM
Redis Ansible Playbook 部署完成自动注册至 CacheCloud
Nginx Ansible Playbook —

业务交付入口

在"业务交付"菜单下提供统一入口,跳转到专业系统完成实际操作。

目标系统 用途 上下文传递
Wayne 容器应用部署 业务线 + Namespace
CloudDM 数据库管理与 SQL 审核 业务线 + 数据库实例
Apollo 配置管理 业务线 + 应用

交付流程

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 任务执行记录
  • 执行详情:实时日志、执行结果、耗时
  • 历史回溯:支持任务重跑和结果对比

关键功能 — 子系统功能

子系统导航

XINFRA 提供统一的子系统入口卡片列表,支持 SSO 免登录跳转。

子系统 功能定位 XINFRA 集成方式
Wayne 多集群容器管理 SSO 跳转 + APIKey
CloudDM 数据库管理与 SQL 审核 SSO 跳转 + 自动注册
CacheCloud Redis 缓存管理 SSO 跳转 + 自动注册
Apollo 配置中心 SSO 跳转
Grafana 监控可视化 SSO 跳转
qpass 密码管理 SSO 跳转

子系统赋权

用户首次跳转子系统时,XINFRA 自动完成角色授权。

子系统 授权模型 说明
Wayne Namespace 映射 业务线 → Wayne Namespace
CloudDM 角色分配 业务线 → 数据库访问权限
Apollo 环境权限 业务线 → 配置环境访问
Grafana 仪表盘权限 业务线 → 监控面板

审计记录

所有子系统跳转和操作均记录审计日志:

  • 跳转时间、用户、目标系统
  • 操作类型、操作结果
  • 支持按业务线、用户、时间筛选

section: 关键功能 layout: center

二、关键功能

资源纳管 · 服务交付 · 子系统功能

section: 架构图 layout: center

三、架构图

平台分层 · 部署 · 监控 · 安全

平台分层架构 — 总体分层

graph LR
    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

四层模型:用户层 → 主系统层 → 子系统层 → 基础设施层,主系统是统一入口,子系统各司其职。


平台分层架构 — 主系统功能

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

主系统不替代子系统,只自建子系统无法覆盖的能力:全局视图、运维兜底、审计、资源台账。


平台分层架构 — 子系统集成

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

平台分层架构 — 基础设施层

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

部署架构

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

监控告警数据流

graph LR
    subgraph 采集源
        RKE2["RKE2 集群"]
        Zabbix["Zabbix<br/>硬件监控"]
    end

    subgraph 指标存储
        VM[("VictoriaMetrics<br/>容器/业务指标")]
    end

    subgraph 可视化
        Grafana["Grafana 仪表盘"]
    end

    subgraph 告警链路
        Nightingale["夜莺<br/>去重 · 收敛 · 分级"]
        IM["企业 IM 推送"]
    end

    RKE2 -.->|Metrics| VM
    VM --> Grafana
    VM --> Nightingale
    Zabbix -.->|Webhook| Nightingale
    Nightingale --> IM
    Zabbix -->|Zabbix API| Main["XINFRA 主系统<br/>资源状态看板"]

Zabbix 硬件监控分两条链路:告警事件通过 Webhook 推送至夜莺统一聚合;可观测数据(IPMI/温度/电源/风扇等)由主系统直接调用 Zabbix API 采集展示。


基础服务交付流程

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: 部署完成,跳转任务中心

多租户隔离模型

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

双重隔离:节点层通过 business-line=xxx 标签 + Taint 确保 Pod 调度隔离;命名空间层通过 ResourceQuota / LimitRange 限制资源用量上限。


安全认证流程

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

四、对接子系统

Wayne · CloudDM · CacheCloud · Apollo · Grafana · qpass

子系统 — Wayne(多集群容器管理)

定位

多集群 Kubernetes 容器管理平台,统一管理 7 机房 RKE2 集群。

核心能力

  • 多集群纳管 — 通过 Client-Go 对接各机房 RKE2 集群 API
  • 应用部署 — 支持 Deployment、StatefulSet 等 K8s 工作负载管理
  • CI/CD 集成 — 对外提供 APIKey,GitLab CI 自动触发部署
  • 一键回滚 — 应用发布异常时快速回滚至历史版本

关键对接

graph LR
    CI["GitLab CI"] -->|APIKey 认证| Wayne["Wayne"]
    Wayne -->|Client-Go| RKE2["RKE2 集群"]
    Main["XINFRA 主系统"] -.->|SSO| Wayne

说明

  • 独立 WebUI + API 服务
  • APIKey 遵循最小权限原则
  • 主系统通过 SSO 跳转,各自维护操作审计

子系统 — CloudDM(数据库管理与 SQL 审核)

定位

SQL 审核与变更平台,统一管控数据库上线流程。

核心能力

  • SQL 审核 — 上线前自动检查 SQL 语句合规性与风险
  • 多库支持 — 原生支持 MySQL,后续扩展 PostgreSQL 等
  • 变更执行 — 审核通过后通过 Sidecar SQL 代理执行变更
  • 操作审计 — 所有 SQL 操作全程记录,可追溯

关键对接

graph LR
    User["DBA / 开发"] --> CloudDM["CloudDM"]
    CloudDM -->|Sidecar 代理| MySQL[("MySQL")]
    Deploy["服务部署完成"] -.->|自动注册| CloudDM
    Main["XINFRA 主系统"] -.->|SSO| CloudDM

说明

  • 基础服务交付流程中,MySQL 部署完成后自动注册至 CloudDM
  • 白名单机制防止规则误判拦截合法 SQL

子系统 — CacheCloud(Redis 缓存管理)

定位

Redis 实例生命周期管理平台,覆盖创建、监控、运维全流程。

核心能力

  • 实例管理 — Redis 实例的创建、扩缩容、下线
  • Agent 模式 — 通过 Agent 远程管理各机房 Redis 实例
  • 诊断工具 — 大 Key / 热 Key 检测,慢查询分析
  • 监控集成 — 实例指标上报至 VictoriaMetrics

关键对接

graph LR
    User["运维人员"] --> CacheCloud["CacheCloud"]
    CacheCloud -->|Agent| Redis[("Redis")]
    Deploy["服务部署完成"] -.->|自动注册| CacheCloud
    Main["XINFRA 主系统"] -.->|SSO| CacheCloud

说明

  • 基础服务交付流程中,Redis 部署完成后自动注册至 CacheCloud
  • 配合应用侧治理解决大 Key / 热 Key 性能问题

子系统 — Apollo(配置中心)

定位

携程开源的分布式配置中心,统一管理各业务线应用配置。

核心能力

  • 多机房部署 — 支持 Cluster 模式,7 机房独立部署
  • 配置灰度 — 配置变更可灰度发布,降低变更风险
  • 版本回滚 — 配置历史版本管理,异常时一键回滚
  • 操作审计 — 配置变更全程记录,可追溯

关键对接

graph LR
    App["业务应用"] -->|ConfigService| Apollo["Apollo"]
    Apollo -->|配置下发| RKE2["RKE2 集群"]
    Main["XINFRA 主系统"] -.->|SSO| Apollo

说明

  • 本地缓存降级保障多机房配置一致性
  • 灰度发布验证避免配置下发错误

子系统 — Grafana(监控可视化)

定位

统一监控可视化平台,对接 VictoriaMetrics 等数据源。

核心能力

  • 仪表盘 — 集群、节点、应用多维度监控面板
  • PromQL 查询 — 直接查询 VictoriaMetrics 中的指标数据
  • 告警可视化 — 告警规则与历史趋势展示
  • 多数据源 — 支持 VictoriaMetrics、Zabbix 等多种数据源

关键对接

graph LR
    VM["VictoriaMetrics"] -->|PromQL| Grafana["Grafana"]
    Zabbix["Zabbix"] -->|数据源| Grafana
    Main["XINFRA 主系统"] -.->|SSO| Grafana

说明

  • 直接复用现有 Grafana 仪表盘,无需主系统重建监控视图
  • 主系统资源状态看板侧重告警聚合,Grafana 侧重指标可视化

子系统 — qpass(密码管理平台)

定位

企业级密码管理平台,统一管理各业务线和基础设施的账号密码。

核心能力

  • 密码托管 — 集中存储和管理各类账号密码、密钥、证书
  • 权限控制 — 基于 RBAC 的密码访问权限,按业务线隔离
  • 审计追溯 — 密码访问、修改、共享全程记录
  • 自动轮换 — 支持定期密码轮换策略,降低泄露风险

关键对接

graph LR
    QPass["qpass"] -->|密码分发| RKE2["RKE2 集群"]
    QPass -->|密码注入| DB["MySQL / Redis"]
    Main["XINFRA 主系统"] -.->|SSO| QPass

说明

  • 基础设施部署完成后,密码由 qpass 统一管理并注入
  • 配合 Ansible 实现自动化密码分发与轮换