Files
xiaoxia-saas/docs/PRODUCTION-CHECKLIST.md
2026-06-21 11:29:33 +08:00

253 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 小虾 SaaS - 生产部署检查清单
## 🔒 安全检查
### 1. 密钥和密码
- [ ] 修改 `JWT_SECRET_KEY`(至少 32 位随机字符)
- [ ] 修改数据库密码
- [ ] 修改 Redis 密码(如果启用)
- [ ] 配置 SMTP 应用专用密码
- [ ] 不要将 `.env` 文件提交到 Git
### 2. CORS 配置
- [ ] 更新 `CORS_ORIGINS` 为实际域名
- [ ] 移除开发环境的 localhost
### 3. 数据库
- [ ] 使用 SSL 连接数据库
- [ ] 限制数据库访问 IP
- [ ] 定期备份数据库
- [ ] 配置连接池限制
### 4. API 安全
- [ ] 启用速率限制(取消注释 RateLimitMiddleware
- [ ] 配置适当的速率限制值
- [ ] 启用 HTTPS
- [ ] 配置防火墙规则
---
## 🚀 性能优化
### 1. 应用配置
- [ ] 设置 `DEBUG=false`
- [ ] 设置 `ENVIRONMENT=production`
- [ ] 使用多个 worker 进程
- [ ] 配置 Gunicorn(推荐 4 个 worker
### 2. 数据库优化
- [ ] 创建适当的索引
- [ ] 配置连接池
- [ ] 启用查询缓存
- [ ] 监控慢查询
### 3. Redis 配置
- [ ] 配置持久化(AOF
- [ ] 设置内存限制
- [ ] 配置驱逐策略
---
## 📊 监控和日志
### 1. 日志
- [ ] 配置日志轮转
- [ ] 设置日志级别为 INFO
- [ ] 集成日志聚合(ELK/Loki
- [ ] 配置错误通知
### 2. 监控
- [ ] 配置健康检查端点
- [ ] 设置性能监控(CPU/内存/磁盘)
- [ ] 配置数据库监控
- [ ] 设置告警规则
### 3. 可观测性
- [ ] 集成 APMApplication Performance Monitoring
- [ ] 配置分布式追踪
- [ ] 设置业务指标监控
---
## 🗄️ 数据库
### 1. 迁移
- [ ] 测试所有迁移脚本
- [ ] 准备回滚脚本
- [ ] 在预发布环境测试
- [ ] 备份生产数据
### 2. 备份策略
- [ ] 配置自动备份(每日)
- [ ] 测试备份恢复流程
- [ ] 异地备份
- [ ] 保留策略(30 天)
---
## 🌐 基础设施
### 1. 域名和 SSL
- [ ] 配置域名解析
- [ ] 申请 SSL 证书
- [ ] 配置 HTTPS 重定向
- [ ] 配置 HTTP/2
### 2. 反向代理(Nginx
- [ ] 配置负载均衡
- [ ] 配置静态文件缓存
- [ ] 配置 Gzip 压缩
- [ ] 配置请求大小限制
### 3. 容器化
- [ ] 优化 Docker 镜像大小
- [ ] 配置健康检查
- [ ] 配置重启策略
- [ ] 配置资源限制
---
## 📧 邮件服务
### 1. SMTP 配置
- [ ] 测试邮件发送
- [ ] 配置 SPF 记录
- [ ] 配置 DKIM 签名
- [ ] 配置 DMARC 策略
### 2. 邮件模板
- [ ] 检查所有邮件模板
- [ ] 测试不同邮件客户端显示
- [ ] 添加取消订阅链接
---
## 🧪 测试
### 1. 功能测试
- [ ] 运行所有单元测试
- [ ] 运行集成测试
- [ ] 手动测试核心流程
- [ ] 测试错误处理
### 2. 性能测试
- [ ] 负载测试
- [ ] 压力测试
- [ ] 并发测试
- [ ] 数据库性能测试
### 3. 安全测试
- [ ] SQL 注入测试
- [ ] XSS 测试
- [ ] CSRF 测试
- [ ] 权限绕过测试
---
## 📝 文档
### 1. 用户文档
- [ ] API 文档完整
- [ ] 使用指南清晰
- [ ] 错误码说明
- [ ] 常见问题 FAQ
### 2. 运维文档
- [ ] 部署流程文档
- [ ] 故障排查手册
- [ ] 备份恢复流程
- [ ] 扩容指南
---
## 🔄 CI/CD
### 1. 持续集成
- [ ] 配置自动测试
- [ ] 配置代码质量检查
- [ ] 配置安全扫描
- [ ] 配置构建流程
### 2. 持续部署
- [ ] 配置自动部署
- [ ] 配置蓝绿部署
- [ ] 配置回滚机制
- [ ] 配置部署通知
---
## 🚨 应急预案
### 1. 故障处理
- [ ] 准备应急联系人列表
- [ ] 制定故障响应流程
- [ ] 准备回滚计划
- [ ] 制定数据恢复流程
### 2. 容量规划
- [ ] 评估初期用户量
- [ ] 规划扩容方案
- [ ] 准备备用资源
- [ ] 制定扩容预案
---
## ✅ 部署前检查
```bash
# 1. 运行测试
pytest tests/ -v
# 2. 检查环境变量
cat .env
# 3. 检查数据库连接
psql $DATABASE_URL -c "SELECT 1"
# 4. 检查 Redis 连接
redis-cli -u $REDIS_URL ping
# 5. 测试邮件发送
python scripts/test_email.py
# 6. 检查 Docker 镜像
WEB_PORT=3001 docker compose -f infra/docker/compose.yml build api worker web
# 7. 检查数据库迁移
alembic upgrade head
# 8. 启动服务测试
WEB_PORT=3001 docker compose -f infra/docker/compose.yml up -d
curl http://localhost:8000/health
```
---
## 📞 上线后监控
### 第一周
- [ ] 每天检查错误日志
- [ ] 监控 API 响应时间
- [ ] 检查数据库性能
- [ ] 用户反馈收集
### 第一个月
- [ ] 每周性能报告
- [ ] 用户增长分析
- [ ] 资源使用优化
- [ ] 功能使用统计
---
**使用方法:**
复制此清单,逐项检查,确保每项都已完成再上线。
**优先级:**
- 🔴 高优先级(必须完成):安全检查、数据库备份、基础监控
- 🟡 中优先级(建议完成):性能优化、详细监控、文档完善
- 🟢 低优先级(可选):高级监控、自动化部署、容量规划
---
**最后更新:** 2026-06-17