Files
lehuo/docs/13_DEPLOYMENT_CHINA.md
T

3.8 KiB
Raw Blame History

13 国内环境部署与运维

1. 目标

  • 中国大陆访问稳定;
  • 微信小程序合法域名可配置;
  • TLS;
  • 低维护成本;
  • 可迁移;
  • 可备份;
  • 可回滚。

2. 推荐生产拓扑(初期)

微信小程序
   │ 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 证书
  • 备案/域名要求
  • 订阅消息模板
  • 审核材料

微信平台规则可能变化,因此上线前必须重新查官方文档,不得只依赖本文件。


10. Ubuntu 26.04 单机部署基线

  • Ubuntu 26.04 LTS 使用 Docker 官方 apt 仓库安装 Docker Engine 与 Compose plugin,不使用生产环境不推荐的 convenience script。
  • 初期单机拓扑采用 Docker Compose:Nginx/管理后台、API、MySQL 8.4、Redis 7.4 和私有 MinIO;仅发布 80/443,其他服务不映射宿主机端口。
  • 管理后台/API 与对象存储使用两个不同的合法 HTTPS 域名;对象存储保持私有 Bucket、版本控制、精确管理端 CORS 和 120 秒签名 URL。
  • API 和管理后台镜像以批准的 Git commit 作为不可变标签,本机构建不使用 latest;发布顺序仍为预检、构建、备份、migration、部署、冒烟和观察。
  • 环境文件固定保存到 /etc/lehuo/lehuo.env 且权限为 600;TLS、备份和发布状态分别保存在 /opt/lehuo/shared、/opt/lehuo/backups 和 /opt/lehuo/releases。
  • 每日备份由 systemd timer 执行并生成 SHA-256;本机 30 天保留不替代异地加密备份和季度独立库恢复演练。
  • 完整资产与执行命令见 infra/ubuntu/README.md。该基线只提供可部署版本,不代表真实 staging、UAT、微信联调或 production approval 已完成。