Files
aitsc/docs/development/自动化部署指南.md

3.8 KiB
Raw Permalink Blame History

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中配置:

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

部署流程

  1. 准备部署包 - 清理文件,创建压缩包
  2. 上传服务器 - SCP上传执行远程脚本
  3. 服务管理 - 停止旧服务,安装新版本
  4. 验证部署 - 健康检查,功能测试

监控系统集成

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": "测试文本"}'

故障排除

常见问题

  1. 部署失败 - 检查SSH连接和权限
  2. 服务启动失败 - 检查环境变量配置
  3. 数据库连接失败 - 检查数据库服务状态

日志查看

# 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/内存限制

总结

通过自动化部署系统,您可以:

  • 实现代码到生产的快速部署
  • 确保部署的一致性和可靠性
  • 集成完整的监控和日志管理
  • 支持多种部署环境和方式