云平台系统设计文档

1. 概述

1.1. 文档目的

本文档旨在为正在构建的云平台(下文简称“平台”)提供一个全面的系统级设计蓝图。它将涵盖平台的总体架构、核心功能模块以及关键技术选型,作为后续开发、部署和运维的指导性文件。

1.2. 平台愿景

我们的目标是构建一个稳定、安全、可扩展的云平台,为用户提供包括 IaaS(基于 PVE 和 Hyper-V 的统一云服务器)和 SaaS(基于 Kubernetes 的容器化应用支持)在内的一站式云服务。

2. 总体架构

2.1. 架构原则

平台设计遵循以下核心原则:

2.2. 架构分层图

+------------------------------------------------------+
|                      客户端层                          |
|    (Web Console, CLI, Terraform Provider, API User)    |
+------------------------------------------------------+
                              |
                              v
+------------------------------------------------------+
|                    接入与网关层                        |
|        (API Gateway - Traefik, L4/L7 Load Balancer)  |
+------------------------------------------------------+
                              |
                              v
+------------------------------------------------------+
|                  服务层 (主控平台)                     |
|  (统一认证授权, 计算, 容器, 存储, 网络, 计费, 监控)   |
+------------------------------------------------------+
                              |
                              v
+------------------------------------------------------+
|                 基础设施层 (受控节点)                  |
|     (PVE 虚拟化, Hyper-V 虚拟化, K8s 集群, 分布式存储) |
+------------------------------------------------------+

3. 统一认证授权系统

3.1. 设计选型

3.2. 系统架构与部署

系统核心组件的职责与部署位置明确如下:

3.3. 核心概念解析

3.4. 认证授权模式详解

平台的认证授权遵循两种核心模式,以应对不同的交互场景。

3.4.1. 模式一:用户-平台交互 (User-to-Platform)

此模式处理终端用户(如系统管理员)通过客户端与主控平台进行的交互。

+--------------+    (1) Login via Browser   +----------------+
|   终端用户   | ---------------------->  | 认证中心(Casdoor) |
+--------------+    <---------------------- +----------------+
      |            (2) Return User JWT
      |
      | (3) Request with User JWT (e.g., Delete VM)
      v
+--------------------------------------------+
|                主控平台 (Controller)           |
| +----------------+     +------------------+ |
| | API Gateway    | ->  |  业务服务(Compute)| |
| | (Validate JWT) |     | (Authorize User) | |
| +----------------+     +------------------+ |
+--------------------------------------------+

3.4.2. 模式二:主控-受控交互 (Machine-to-Machine, M2M)

此模式处理主控平台内部服务向下游的受控节点发送控制指令的场景,是平台内部自动化和系统命令执行的基础。

+--------------------------------+     (1) Request Token       +----------------+
|  主控业务服务 (e.g. Compute)   | -------------------------> | 认证中心(Casdoor) |
| (Authorization Logic Complete) | <------------------------- | (Client Credentials) |
+--------------------------------+   (2) Return Machine JWT    +----------------+
                 |
                 | (3) Send Command with Machine JWT
                 |
                 v
+--------------------------------+
|       受控节点 (Hypervisor)      |
|  (Authenticate Machine JWT,    |
|     then execute command)      |
+--------------------------------+

3.5. 典型应用场景映射

4. 计算服务 (IaaS)

4.1. 概述

计算服务是平台的核心 IaaS 能力,旨在将底层的 PVE (Proxmox VE) 和 Hyper-V 等异构虚拟化资源抽象为统一、标准化的云服务器(VM)资源。本服务负责云服务器的完整生命周期管理,向用户提供声明式的、与底层平台无关的资源操作体验。

4.2. 核心设计理念

4.2.1. 声明式 API 与协调循环 (Declarative API & Reconciliation Loop)

平台摒弃传统的命令式操作,采用声明式 API 模型。用户只需声明其“期望状态”(例如,“我需要一个 2C4G、状态为 RUNNING 的云服务器”),而无需关心底层的实现步骤。

4.2.2. 资源生命周期状态机 (Resource Lifecycle State Machine)

为确保所有操作的可追踪性和可管理性,我们为云服务器等核心资源定义了明确的状态机。

4.2.3. 分布式事务与 Saga 模式 (Distributed Transactions & Saga Pattern)

跨越平台数据库和底层虚拟化平台的任何操作本质上都是一个分布式事务。为保证数据一致性和操作的原子性,平台采用 Saga(长事务)模式。

4.3. 架构组件

计算服务遵循清晰的主控-受控(Master-Agent)架构。

4.4. 核心流程示例:创建云服务器

  1. 请求: 用户通过平台 API 发起一个创建 VM 的请求。

  2. 持久化: API 服务在数据库中创建一条 VM 记录,初始状态为 PENDING_CREATE

  3. 调度: 计算主控服务的调度器根据负载策略,选择一个合适的物理节点(PVE 或 Hyper-V 主机)。

  4. 启动 Saga: 主控服务启动“创建VM”的 Saga 事务,并将数据库中的 VM 状态更新为 CREATING

  5. 指令下发: 主控服务通过适配器层,将创建任务分解为原子指令(如创建磁盘、配置网络),并携带机器令牌(Machine JWT)依次发送给目标节点的 Agent。

  6. 执行与报告: 节点 Agent 验证令牌后执行指令,并将结果报告给主控服务。

  7. 状态更新/回滚:

    • 成功: 所有步骤成功后,主控服务将数据库中的 VM 状态更新为 RUNNING

    • 失败: 任何步骤失败,主控服务将触发补偿流程,回滚已执行的操作,并最终将状态更新为 ERROR

4.5. 技术栈

5. 容器服务 (SaaS)

(本章节待详细设计)

5.1. 概述

本服务为用户提供标准的 Kubernetes 集群管理能力,支持应用的容器化部署和管理。

5.2. 核心功能

5.3. 技术栈

6. 其他核心服务

(以下各章节待详细设计)

6.1. 存储服务

6.2. 网络服务

6.3. 监控与告警系统

6.4. 计费系统