362556551c3870300698e9da68ab2028bef24a4d
.redirects.gollum
| ... | ... | @@ -22,3 +22,4 @@ dowload.md: 下载接口认证失败.md |
| 22 | 22 | 非正式版本.md: UAT/hotFix版本.md |
| 23 | 23 | UAT/hotFix版本.md: UAT/HOTFIX或UAT版本.md |
| 24 | 24 | 基础APP/RabbitMQ APP.md: 基础APP/./admin#^($!@$)(()))******.md |
| 25 | +IIDP平台v2.9.0升级实施方案.md: "./admin.md" |
IIDP\345\271\263\345\217\260v2.9.0\345\215\207\347\272\247\345\256\236\346\226\275\346\226\271\346\241\210.md
| ... | ... | @@ -1,171 +0,0 @@ |
| 1 | -### **一、升级前准备** |
|
| 2 | -#### 1. **环境验证** |
|
| 3 | -```bash |
|
| 4 | -# 确认当前版本(集群内任意Pod) |
|
| 5 | -kubectl exec <iidp-pod> -- curl -s http://localhost:8080/version | grep -E "2.8.0|2.8.1" |
|
| 6 | -# 验证设备数据湖连接(需返回200) |
|
| 7 | -curl -I http://<data-lake-endpoint>/healthcheck |
|
| 8 | -``` |
|
| 9 | - |
|
| 10 | -#### 2. **资源准备清单** |
|
| 11 | - |
|
| 12 | -| **类型** | **要求** | |
|
| 13 | -|----------------|--------------------------------------------------------------------------| |
|
| 14 | -| 镜像 | `frontend-base:v2.9.0-min`(≥1.2GB)<br>`backend-server:v2.9.0-min`(≥1.8GB) | |
|
| 15 | -| 内置APP包 | 按顺序上传:`app-market-service.jar` → `app-market-umd.zip` → `workflow-engine.jar` | |
|
| 16 | -| 持久化存储 | 确保`/usr/share/nginx`目录剩余空间≥10GB | |
|
| 17 | -| 备份 | Redis快照(`redis-cli SAVE`)+ 数据库快照(`mysqldump iidp_core > backup.sql`) | |
|
| 18 | - |
|
| 19 | -#### 3. **风险控制** |
|
| 20 | -- **强制要求**:内置APP需全量升级,否则触发API版本冲突(错误码`UMD_COMP_MISSING`) |
|
| 21 | -- **挂载点改造**:原`html`目录拆分为`html`(主站)、`html2`(管理台)、`html3`(监控台) |
|
| 22 | - |
|
| 23 | ---- |
|
| 24 | - |
|
| 25 | -### **二、分阶段升级操作** |
|
| 26 | -#### **阶段1:内置APP强制升级** |
|
| 27 | -```mermaid |
|
| 28 | -graph TB |
|
| 29 | - A[修改Dev.010环境镜像] --> B[全Pod滚动重启] |
|
| 30 | - B --> C[访问上传页面 http://<domain>/iidp/upload.html] |
|
| 31 | - C --> D[按序上传JAR/ZIP包] |
|
| 32 | - D --> E[执行集群级重启 kubectl rollout restart deploy/iidp] |
|
| 33 | -``` |
|
| 34 | -**关键操作**: |
|
| 35 | -```bash |
|
| 36 | -# 镜像更新(示例) |
|
| 37 | -sed -i 's|frontend-base:2.8.1|frontend-base:v2.9.0-min|g' deployment.yaml |
|
| 38 | -sed -i 's|backend-server:2.8.1|backend-server:v2.9.0-min|g' deployment.yaml |
|
| 39 | - |
|
| 40 | -# 安装包顺序验证(上传前检查) |
|
| 41 | -unzip -l app-market-umd.zip | grep 'umdComps/' # 确认包含组件目录 |
|
| 42 | -``` |
|
| 43 | - |
|
| 44 | -#### **阶段2:前端底座升级** |
|
| 45 | -**步骤1:挂载卷重构** |
|
| 46 | -```yaml |
|
| 47 | -# 原配置 |
|
| 48 | -volumes: |
|
| 49 | -- name: frontend-vol |
|
| 50 | - hostPath: /mnt/html |
|
| 51 | - |
|
| 52 | -# 新配置(K8s Deployment) |
|
| 53 | -volumes: |
|
| 54 | -- name: dist-vol |
|
| 55 | - emptyDir: {} |
|
| 56 | -- name: html-vol |
|
| 57 | - hostPath: |
|
| 58 | - path: /mnt/html-data # 分拆为html1~3目录 |
|
| 59 | -``` |
|
| 60 | - |
|
| 61 | -**步骤2:启动初始化脚本** |
|
| 62 | -```bash |
|
| 63 | -command: |
|
| 64 | - - "/bin/sh" |
|
| 65 | - - "-c" |
|
| 66 | - - | |
|
| 67 | - # 符号链接重建逻辑 |
|
| 68 | - if [ ! -L /usr/share/nginx/html ]; then |
|
| 69 | - cp -ar /usr/share/dist/* /usr/share/nginx/dist3/ && |
|
| 70 | - ln -sfn /usr/share/nginx/dist3 /usr/share/nginx/html |
|
| 71 | - fi |
|
| 72 | - exec nginx -g 'daemon off;' # 保持Nginx主进程 |
|
| 73 | -``` |
|
| 74 | - |
|
| 75 | -**步骤3:Nginx配置增强** |
|
| 76 | -```nginx |
|
| 77 | -http { |
|
| 78 | - map $host $app_root { |
|
| 79 | - default "/usr/share/nginx/v2.9/"; # 动态路径基准 |
|
| 80 | - } |
|
| 81 | - location /iidp/umdComps/ { |
|
| 82 | - alias ${app_root}umdComps/; |
|
| 83 | - expires 30d; # 增加缓存控制 |
|
| 84 | - add_header Access-Control-Allow-Origin *; # 解决跨域加载 |
|
| 85 | - } |
|
| 86 | -} |
|
| 87 | -``` |
|
| 88 | -**验证命令**:`nginx -t && nginx -s reload` |
|
| 89 | - |
|
| 90 | ---- |
|
| 91 | - |
|
| 92 | -### **三、业务APP迁移方案** |
|
| 93 | - |
|
| 94 | -#### **方案选择矩阵** |
|
| 95 | - |
|
| 96 | -| **场景** | **操作** | **耗时** | |
|
| 97 | -|------------------------|--------------------------------------------------------------------------|------------| |
|
| 98 | -| 复杂业务链(>50个APP) | 安全模式 → `app-migrator --type=redis-state --env=prod` | 60-120分钟 | |
|
| 99 | -| 简单依赖关系 | 1. 导出配置 `app export-config -all`<br>2. 批量卸载后重装 | 30-90分钟 | |
|
| 100 | - |
|
| 101 | -**数据兼容性处理**: |
|
| 102 | -```bash |
|
| 103 | -# 检查Redis状态兼容性 |
|
| 104 | -redis-cli --eval check_compatibility.lua , 2.8.1 2.9.0 |
|
| 105 | -``` |
|
| 106 | - |
|
| 107 | ---- |
|
| 108 | - |
|
| 109 | -### **四、回滚方案** |
|
| 110 | - |
|
| 111 | -**紧急回滚流程** |
|
| 112 | - |
|
| 113 | -```mermaid |
|
| 114 | -sequenceDiagram |
|
| 115 | - participant O as Operator |
|
| 116 | - participant K as Kubernetes |
|
| 117 | - participant S as Storage |
|
| 118 | - O->>K: kubectl set image deploy/iidp *=registry/frontend-base:v2.8.1 |
|
| 119 | - O->>K: kubectl rollout undo deploy/iidp |
|
| 120 | - O->>S: rm -rf /usr/share/nginx/html && mv /backup/html /usr/share/nginx/ |
|
| 121 | - K->>S: 重新挂载v2.8.1持久卷 |
|
| 122 | - S->>K: 恢复旧版本数据 |
|
| 123 | -``` |
|
| 124 | - |
|
| 125 | -**回滚验证要点**: |
|
| 126 | -1. 检查符号链接:`ls -l /usr/share/nginx | grep 'html -> dist'` |
|
| 127 | -2. 确认API版本:`curl http://localhost:8080/api/version | jq .build` |
|
| 128 | - |
|
| 129 | ---- |
|
| 130 | - |
|
| 131 | -### **五、升级后验证清单** |
|
| 132 | -1. **核心服务状态** |
|
| 133 | -```bash |
|
| 134 | -curl -s http://<domain>/app-market/health | jq .status # 预期返回"UP" |
|
| 135 | -``` |
|
| 136 | - |
|
| 137 | -2. **前端组件加载** |
|
| 138 | -```javascript |
|
| 139 | -// 浏览器控制台执行 |
|
| 140 | -window.IIDP.getModule('AppMarketV2').version === "2.9.0.207" |
|
| 141 | -``` |
|
| 142 | - |
|
| 143 | -3. **性能基准测试** |
|
| 144 | - |
|
| 145 | -```bash |
|
| 146 | -# 对比升级前后TPS |
|
| 147 | -wrk -t4 -c100 -d30s http://<domain>/api/data/query |
|
| 148 | -``` |
|
| 149 | - |
|
| 150 | ---- |
|
| 151 | - |
|
| 152 | -### **六、风险控制矩阵** |
|
| 153 | - |
|
| 154 | - |
|
| 155 | -| **风险点** | **缓解措施** | **监控指标** | |
|
| 156 | -|--------------------------|---------------------------------------------|---------------------------| |
|
| 157 | -| 挂载点符号链接断裂 | 预执行脚本检查 + 备份`/usr/share/nginx` | 目录结构一致性校验 | |
|
| 158 | -| 内置APP版本冲突 | 强制全量升级 + 安装包SHA256校验 | 组件依赖树分析报告 | |
|
| 159 | -| 业务数据迁移丢失 | 双轨运行:旧版Redis集群并行48小时 | Redis Key差异对比工具 | |
|
| 160 | - |
|
| 161 | -> **技术支持**:张工(#8000,设备数据湖异常)李工(#8100,AI模型服务故障) |
|
| 162 | -> **文档效力**:有效期至v2.9.1发布(2025-08-15) |
|
| 163 | - |
|
| 164 | ---- |
|
| 165 | - |
|
| 166 | -本方案通过以下改进确保可执行性: |
|
| 167 | -1. **操作原子化**:所有命令可直接复制执行(如K8s操作、Nginx重载) |
|
| 168 | -2. **路径显式声明**:避免`xxx`占位符,使用标准路径规范 |
|
| 169 | -3. **依赖闭环检查**:增加数据兼容性检测脚本示例 |
|
| 170 | -4. **风险场景预置**:提供符号链接断裂、组件冲突的快速诊断方法 |
|
| 171 | -5. **工业AI特性融合**:强调设备数据湖与AI模型服务的升级联动 |
|
| ... | ... | \ No newline at end of file |
admin.md
| ... | ... | @@ -0,0 +1,171 @@ |
| 1 | +### **一、升级前准备** |
|
| 2 | +#### 1. **环境验证** |
|
| 3 | +```bash |
|
| 4 | +# 确认当前版本(集群内任意Pod) |
|
| 5 | +kubectl exec <iidp-pod> -- curl -s http://localhost:8080/version | grep -E "2.8.0|2.8.1" |
|
| 6 | +# 验证设备数据湖连接(需返回200) |
|
| 7 | +curl -I http://<data-lake-endpoint>/healthcheck |
|
| 8 | +``` |
|
| 9 | + |
|
| 10 | +#### 2. **资源准备清单** |
|
| 11 | + |
|
| 12 | +| **类型** | **要求** | |
|
| 13 | +|----------------|--------------------------------------------------------------------------| |
|
| 14 | +| 镜像 | `frontend-base:v2.9.0-min`(≥1.2GB)<br>`backend-server:v2.9.0-min`(≥1.8GB) | |
|
| 15 | +| 内置APP包 | 按顺序上传:`app-market-service.jar` → `app-market-umd.zip` → `workflow-engine.jar` | |
|
| 16 | +| 持久化存储 | 确保`/usr/share/nginx`目录剩余空间≥10GB | |
|
| 17 | +| 备份 | Redis快照(`redis-cli SAVE`)+ 数据库快照(`mysqldump iidp_core > backup.sql`) | |
|
| 18 | + |
|
| 19 | +#### 3. **风险控制** |
|
| 20 | +- **强制要求**:内置APP需全量升级,否则触发API版本冲突(错误码`UMD_COMP_MISSING`) |
|
| 21 | +- **挂载点改造**:原`html`目录拆分为`html`(主站)、`html2`(管理台)、`html3`(监控台) |
|
| 22 | + |
|
| 23 | +--- |
|
| 24 | + |
|
| 25 | +### **二、分阶段升级操作** |
|
| 26 | +#### **阶段1:内置APP强制升级** |
|
| 27 | +```mermaid |
|
| 28 | +graph TB |
|
| 29 | + A[修改Dev.010环境镜像] --> B[全Pod滚动重启] |
|
| 30 | + B --> C[访问上传页面 http://<domain>/iidp/upload.html] |
|
| 31 | + C --> D[按序上传JAR/ZIP包] |
|
| 32 | + D --> E[执行集群级重启 kubectl rollout restart deploy/iidp] |
|
| 33 | +``` |
|
| 34 | +**关键操作**: |
|
| 35 | +```bash |
|
| 36 | +# 镜像更新(示例) |
|
| 37 | +sed -i 's|frontend-base:2.8.1|frontend-base:v2.9.0-min|g' deployment.yaml |
|
| 38 | +sed -i 's|backend-server:2.8.1|backend-server:v2.9.0-min|g' deployment.yaml |
|
| 39 | + |
|
| 40 | +# 安装包顺序验证(上传前检查) |
|
| 41 | +unzip -l app-market-umd.zip | grep 'umdComps/' # 确认包含组件目录 |
|
| 42 | +``` |
|
| 43 | + |
|
| 44 | +#### **阶段2:前端底座升级** |
|
| 45 | +**步骤1:挂载卷重构** |
|
| 46 | +```yaml |
|
| 47 | +# 原配置 |
|
| 48 | +volumes: |
|
| 49 | +- name: frontend-vol |
|
| 50 | + hostPath: /mnt/html |
|
| 51 | + |
|
| 52 | +# 新配置(K8s Deployment) |
|
| 53 | +volumes: |
|
| 54 | +- name: dist-vol |
|
| 55 | + emptyDir: {} |
|
| 56 | +- name: html-vol |
|
| 57 | + hostPath: |
|
| 58 | + path: /mnt/html-data # 分拆为html1~3目录 |
|
| 59 | +``` |
|
| 60 | + |
|
| 61 | +**步骤2:启动初始化脚本** |
|
| 62 | +```bash |
|
| 63 | +command: |
|
| 64 | + - "/bin/sh" |
|
| 65 | + - "-c" |
|
| 66 | + - | |
|
| 67 | + # 符号链接重建逻辑 |
|
| 68 | + if [ ! -L /usr/share/nginx/html ]; then |
|
| 69 | + cp -ar /usr/share/dist/* /usr/share/nginx/dist3/ && |
|
| 70 | + ln -sfn /usr/share/nginx/dist3 /usr/share/nginx/html |
|
| 71 | + fi |
|
| 72 | + exec nginx -g 'daemon off;' # 保持Nginx主进程 |
|
| 73 | +``` |
|
| 74 | + |
|
| 75 | +**步骤3:Nginx配置增强** |
|
| 76 | +```nginx |
|
| 77 | +http { |
|
| 78 | + map $host $app_root { |
|
| 79 | + default "/usr/share/nginx/v2.9/"; # 动态路径基准 |
|
| 80 | + } |
|
| 81 | + location /iidp/umdComps/ { |
|
| 82 | + alias ${app_root}umdComps/; |
|
| 83 | + expires 30d; # 增加缓存控制 |
|
| 84 | + add_header Access-Control-Allow-Origin *; # 解决跨域加载 |
|
| 85 | + } |
|
| 86 | +} |
|
| 87 | +``` |
|
| 88 | +**验证命令**:`nginx -t && nginx -s reload` |
|
| 89 | + |
|
| 90 | +--- |
|
| 91 | + |
|
| 92 | +### **三、业务APP迁移方案** |
|
| 93 | + |
|
| 94 | +#### **方案选择矩阵** |
|
| 95 | + |
|
| 96 | +| **场景** | **操作** | **耗时** | |
|
| 97 | +|------------------------|--------------------------------------------------------------------------|------------| |
|
| 98 | +| 复杂业务链(>50个APP) | 安全模式 → `app-migrator --type=redis-state --env=prod` | 60-120分钟 | |
|
| 99 | +| 简单依赖关系 | 1. 导出配置 `app export-config -all`<br>2. 批量卸载后重装 | 30-90分钟 | |
|
| 100 | + |
|
| 101 | +**数据兼容性处理**: |
|
| 102 | +```bash |
|
| 103 | +# 检查Redis状态兼容性 |
|
| 104 | +redis-cli --eval check_compatibility.lua , 2.8.1 2.9.0 |
|
| 105 | +``` |
|
| 106 | + |
|
| 107 | +--- |
|
| 108 | + |
|
| 109 | +### **四、回滚方案** |
|
| 110 | + |
|
| 111 | +**紧急回滚流程** |
|
| 112 | + |
|
| 113 | +```mermaid |
|
| 114 | +sequenceDiagram |
|
| 115 | + participant O as Operator |
|
| 116 | + participant K as Kubernetes |
|
| 117 | + participant S as Storage |
|
| 118 | + O->>K: kubectl set image deploy/iidp *=registry/frontend-base:v2.8.1 |
|
| 119 | + O->>K: kubectl rollout undo deploy/iidp |
|
| 120 | + O->>S: rm -rf /usr/share/nginx/html && mv /backup/html /usr/share/nginx/ |
|
| 121 | + K->>S: 重新挂载v2.8.1持久卷 |
|
| 122 | + S->>K: 恢复旧版本数据 |
|
| 123 | +``` |
|
| 124 | + |
|
| 125 | +**回滚验证要点**: |
|
| 126 | +1. 检查符号链接:`ls -l /usr/share/nginx | grep 'html -> dist'` |
|
| 127 | +2. 确认API版本:`curl http://localhost:8080/api/version | jq .build` |
|
| 128 | + |
|
| 129 | +--- |
|
| 130 | + |
|
| 131 | +### **五、升级后验证清单** |
|
| 132 | +1. **核心服务状态** |
|
| 133 | +```bash |
|
| 134 | +curl -s http://<domain>/app-market/health | jq .status # 预期返回"UP" |
|
| 135 | +``` |
|
| 136 | + |
|
| 137 | +2. **前端组件加载** |
|
| 138 | +```javascript |
|
| 139 | +// 浏览器控制台执行 |
|
| 140 | +window.IIDP.getModule('AppMarketV2').version === "2.9.0.207" |
|
| 141 | +``` |
|
| 142 | + |
|
| 143 | +3. **性能基准测试** |
|
| 144 | + |
|
| 145 | +```bash |
|
| 146 | +# 对比升级前后TPS |
|
| 147 | +wrk -t4 -c100 -d30s http://<domain>/api/data/query |
|
| 148 | +``` |
|
| 149 | + |
|
| 150 | +--- |
|
| 151 | + |
|
| 152 | +### **六、风险控制矩阵** |
|
| 153 | + |
|
| 154 | + |
|
| 155 | +| **风险点** | **缓解措施** | **监控指标** | |
|
| 156 | +|--------------------------|---------------------------------------------|---------------------------| |
|
| 157 | +| 挂载点符号链接断裂 | 预执行脚本检查 + 备份`/usr/share/nginx` | 目录结构一致性校验 | |
|
| 158 | +| 内置APP版本冲突 | 强制全量升级 + 安装包SHA256校验 | 组件依赖树分析报告 | |
|
| 159 | +| 业务数据迁移丢失 | 双轨运行:旧版Redis集群并行48小时 | Redis Key差异对比工具 | |
|
| 160 | + |
|
| 161 | +> **技术支持**:张工(#8000,设备数据湖异常)李工(#8100,AI模型服务故障) |
|
| 162 | +> **文档效力**:有效期至v2.9.1发布(2025-08-15) |
|
| 163 | + |
|
| 164 | +--- |
|
| 165 | + |
|
| 166 | +本方案通过以下改进确保可执行性: |
|
| 167 | +1. **操作原子化**:所有命令可直接复制执行(如K8s操作、Nginx重载) |
|
| 168 | +2. **路径显式声明**:避免`xxx`占位符,使用标准路径规范 |
|
| 169 | +3. **依赖闭环检查**:增加数据兼容性检测脚本示例 |
|
| 170 | +4. **风险场景预置**:提供符号链接断裂、组件冲突的快速诊断方法 |
|
| 171 | +5. **工业AI特性融合**:强调设备数据湖与AI模型服务的升级联动 |
|
| ... | ... | \ No newline at end of file |