# Flask 提示词大师 - 自动化部署指南 ## 概述 本文档介绍Flask提示词大师项目的自动化部署流程,包括CI/CD流水线、Docker部署、Kubernetes部署等。 ## CI/CD流水线 ### GitHub Actions配置 配置文件: `.github/workflows/ci-cd.yml` #### 主要阶段: 1. **代码质量检查** - Flake8, Black, MyPy 2. **单元测试** - pytest + 覆盖率 3. **集成测试** - 完整功能测试 4. **构建镜像** - Docker镜像构建 5. **部署** - 测试/生产环境部署 ### 环境变量配置 在GitHub Secrets中配置: ```bash DOCKER_USERNAME=your-docker-username DOCKER_PASSWORD=your-docker-password SSH_PRIVATE_KEY=your-ssh-key SSH_HOST=your-server-host ``` ## Docker部署 ### Docker Compose配置 文件: `docker-compose.prod.yml` ```bash # 启动服务 docker-compose -f docker-compose.prod.yml up -d # 查看状态 docker-compose -f docker-compose.prod.yml ps # 查看日志 docker-compose -f docker-compose.prod.yml logs -f app ``` ### 环境变量 创建`.env`文件: ```bash MYSQL_ROOT_PASSWORD=your-password MYSQL_DATABASE=flask_prompt_master SECRET_KEY=your-secret-key LLM_API_KEY=your-api-key ``` ## Kubernetes部署 ### 部署步骤 ```bash # 创建命名空间 kubectl create namespace flask-prompt-master # 创建密钥 kubectl create secret generic flask-secrets \ --from-literal=secret-key="your-secret" \ --from-literal=llm-api-key="your-api-key" \ -n flask-prompt-master # 部署应用 kubectl apply -f k8s/deployment.yaml -n flask-prompt-master # 部署监控 kubectl apply -f k8s/monitoring.yaml -n flask-prompt-master ``` ## 传统服务器部署 ### 自动化脚本 脚本: `scripts/deploy.sh` ```bash # 部署到测试环境 ./scripts/deploy.sh -e test -s test.example.com -u deploy -k ~/.ssh/id_rsa # 部署到生产环境 ./scripts/deploy.sh -e production -s prod.example.com -u deploy -k ~/.ssh/id_rsa ``` ### 部署流程 1. **准备部署包** - 清理文件,创建压缩包 2. **上传服务器** - SCP上传,执行远程脚本 3. **服务管理** - 停止旧服务,安装新版本 4. **验证部署** - 健康检查,功能测试 ## 监控系统集成 ### CI/CD中的监控 监控系统在应用部署后自动部署: - 部署监控脚本 - 配置定时任务 - 启动监控服务 ### Docker中的监控 监控服务作为独立容器运行: ```yaml monitor: image: flask-prompt-master-monitor:latest environment: - APP_URL=http://app:5000 - MONITOR_INTERVAL=30 ``` ### Kubernetes中的监控 通过Deployment和CronJob管理: ```yaml # 监控服务 apiVersion: apps/v1 kind: Deployment metadata: name: flask-monitor # 日志维护 apiVersion: batch/v1 kind: CronJob metadata: name: log-maintenance spec: schedule: "0 2 * * *" ``` ## 部署验证 ### 健康检查 ```bash # 应用健康检查 curl -f http://your-server/health # 监控服务检查 curl -f http://your-server:8080/health ``` ### 功能测试 ```bash # 测试API curl -X POST http://your-server/api/wx/templates/intent \ -H "Content-Type: application/json" \ -d '{"text": "测试文本"}' ``` ## 故障排除 ### 常见问题 1. **部署失败** - 检查SSH连接和权限 2. **服务启动失败** - 检查环境变量配置 3. **数据库连接失败** - 检查数据库服务状态 ### 日志查看 ```bash # Docker日志 docker-compose logs -f app # Kubernetes日志 kubectl logs -f deployment/flask-prompt-master # 系统日志 journalctl -u flask-prompt-master -f ``` ## 最佳实践 1. **蓝绿部署** - 减少停机时间 2. **健康检查** - 确保服务可用性 3. **监控告警** - 及时发现问题 4. **安全配置** - 使用密钥管理 5. **资源限制** - 设置CPU/内存限制 ## 总结 通过自动化部署系统,您可以: - 实现代码到生产的快速部署 - 确保部署的一致性和可靠性 - 集成完整的监控和日志管理 - 支持多种部署环境和方式