# Deploy Ease Platform V2 设计文档 ## 一、系统概述 ### 1.1 系统目标 - 构建一个高度可扩展的自动化部署平台 - 支持灵活的工作流配置和审批流程 - 实现多环境、多租户的部署管理 - 提供完整的日志追踪和监控能力 ### 1.2 核心功能 1. 项目管理 - 项目集管理 - 项目配置 - Git仓库集成 - Jenkins集成 2. 环境管理 - 环境配置 - 环境克隆 - 环境变量管理 - 权限控制 3. 工作流引擎 - 流程设计 - 节点执行 - 状态管理 - 日志追踪 4. 审批系统 - 审批流程定义 - 审批规则配置 - 审批节点管理 - 审批记录追踪 5. 配置中心 - Nacos配置管理 - 配置同步 - 版本控制 - 变更追踪 ## 二、技术架构 ### 2.1 技术选型 - 后端框架:Spring Boot 3.2.0 - Java版本:JDK 21 - ORM框架:JPA + QueryDSL - 安全框架:Spring Security + JWT - 数据库:MySQL 8.0 - 缓存:Redis - 消息队列:RabbitMQ - 服务注册:Nacos ### 2.2 系统架构 1. 微服务架构 - 网关服务 - 认证服务 - 工作流引擎 - 审批服务 - 配置中心 2. 分层架构 - 接口层(Controller) - 业务层(Service) - 数据访问层(Repository) - 领域模型层(Domain) 3. 插件化架构 - 节点插件 - 审批插件 - 通知插件 ## 三、数据库设计 ### 3.1 核心表设计 {{ ... }} ### 3.2 工作流相关表 {{ ... }} ### 3.3 审批系统表 1. 审批定义表(sys_approval_definition) - 基础字段(id, tenant_id等) - 流程编码(code) - 流程名称(name) - 流程描述(description) - 业务类型(business_type) - 节点配置(node_config) - 表单配置(form_config) 2. 审批流程表(sys_approval_flow) - 基础字段 - 业务类型(business_type) - 业务键(business_key) - 模板编码(template_code) - 当前节点(current_node) - 流程状态(status) - 流程变量(variables) 3. 审批节点表(sys_approval_node) - 基础字段 - 流程ID(flow_id) - 节点编码(node_code) - 节点名称(node_name) - 节点类型(node_type) - 审批人类型(approver_type) - 审批人列表(approver_ids) - 节点状态(status) - 执行时间(start_time, end_time) 4. 审批意见表(sys_approval_comment) - 基础字段 - 流程ID(flow_id) - 节点ID(node_id) - 审批人(user_id) - 审批动作(action) - 审批意见(comment) - 附件信息(attachments) ## 四、审批系统设计 ### 4.1 审批系统架构 1. 核心组件 - 审批引擎(ApprovalEngine) - 审批规则解析器(RuleParser) - 审批节点执行器(NodeExecutor) - 审批事件总线(EventBus) 2. 扩展点 - 审批规则插件 - 审批节点类型 - 审批表单定义 - 审批通知方式 ### 4.2 审批流程设计 1. 流程定义 ```json { "nodes": [ { "id": "start", "type": "start", "next": "approve1" }, { "id": "approve1", "type": "approve", "config": { "approverType": "ROLE", "approverIds": ["ROLE_LEADER"], "counterSign": false }, "next": "approve2" }, { "id": "approve2", "type": "approve", "config": { "approverType": "USER", "approverIds": ["user1", "user2"], "counterSign": true }, "next": "end" }, { "id": "end", "type": "end" } ] } ``` 2. 审批规则 ```json { "rules": [ { "condition": { "field": "environment", "operator": "equals", "value": "PROD" }, "template": "PROD_DEPLOY_APPROVAL" }, { "condition": { "field": "changeType", "operator": "in", "value": ["CONFIG", "DATABASE"] }, "template": "CHANGE_APPROVAL" } ] } ``` ### 4.3 审批流程实现 1. 流程启动 - 规则匹配 - 创建流程实例 - 初始化节点 - 发送通知 2. 节点执行 - 权限校验 - 节点执行 - 状态更新 - 下一节点 3. 流程结束 - 结果处理 - 状态更新 - 通知相关人 ### 4.4 与工作流集成 1. 工作流定义扩展 ```json { "nodes": [ { "id": "deploy", "type": "deploy", "config": { "approval": { "enabled": true, "template": "DEPLOY_APPROVAL" } } } ] } ``` 2. 节点执行器实现 ```java public class DeployNodeExecutor implements NodeExecutor { @Override public void execute(NodeInstance node) { // 1. 检查是否需要审批 if (needApproval(node)) { // 2. 创建审批流程 createApprovalFlow(node); // 3. 暂停节点执行 node.suspend(); return; } // 4. 执行部署 executeDeploy(node); } } ``` ## 五、系统特性 ### 5.1 多租户支持 1. 数据隔离 - 租户ID字段 - 查询过滤 - 权限控制 2. 资源隔离 - 独立配置 - 独立存储 - 独立缓存 ### 5.2 插件化设计 1. 节点插件 - Git操作 - Jenkins构建 - 配置同步 - 数据库变更 2. 审批插件 - 角色审批 - 用户审批 - 条件审批 - 自动审批 ### 5.3 安全特性 1. 认证授权 - JWT认证 - RBAC权限 - 租户隔离 2. 数据安全 - 敏感信息加密 - 操作审计 - 数据备份 ### 5.4 可观测性 1. 日志管理 - 操作日志 - 审计日志 - 性能日志 2. 监控告警 - 系统监控 - 业务监控 - 异常告警 ## 六、部署架构 ### 6.1 系统部署 1. 容器化部署 - Docker镜像 - K8s编排 - 服务网格 2. 高可用设计 - 多副本 - 负载均衡 - 故障转移 ### 6.2 数据存储 1. 数据库 - 主从复制 - 数据备份 - 分库分表 2. 文件存储 - 分布式存储 - 文件备份 - 访问控制 ## 七、后续规划 ### 7.1 功能增强 1. 审批功能 - 移动端审批 - 审批委托 - 审批催办 2. 部署功能 - 灰度发布 - 回滚机制 - 批量部署 ### 7.2 性能优化 1. 系统性能 - 缓存优化 - SQL优化 - 并发处理 2. 用户体验 - 响应速度 - 操作便捷 - 界面优化