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