# 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 核心功能模块 ```mermaid 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 约束 1. 必须兼容现有Jenkins配置,不修改Jenkinsfile 2. 边缘项目通过公网MQTT通信,需考虑弱网环境 3. 授权密钥离线部署,不通过网络传输 ### 8.2 假设 1. 所有边缘项目均部署在K8S环境 2. 各项目有独立的K8S Namespace 3. MQTT Broker可从公网访问 --- ## 9. 版本历史 | 版本 | 日期 | 修改内容 | |------|------|----------| | v1.0 | 2026-01-06 | 初始版本 |