# 小虾 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. 可观测性 - [ ] 集成 APM(Application 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