Files
lehuo/docs/13_DEPLOYMENT_CHINA.md
T

156 lines
2.6 KiB
Markdown
Raw Normal View History

2026-08-12 14:35:12 +08:00
# 13 国内环境部署与运维
## 1. 目标
- 中国大陆访问稳定;
- 微信小程序合法域名可配置;
- TLS;
- 低维护成本;
- 可迁移;
- 可备份;
- 可回滚。
---
## 2. 推荐生产拓扑(初期)
```text
微信小程序
│ HTTPS
▼
Nginx / API Domain
│
▼
NestJS API (Docker)
├── MySQL
├── Redis
└── Tencent COS
管理后台
│ HTTPS
└────────► Nginx / API
```
管理后台静态资源可由 Nginx 或对象存储/CDN 托管。
---
## 3. 云厂商
优先腾讯云并非代码强绑定要求,而是微信生态和国内运维便利性考虑。
代码必须通过 Adapter 保持:
- COS 可替换 S3 兼容存储;
- Redis 可替换其他标准 Redis;
- MySQL 可迁移标准 MySQL;
- Nginx/Docker 不绑定专有 PaaS。
---
## 4. 国内依赖获取
开发机可根据实际环境配置:
- npm 国内镜像;
- Docker 镜像加速;
- 操作系统软件源镜像。
但:
- lockfile 必须提交;
- CI 至少验证标准 registry 可构建;
- 不依赖个人私服;
- 不在代码写死镜像地址。
---
## 5. 环境
### dev
开发者本机 Docker Compose。
### test
CI 自动化测试。
### staging
与生产拓扑尽量一致,使用测试小程序/测试账号。
### prod
真实用户。
严禁 dev 直连 prod 数据库。
---
## 6. 发布
建议:
1. CI build;
2. 生成 immutable image tag;
3. staging deploy;
4. migration precheck;
5. smoke test;
6. production backup;
7. production deploy;
8. health check;
9. E2E smoke;
10. 观察;
11. 出现严重问题回滚应用版本。
数据库 migration 必须设计可前后兼容,避免应用回滚后数据库不兼容。
---
## 7. 监控
至少:
- API availability
- 5xx rate
- P95 latency
- CPU/memory
- disk
- MySQL connection
- Redis connectivity
- job failures
- backup failures
告警进入实际有人查看的渠道。
---
## 8. 容灾
初期无需昂贵双活,但必须:
- 自动数据库备份;
- 异地/云端备份;
- IaC/部署脚本;
- Docker 镜像可重建;
- 文档化恢复;
- 定期演练。
---
## 9. 微信小程序上线准备
实际申请和上线阶段需要根据微信公众平台最新规则核对:
- 小程序主体
- 服务类目
- 隐私保护指引
- 用户信息/手机号等接口使用说明
- request/download/upload 合法域名
- HTTPS 证书
- 备案/域名要求
- 订阅消息模板
- 审核材料
微信平台规则可能变化,因此上线前必须重新查官方文档,不得只依赖本文件。