6.6 KiB
6.6 KiB
Deploy Ease Platform V2 设计文档
一、系统概述
1.1 系统目标
- 构建一个高度可扩展的自动化部署平台
- 支持灵活的工作流配置和审批流程
- 实现多环境、多租户的部署管理
- 提供完整的日志追踪和监控能力
1.2 核心功能
-
项目管理
- 项目集管理
- 项目配置
- Git仓库集成
- Jenkins集成
-
环境管理
- 环境配置
- 环境克隆
- 环境变量管理
- 权限控制
-
工作流引擎
- 流程设计
- 节点执行
- 状态管理
- 日志追踪
-
审批系统
- 审批流程定义
- 审批规则配置
- 审批节点管理
- 审批记录追踪
-
配置中心
- 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 系统架构
-
微服务架构
- 网关服务
- 认证服务
- 工作流引擎
- 审批服务
- 配置中心
-
分层架构
- 接口层(Controller)
- 业务层(Service)
- 数据访问层(Repository)
- 领域模型层(Domain)
-
插件化架构
- 节点插件
- 审批插件
- 通知插件
三、数据库设计
3.1 核心表设计
{{ ... }}
3.2 工作流相关表
{{ ... }}
3.3 审批系统表
-
审批定义表(sys_approval_definition)
- 基础字段(id, tenant_id等)
- 流程编码(code)
- 流程名称(name)
- 流程描述(description)
- 业务类型(business_type)
- 节点配置(node_config)
- 表单配置(form_config)
-
审批流程表(sys_approval_flow)
- 基础字段
- 业务类型(business_type)
- 业务键(business_key)
- 模板编码(template_code)
- 当前节点(current_node)
- 流程状态(status)
- 流程变量(variables)
-
审批节点表(sys_approval_node)
- 基础字段
- 流程ID(flow_id)
- 节点编码(node_code)
- 节点名称(node_name)
- 节点类型(node_type)
- 审批人类型(approver_type)
- 审批人列表(approver_ids)
- 节点状态(status)
- 执行时间(start_time, end_time)
-
审批意见表(sys_approval_comment)
- 基础字段
- 流程ID(flow_id)
- 节点ID(node_id)
- 审批人(user_id)
- 审批动作(action)
- 审批意见(comment)
- 附件信息(attachments)
四、审批系统设计
4.1 审批系统架构
-
核心组件
- 审批引擎(ApprovalEngine)
- 审批规则解析器(RuleParser)
- 审批节点执行器(NodeExecutor)
- 审批事件总线(EventBus)
-
扩展点
- 审批规则插件
- 审批节点类型
- 审批表单定义
- 审批通知方式
4.2 审批流程设计
-
流程定义
{ "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" } ] } -
审批规则
{ "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 审批流程实现
-
流程启动
- 规则匹配
- 创建流程实例
- 初始化节点
- 发送通知
-
节点执行
- 权限校验
- 节点执行
- 状态更新
- 下一节点
-
流程结束
- 结果处理
- 状态更新
- 通知相关人
4.4 与工作流集成
-
工作流定义扩展
{ "nodes": [ { "id": "deploy", "type": "deploy", "config": { "approval": { "enabled": true, "template": "DEPLOY_APPROVAL" } } } ] } -
节点执行器实现
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 多租户支持
-
数据隔离
- 租户ID字段
- 查询过滤
- 权限控制
-
资源隔离
- 独立配置
- 独立存储
- 独立缓存
5.2 插件化设计
-
节点插件
- Git操作
- Jenkins构建
- 配置同步
- 数据库变更
-
审批插件
- 角色审批
- 用户审批
- 条件审批
- 自动审批
5.3 安全特性
-
认证授权
- JWT认证
- RBAC权限
- 租户隔离
-
数据安全
- 敏感信息加密
- 操作审计
- 数据备份
5.4 可观测性
-
日志管理
- 操作日志
- 审计日志
- 性能日志
-
监控告警
- 系统监控
- 业务监控
- 异常告警
六、部署架构
6.1 系统部署
-
容器化部署
- Docker镜像
- K8s编排
- 服务网格
-
高可用设计
- 多副本
- 负载均衡
- 故障转移
6.2 数据存储
-
数据库
- 主从复制
- 数据备份
- 分库分表
-
文件存储
- 分布式存储
- 文件备份
- 访问控制
七、后续规划
7.1 功能增强
-
审批功能
- 移动端审批
- 审批委托
- 审批催办
-
部署功能
- 灰度发布
- 回滚机制
- 批量部署
7.2 性能优化
-
系统性能
- 缓存优化
- SQL优化
- 并发处理
-
用户体验
- 响应速度
- 操作便捷
- 界面优化