可正常启动

This commit is contained in:
dengqichen 2024-12-03 18:18:31 +08:00
parent c39db5a498
commit baffc3abcb
3 changed files with 349 additions and 0 deletions

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,347 @@
# 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
- 基础字段
- 流程IDflow_id
- 节点编码node_code
- 节点名称node_name
- 节点类型node_type
- 审批人类型approver_type
- 审批人列表approver_ids
- 节点状态status
- 执行时间start_time, end_time
4. 审批意见表sys_approval_comment
- 基础字段
- 流程IDflow_id
- 节点IDnode_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. 用户体验
- 响应速度
- 操作便捷
- 界面优化

View File

@ -0,0 +1 @@