# 部署前检查清单 在将 RAG 系统部署到生产环境之前,请确保完成以下所有检查项。 ## 📋 代码质量 - [ ] 所有代码通过 flake8 检查(无语法错误) - [ ] 代码格式符合 black 标准 - [ ] 导入语句按 isort 规范排序 - [ ] 类型提示完整(mypy 检查通过) - [ ] 所有公共 API 有文档字符串 **验证命令**: ```bash flake8 src tests black --check src tests isort --check-only src tests mypy src ``` ## 🧪 测试 - [ ] 所有单元测试通过 - [ ] 所有集成测试通过(如果适用) - [ ] 端到端测试通过(如果适用) - [ ] 测试覆盖率 ≥ 80% - [ ] 领域层覆盖率 ≥ 90% - [ ] 关键路径有测试覆盖 **验证命令**: ```bash pytest tests/unit -v pytest tests/integration -v pytest --cov=src --cov-report=html ``` ## 📚 文档 - [ ] README.md 已更新 - [ ] API 文档完整(docs/api.md) - [ ] 架构文档完整(docs/architecture.md) - [ ] 部署文档完整(docs/deployment.md) - [ ] 开发指南完整(docs/development.md) - [ ] 配置文档完整(docs/configuration.md) - [ ] 变更日志已更新(CHANGELOG.md) - [ ] 迁移指南已创建(如果有破坏性变更) ## 🔧 配置 - [ ] .env.example 包含所有必需的配置项 - [ ] 生产环境配置已准备 - [ ] 数据库连接配置正确 - [ ] 向量数据库配置正确 - [ ] 日志配置适合生产环境 - [ ] 安全配置已审查(密钥、密码等) ## 🗄️ 数据库 - [ ] 数据库迁移脚本已创建 - [ ] 迁移脚本在测试环境验证 - [ ] 数据库备份策略已制定 - [ ] 回滚计划已准备 **验证命令**: ```bash alembic current alembic history alembic upgrade head --sql # 预览 SQL ``` ## 🐳 Docker - [ ] Dockerfile 已优化 - [ ] docker-compose.yml 配置正确 - [ ] 多阶段构建正常工作 - [ ] 健康检查配置正确 - [ ] 数据卷配置正确 - [ ] 网络配置正确 - [ ] 资源限制已设置 **验证命令**: ```bash docker build -f docker/Dockerfile --target production -t rag-system:test . docker-compose -f docker/docker-compose.yml config ``` ## 🔒 安全 - [ ] 所有密码和密钥使用环境变量 - [ ] 不在代码中硬编码敏感信息 - [ ] CORS 配置正确 - [ ] API 速率限制已配置 - [ ] 依赖包安全扫描通过 - [ ] 代码安全扫描通过 **验证命令**: ```bash safety check bandit -r src ``` ## 📊 性能 - [ ] 关键 API 端点性能测试通过 - [ ] 数据库查询已优化 - [ ] 索引已创建 - [ ] 缓存策略已实施(如果需要) - [ ] 连接池配置合理 ## 🔄 CI/CD - [ ] GitHub Actions 工作流配置正确 - [ ] 所有 CI 检查通过 - [ ] 代码覆盖率报告正常 - [ ] 部署流程已测试 ## 🔙 向后兼容性 - [ ] 旧 API 端点仍然可用(通过适配器) - [ ] 废弃警告已添加 - [ ] 迁移指南已提供 - [ ] 向后兼容性测试通过 ## 📝 代码清理 - [ ] 旧代码已标记为废弃 - [ ] 未使用的导入已清理 - [ ] 调试代码已移除 - [ ] TODO 注释已处理 - [ ] 临时文件已删除 ## 🚀 部署准备 - [ ] 部署脚本已准备 - [ ] 回滚脚本已准备 - [ ] 监控和告警已配置 - [ ] 日志聚合已配置 - [ ] 备份策略已实施 - [ ] 灾难恢复计划已制定 ## ✅ 最终验证 运行最终验证脚本: ```bash python scripts/final_verification.py ``` 所有检查应该通过。 ## 📞 部署后验证 部署完成后,执行以下验证: - [ ] 健康检查端点响应正常 ```bash curl http://your-domain/health ``` - [ ] API 文档可访问 ```bash curl http://your-domain/docs ``` - [ ] 创建测试文档成功 ```bash curl -X POST http://your-domain/api/v1/documents/ \ -H "Content-Type: application/json" \ -d '{"content": "test", "metadata": {}}' ``` - [ ] 搜索功能正常 ```bash curl -X POST http://your-domain/api/v1/documents/search \ -H "Content-Type: application/json" \ -d '{"query_text": "test", "top_k": 10}' ``` - [ ] 日志正常输出 - [ ] 监控指标正常 - [ ] 数据库连接正常 - [ ] 向量数据库连接正常 ## 🆘 回滚计划 如果部署出现问题,执行以下步骤: 1. **立即回滚到上一个版本** ```bash # Docker docker-compose down docker-compose up -d --force-recreate # Kubernetes kubectl rollout undo deployment/rag-system ``` 2. **恢复数据库**(如果需要) ```bash alembic downgrade -1 # 或从备份恢复 psql rag_system < backup.sql ``` 3. **通知相关人员** 4. **记录问题和原因** 5. **修复问题后重新部署** ## 📋 签署 完成所有检查后,请相关人员签署: - [ ] 开发负责人: _________________ 日期: _______ - [ ] 测试负责人: _________________ 日期: _______ - [ ] 运维负责人: _________________ 日期: _______ - [ ] 项目经理: _________________ 日期: _______ --- **注意**: 此检查清单应该在每次部署前完整执行。不要跳过任何步骤!