.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