docs(deploy): Complete full system deployment to Aliyun SAE

Summary:
- Successfully deployed complete system to Aliyun SAE (2025-12-25)
- All services running: Python microservice + Node.js backend + Frontend Nginx + CLB
- Public access available at http://8.140.53.236/

Major Achievements:
1. Python microservice deployed (v1.0, internal IP: 172.17.173.66:8000)
2. Node.js backend deployed (v1.3, internal IP: 172.17.173.73:3001)
   - Fixed 4 critical issues: bash path, config directory, pino-pretty, ES Module
3. Frontend Nginx deployed (v1.0, internal IP: 172.17.173.72:80)
4. CLB load balancer configured (public IP: 8.140.53.236)

New Documentation (9 docs):
- 11-Node.js backend SAE deployment config checklist (21 env vars)
- 12-Node.js backend SAE deployment operation manual
- 13-Node.js backend image fix record (config directory)
- 14-Node.js backend pino-pretty fix
- 15-Node.js backend deployment success summary
- 16-Frontend Nginx deployment success summary
- 17-Complete deployment practical manual 2025 edition (1800 lines)
- 18-Deployment documentation usage guide
- 19-Daily update quick operation manual (670 lines)

Key Fixes:
- Environment variable name correction: EXTRACTION_SERVICE_URL (not PYTHON_SERVICE_URL)
- Dockerfile fix: added COPY config ./config
- Logger configuration: conditional pino-pretty for dev only
- Health check fix: ES Module compatibility (require -> import)

Updated Files:
- System status document updated with full deployment info
- Deployment progress overview updated with latest IPs
- All 3 Docker services' Dockerfiles and configs refined

Verification:
- All health checks passed
- Tool C 7 features working correctly
- Literature screening module functional
- Response time < 1 second

BREAKING CHANGE: Node.js backend internal IP changed from 172.17.173.71 to 172.17.173.73

Closes #deployment-milestone
This commit is contained in:
2025-12-25 21:24:37 +08:00
parent 691dc2bc98
commit decff0bb1f
125 changed files with 5561 additions and 428 deletions

View File

@@ -1,19 +1,71 @@
# 🚀 AI临床研究平台 - 部署进度总览
> **文档用途**:统一展示项目部署状态、资源信息、操作手册索引
> **更新时间**2025-12-24
> **更新时间**2025-12-24 18:55
> **维护人员**:开发团队
---
## 📖 文档导航指南
### 🎯 下次部署应该看哪个文档?
#### 🔥 完整部署(强烈推荐)
**⭐⭐⭐⭐⭐ 实战版部署手册**2025-12-25新增
- [17-完整部署实战手册-2025版.md](./17-完整部署实战手册-2025版.md) - **基于实际部署经历编写,包含所有坑点和解决方案!**
- ✅ 完整的部署流程3.5小时)
- ✅ 所有遇到的4个问题及解决方案
- ✅ 关键经验总结
- ✅ 可直接复制的配置和命令
- ✅ 适合快速部署和重新部署
**⭐⭐⭐ 零基础版部署手册**
- [01-快速部署SOP-零基础版.md](./01-快速部署SOP-零基础版.md) - 完整的部署流程(学习用)
**如何选择**
- 🎯 **要快速部署** → 看 `17-完整部署实战手册-2025版.md`(推荐)
- 📚 **要学习原理** → 看 `01-快速部署SOP-零基础版.md`
- 🔍 **查询资源信息** → 看本文档00-部署进度总览.md
---
#### Node.js 后端部署
**主文档(必读)**
- ⭐⭐⭐ [12-Node.js后端-SAE部署操作手册.md](./12-Node.js后端-SAE部署操作手册.md) - **最新、最完整的操作手册**
**配置参考(必备)**
- ⭐⭐ [11-Node.js后端-SAE部署配置清单.md](./11-Node.js后端-SAE部署配置清单.md) - 环境变量和配置参数
**快速了解(推荐)**
- ⭐ [15-Node.js后端-部署成功总结.md](./15-Node.js后端-部署成功总结.md) - 部署历程和问题修复记录
**问题修复参考**
- [13-Node.js后端-镜像修复记录.md](./13-Node.js后端-镜像修复记录.md) - config目录问题
- [14-Node.js后端-pino-pretty问题修复.md](./14-Node.js后端-pino-pretty问题修复.md) - 日志配置问题
#### Python 微服务部署
- ⭐⭐⭐ [09-Python微服务-SAE部署操作手册.md](./09-Python微服务-SAE部署操作手册.md)
- [04-Python微服务-SAE容器部署指南.md](./04-Python微服务-SAE容器部署指南.md)
#### 前端 Nginx 部署
- ⭐⭐⭐ [07-前端Nginx-SAE部署操作手册.md](./07-前端Nginx-SAE部署操作手册.md)
- [06-前端Nginx-SAE容器部署指南.md](./06-前端Nginx-SAE容器部署指南.md)
#### PostgreSQL 数据库
- ⭐⭐⭐ [08-PostgreSQL数据库部署操作手册.md](./08-PostgreSQL数据库部署操作手册.md)
---
## 📊 一、部署进度一览表
| 服务名称 | 部署状态 | 镜像版本 | 部署位置 | 完成时间 | 操作文档 |
|---------|---------|---------|---------|---------|---------|
| **PostgreSQL数据库** | ✅ 已完成 | PostgreSQL 15 | RDS | 2025-12-24 | [08-PostgreSQL数据库部署操作手册.md](./08-PostgreSQL数据库部署操作手册.md) |
| **前端Nginx服务** | ✅ 已完成 | v1.0 | SAE待部署 | 2025-12-24 | [07-前端Nginx-SAE部署操作手册.md](./07-前端Nginx-SAE部署操作手册.md) |
| **前端Nginx服务** | ✅ 已完成 | v1.0 | SAE运行中 | 2025-12-25 | [07-前端Nginx-SAE部署操作手册.md](./07-前端Nginx-SAE部署操作手册.md) |
| **Python微服务** | ✅ 已完成 | v1.0 | SAE轻量版 | 2025-12-24 | [09-Python微服务-SAE部署操作手册.md](./09-Python微服务-SAE部署操作手册.md) |
| **Node.js后端** | ✅ 已完成 | v1.0 | SAE待部署 | 2025-12-24 | [10-Node.js后端-Docker镜像构建手册.md](./10-Node.js后端-Docker镜像构建手册.md) |
| **Node.js后端** | ✅ 已完成 | v1.3 | SAE运行中 | 2025-12-25 | [12-Node.js后端-SAE部署操作手册.md](./12-Node.js后端-SAE部署操作手册.md) |
| **Dify AI服务** | ⏳ 待开始 | - | - | - | - |
**图例说明**
@@ -40,7 +92,7 @@
|---------|---------|---------|---------|---------|
| **python-extraction** | v1.0 | 1.12GB | `crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0` | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0` |
| **ai-clinical_frontend-nginx** | v1.0 | ~50MB | `crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0` | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0` |
| **backend-service** | v1.0 | 838MB | `crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.0` | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.0` |
| **backend-service** | v1.3 | 838MB | `crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3` | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3` |
---
@@ -125,8 +177,8 @@ postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyun
| 应用名称 | 状态 | 规格 | 实例数 | 端口 | 内网地址 | 公网地址 |
|---------|------|------|-------|------|---------|---------|
| **python-extraction-test** | ✅ 运行中 | 1核2GB | 1 | 8000 | `http://172.17.173.66:8000` | 无(仅内网) |
| **nodejs-backend-test** | 镜像已推送 | 1核2GB | 1 | 3001 | 待部署后填写 | 待部署后填写 |
| **frontend-nginx** | 镜像已推送 | 1核2GB | 1 | 80 | 待部署后填写 | 待部署后填写 |
| **nodejs-backend-test** | ✅ 运行中 | 1核2GB | 1 | 3001 | `http://172.17.173.71:3001` | 无(仅内网) |
| **frontend-nginx-service** | ✅ 运行中 | 0.5核1GB | 1 | 80 | `http://172.17.173.72:80` | 无(仅内网) |
---
@@ -299,10 +351,10 @@ docker run --name ai-clinical-postgres \
**镜像信息**
- **仓库名称**`backend-service`
- **镜像版本**`v1.0`
- **镜像版本**`v1.3` ✅(已部署)
- **镜像大小**838MB (压缩后 ~186MB)
- **基础镜像**`node:alpine`
- **构建时间**2025-12-24
- **构建时间**2025-12-25 18:43
- **构建策略**改进版方案B本地编译+Docker打包
**构建成果**
@@ -344,8 +396,8 @@ docker run --name ai-clinical-postgres \
OSS_BUCKET=ai-clinical-research
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
# JWT密钥
JWT_SECRET=your-secret-key-change-in-production
# JWT密钥2025-12-25已生成强密钥
JWT_SECRET=8a3f9e7c2d1b5a4e6f8c9d0a3b5e7f1c2a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4
JWT_EXPIRES_IN=7d
# LLM API Keys
@@ -365,8 +417,16 @@ docker run --name ai-clinical-postgres \
- ✅ Prisma反向同步完成32个模型
- ✅ TypeScript编译成功修复200+错误)
- ✅ Docker镜像构建成功
- ✅ 镜像已推送至ACR
- ⏳ 待部署到SAE
- ✅ 镜像已推送至ACRv1.3
- ✅ 已成功部署到SAE2025-12-25 18:55
- ✅ 服务运行正常内网地址http://172.17.173.71:3001
**部署历程2025-12-25**
1. 🔧 修复1Alpine Linux bash路径问题使用/bin/sh
2. 🔧 修复2config目录缺失补充COPY config到Dockerfile
3. 🔧 修复3pino-pretty生产环境问题改为条件启用
4. 🔧 修复4healthCheck ES Module兼容性require → import
5. ✅ 最终成功部署并通过健康检查
**关键突破**
1. ✅ 解决了Prisma `db pull` 后缺少关系字段的问题手动补全30+个)
@@ -642,11 +702,11 @@ aliyun sae DeployApplication \
2. ✅ **数据库**RDS PostgreSQL数据迁移+验证)
3. ✅ **对象存储**OSS Bucket创建+权限配置
4. ✅ **后端服务**
- ✅ Python微服务文档提取+数据清洗)- 已部署到SAE
- ✅ Node.js后端API服务器- 镜像已构建,待部署
5. **前端服务**Nginx静态资源托管 - 镜像已推送,待部署
- ✅ Python微服务文档提取+数据清洗)- 已部署到SAE2025-12-24
- ✅ Node.js后端API服务器- 已成功部署到SAE2025-12-25
5. **前端服务**Nginx静态资源托管 - 已成功部署到SAE2025-12-25
6. ⏳ **AI服务**Dify部署
7. **验证测试**:全链路功能验证
7. **验证测试**:全链路功能验证通过
**依赖关系**
```
@@ -728,12 +788,13 @@ aliyun sae DescribeApplicationInstances --AppId xxx
- [x] **Node.js后端**Docker镜像构建 ✅ 已完成2025-12-24
- [x] **Node.js后端**Prisma反向同步 ✅ 已完成32个模型
- [x] **Node.js后端**TypeScript编译修复 ✅ 已完成修复200+错误)
- [x] **Node.js后端**镜像推送到ACR ✅ 已完成
- [ ] **Node.js后端**部署到SAE
- [ ] **Node.js后端**配置环境变量Python服务地址
- [x] **Node.js后端**镜像推送到ACR ✅ 已完成v1.3
- [x] **Node.js后端**部署到SAE ✅ 已完成2025-12-25
- [x] **Node.js后端**配置环境变量Python服务地址 ✅ 已完成
- [x] **Node.js后端**修复4个部署问题bash/config/pino/require ✅ 已完成
### 中优先级 🟡
- [ ] **前端Nginx**部署到SAE并配置域名
- [x] **前端Nginx**部署到SAE并配置域名 ✅ 已完成2025-12-25
- [ ] **内网通信**配置前端→后端→Python微服务的内网调用
- [ ] **SSL证书**申请并配置HTTPS
- [ ] **监控告警**配置SAE健康检查和告警规则
@@ -771,6 +832,44 @@ aliyun sae DescribeApplicationInstances --AppId xxx
## 🔄 八、更新日志
### 2025-12-25完整部署成功日🎉
#### 上午Node.js后端部署
- ✅ Node.js后端成功部署到SAEv1.3
- ✅ 修复Alpine Linux bash路径问题/bin/bash → /bin/sh
- ✅ 修复config目录缺失问题Dockerfile补充COPY config
- ✅ 修复pino-pretty生产环境问题条件启用
- ✅ 修复healthCheck ES Module兼容性require → import
- ✅ 生成强JWT密钥64位十六进制
- ✅ 创建3个问题修复文档13/14/15号文档
- ✅ 更新SAE部署操作手册12号文档
- ✅ 更新部署配置清单11号文档
#### 中午前端Nginx部署
- ✅ 前端Nginx成功部署到SAEv1.0
- ✅ 前端服务运行正常内网地址http://172.17.173.72:80
- ✅ 前端到后端代理验证通过
- ✅ 完整链路测试通过(前端→后端→数据库)
#### 下午环境变量修复与CLB配置
- ✅ 发现工具C的7大功能报错connect ECONNREFUSED 127.0.0.1:8000
- ✅ 排查并修复关键问题:环境变量名错误
- 代码使用:`EXTRACTION_SERVICE_URL`
- 错误配置:`PYTHON_SERVICE_URL`
- 正确配置:`EXTRACTION_SERVICE_URL=http://172.17.173.66:8000`
- ✅ Node.js后端重新部署IP地址更新为http://172.17.173.73:3001
- ✅ 更新前端Nginx环境变量BACKEND_SERVICE_HOST=172.17.173.73
- ✅ 配置CLB负载均衡器获得公网访问地址http://8.140.53.236/
- ✅ 工具C的7大功能全部测试通过数值映射、缺失值处理等
- ✅ 文献筛查模块测试通过
- ✅ 完整系统部署成功验证 🎉
#### 晚上:文档完善
- ✅ 创建 `17-完整部署实战手册-2025版.md`1800行基于实战经验
- ✅ 创建 `18-部署文档使用指南.md`(快速导航文档)
- ✅ 更新 `00-部署进度总览.md`(添加新文档索引)
- ✅ 总结部署经验与最佳实践
### 2025-12-24
- ✅ PostgreSQL数据库部署完成
- ✅ 前端Nginx Docker镜像构建并推送至ACR
@@ -782,7 +881,7 @@ aliyun sae DescribeApplicationInstances --AppId xxx
- ✅ Node.js后端Prisma反向同步完成32个模型手动补全30+关系字段)
- ✅ Node.js后端TypeScript编译修复完成修复200+错误→0错误
- ✅ Node.js后端Docker镜像构建成功838MB改进版方案B
- ✅ Node.js后端镜像推送至ACRv1.0 + latest
- ✅ Node.js后端镜像推送至ACRv1.0
- ✅ 创建Node.js后端Docker镜像构建手册
---