feat: complete V1 phases 0-7
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
# 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 证书
|
||||
- 备案/域名要求
|
||||
- 订阅消息模板
|
||||
- 审核材料
|
||||
|
||||
微信平台规则可能变化,因此上线前必须重新查官方文档,不得只依赖本文件。
|
||||
Reference in New Issue
Block a user