Files
wecom_it_smart_desk/docs/04-运维文档/部署运维/蓝绿部署指南.md
T
Simon 44e77dcb0e chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11):
- docs/02-产品需求/      → 00 产品规划/PRD
- docs/03-技术架构/      → 01-05 子目录散落
- docs/04-原型设计/      → 01-02 产品设计(HTML 原型)
- docs/05-原型设计/      → screens/
- docs/06-测试素材/      → 02-E2E / 03-功能 / 04-版本测试
- docs/07-项目管理/      → 任务说明书/日报/计划
- docs/08-安全审计/      → 审计报告
- docs/09-堡垒运维/      → toolbox / deploy
- docs/10-项目管理/      → 任务说明书(重复)
- docs/11-历史归档/      → deploy-nas-archived

**重构后**(新编号 00-07,语义化):
- docs/00-产品开发流程与文档管理规范.md
- docs/00-版本迭代总览.md
- docs/01-产品文档/      (PRD/原型/认证/会话/AI 服务/坐席/集成)
- docs/02-技术文档/      (技术方案/架构图/重构记录/前端改造/实现配置)
- docs/03-测试文档/      (E2E/功能用例/版本报告/缺陷单)
- docs/04-运维文档/      (部署运维/运维指南)
- docs/05-运营文档/      (品牌推广/用户手册)
- docs/06-安全审计/      (审计报告)
- docs/07-项目管理/      (任务说明书/日报/计划/看板)

**净收益**:
- 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号)
- 消除 02-产品需求 与 10-项目管理 的编号重叠
- 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录)
- 把运维/安全/项目管理从 0X 散落改为 04/06/07

合计 494 文件 + 78495 行 / - 14076 行
2026-08-03 18:46:55 +08:00

4.4 KiB
Raw Blame History

蓝绿部署指南

概述

蓝绿部署是一种零停机部署策略,通过维护两套完全相同的运行环境(Blue 和 Green),实现快速切换和回滚。

架构

                    ┌─────────────────┐
                    │   Nginx         │
                    │  (流量入口)     │
                    └────────┬────────┘
                             │
              ┌──────────────┴──────────────┐
              │                             │
              ▼                             ▼
     ┌────────────────┐          ┌────────────────┐
     │   Blue 环境    │          │  Green 环境    │
     │  (当前活动)    │          │  (待验证)      │
     │  backend:8000  │          │ backend_green: │
     │                │          │     5002        │
     └────────────────┘          └────────────────┘
              │                             │
              └──────────────┬──────────────┘
                             │
              ┌──────────────┴──────────────┐
              │                             │
              ▼                             ▼
     ┌────────────────┐          ┌────────────────┐
     │  PostgreSQL    │  ←──→   │    Redis      │
     │  (共享)        │          │   (共享)      │
     └────────────────┘          └────────────────┘

文件说明

文件 位置 说明
docker-compose-green.yml /opt/wecom-it-desk/ Green 环境配置
switch-blue-green.sh /opt/wecom-it-desk/ 切换脚本
nginx.conf /opt/wecom-it-desk/nginx/ Nginx 配置(包含 upstream

部署步骤

1. 部署 Green 环境

cd /opt/wecom-it-desk

# 构建并启动 Green 环境
docker-compose -f docker-compose-green.yml up -d

# 验证 Green 环境健康
curl http://localhost:5002/health

2. 测试 Green 环境

通过端口 5080 访问 Green 环境进行测试:

3. 切换流量到 Green

# 方法一:使用切换脚本
./switch-blue-green.sh to-green

# 方法二:手动修改 Nginx 配置
sed -i 's/wecom_it_backend:8000/wecom_it_backend_green:8000/' /opt/wecom-it-desk/nginx/nginx.conf
docker restart wecom_it_nginx

4. 验证切换

# 检查 Nginx upstream 配置
grep -A1 'upstream backend_api' /opt/wecom-it-desk/nginx/nginx.conf

# 测试 API
curl https://itsupport.servyou.com.cn/api/v1/system/health

5. 回滚(如有问题)

# 方法一:使用切换脚本
./switch-blue-green.sh to-blue

# 方法二:手动修改
sed -i 's/wecom_it_backend_green:8000/wecom_it_backend:8000/' /opt/wecom-it-desk/nginx/nginx.conf
docker restart wecom_it_nginx

端口说明

端口 服务 说明
80/443 Nginx (Blue) 生产入口
5002 Backend (Green) Green 后端 API
5080 Nginx (Green) Green 测试入口
5443 Nginx (Green) Green HTTPS

注意事项

  1. 数据库共享Blue 和 Green 共用同一个 PostgreSQL 和 Redis
  2. 文件上传:上传的文件保存在挂载目录,不受切换影响
  3. 会话影响:切换后用户可能需要重新登录
  4. WebSocket:切换后现有 WebSocket 连接会断开

快速命令汇总

# 查看状态
docker ps

# 查看 Green 日志
docker logs wecom_it_backend_green

# 切换到 Green
sed -i 's/wecom_it_backend:8000/wecom_it_backend_green:8000/' /opt/wecom-it-desk/nginx/nginx.conf
docker restart wecom_it_nginx

# 切换回 Blue
sed -i 's/wecom_it_backend_green:8000/wecom_it_backend:8000/' /opt/wecom-it-desk/nginx/nginx.conf
docker restart wecom_it_nginx

# 停止 Green 环境
docker-compose -f docker-compose-green.yml down

更新日志

  • 2026-07-05: 初始版本