5.7 KiB
5.7 KiB
RMDC 产品需求文档 (PRD)
产品名称: RMDC (Runtime Management & DevOps Center)
版本: v1.0
编制日期: 2026-01-06
1. 产品背景
1.1 业务背景
在复杂的混合云/边缘计算环境中,运维团队面临以下挑战:
- 网络隔离: 多个项目部署在不同网络环境(内网、边缘、公网)
- 权限分散: Jenkins、K8S、主机等资源权限管理分散
- 状态不可见: 无法统一查看各项目的运行状态
- 操作复杂: 跨网络的操作需要繁琐的VPN/跳板机流程
1.2 痛点总结
| 痛点 | 当前方案 | 问题 |
|---|---|---|
| 跨网络访问 | VPN + 跳板机 | 效率低,依赖人工 |
| 分支权限管理 | Jenkins原生 | 粒度粗,无法精细控制 |
| 项目状态监控 | 分散的监控系统 | 无统一视图 |
| 自动化部署 | 手动脚本 | 可靠性差,无审计 |
2. 产品定位
RMDC是以项目(K8s Namespace)为核心维度的统一运维与交付平台,通过"边缘代理 + 消息总线"架构打通网络边界,提供:
- 统一入口: 一个平台管理所有项目
- 精细权限: 分支级别的构建权限控制
- 实时可见: 项目状态、构建进度、监控数据统一展示
- 全程审计: 所有操作可追溯
3. 目标用户
| 用户角色 | 关键诉求 |
|---|---|
| 超级管理员(SuperAdmin) | 管理所有项目、用户、权限 |
| 管理员(Admin) | 管理负责的项目,分配权限给普通用户 |
| 普通人员(Normal) | 查看项目信息,触发被授权的构建 |
| 第三方人员(Third) | 有限度地查看被授权的内容 |
4. 功能范围
4.1 核心功能模块
mindmap
root((RMDC))
Jenkins模块
组织/仓库/分支管理
分支级权限控制(DAC)
构建触发与追踪
镜像打包(DCU)
项目管理模块
项目信息CRUD
部署信息管理
授权管理(一级)
消息网关模块
MQTT消息中继
指令生命周期
同步/异步指令
边缘代理模块
K8S操作代理
主机操作代理
二级授权管理
监控日志模块
实时日志查看
监控数据采集
告警通知
用户权限模块
用户管理
角色管理
权限分配
审计模块
操作审计
日志查询
导出功能
4.2 第一期功能(MVP)
| 模块 | 功能 | 优先级 |
|---|---|---|
| Jenkins | 组织/仓库/分支查询 | P0 |
| Jenkins | 构建触发与状态追踪 | P0 |
| Jenkins | 分支级权限控制 | P0 |
| 项目管理 | 项目信息CRUD | P0 |
| 项目管理 | 授权密钥生成 | P0 |
| 用户权限 | RBAC权限管理 | P0 |
| 审计 | 基础操作审计 | P1 |
| DCU | 镜像下载压缩上传 | P1 |
4.3 第二期功能
| 模块 | 功能 | 优先级 |
|---|---|---|
| 消息网关 | MQTT消息中继 | P0 |
| 消息网关 | 指令生命周期管理 | P0 |
| 边缘代理 | K8S操作代理 | P0 |
| 边缘代理 | 主机操作代理 | P1 |
| 监控日志 | 实时日志查看 | P1 |
| 监控日志 | 监控数据展示 | P2 |
5. 用户故事
5.1 Jenkins构建
作为 开发人员
我需要 在RMDC平台触发指定分支的构建
以便于 快速验证代码变更,无需登录Jenkins
验收标准:
- 能够查看被授权的分支列表
- 能够触发分支构建
- 能够查看构建进度和结果
- 能够查看构建日志
5.2 权限管理
作为 管理员
我需要 为团队成员分配分支级构建权限
以便于 确保只有授权人员能够构建特定分支
验收标准:
- 能够按组织/仓库/分支粒度分配权限
- 权限支持继承(组织→仓库→分支)
- 能够一键复制其他用户的权限
5.3 项目管理
作为 超级管理员
我需要 创建和管理项目信息
以便于 统一维护各项目的基本信息和授权配置
验收标准:
- 能够创建项目并录入基本信息
- 能够管理项目的部署信息和中间件配置
- 能够生成项目授权密钥
- 能够导出项目信息
6. 非功能性需求
6.1 性能要求
| 指标 | 要求 |
|---|---|
| API响应时间 | P90 < 300ms |
| 构建状态同步延迟 | < 15s |
| MQTT消息传输延迟 | < 5s |
| 系统可用性 | 99.9% |
6.2 安全要求
| 类别 | 要求 |
|---|---|
| 认证 | JWT Token,有效期可配置 |
| 授权 | RBAC + 资源级ACL |
| 传输 | HTTPS/TLS加密 |
| 存储 | 敏感字段AES-256加密 |
| 审计 | 所有写操作记录审计日志 |
6.3 兼容性
- 前端: Chrome 80+, Edge 80+, Firefox 75+
- 后端: Go 1.21+
- 数据库: PostgreSQL 13+
7. 系统边界
7.1 与外部系统的关系
| 外部系统 | 交互方式 | 说明 |
|---|---|---|
| Jenkins | REST API | 构建管理、状态同步 |
| MinIO | S3 API | 镜像包存储 |
| MQTT Broker | MQTT协议 | 消息中继 |
| K8S | K8S API | 容器编排 |
7.2 不在范围内
- 源代码管理(由GitLab/GitHub负责)
- CI/CD编排逻辑(由Jenkins Pipeline负责)
- 容器镜像仓库(由Harbor负责)
- 基础设施管理(由IaaS平台负责)
8. 约束和假设
8.1 约束
- 必须兼容现有Jenkins配置,不修改Jenkinsfile
- 边缘项目通过公网MQTT通信,需考虑弱网环境
- 授权密钥离线部署,不通过网络传输
8.2 假设
- 所有边缘项目均部署在K8S环境
- 各项目有独立的K8S Namespace
- MQTT Broker可从公网访问
9. 版本历史
| 版本 | 日期 | 修改内容 |
|---|---|---|
| v1.0 | 2026-01-06 | 初始版本 |