MBE 开发、部署、发布流程

版本: v1.0
更新时间: 2026-01-28
适用团队: MBE 开发团队


📋 目录

  1. 环境架构
  2. 开发流程
  3. 测试流程
  4. 部署流程
  5. 发布流程
  6. 团队协作
  7. 应急响应

🏗️ 环境架构

三环境完全隔离架构 (v2.0 - 2026-01-28)

┌─────────────────────────────────────────────────┐
│               生产环境 (Production)              │
│  https://mbe.hi-maker.com                       │
│  镜像: mbe-api:latest (代码打包进镜像)           │
│  端口: 8000                                     │
│  - mbe-api, mbe-postgres, mbe-redis             │
│  - mbe-tunnel (Cloudflare)                      │
│  - 修改代码不影响此环境 ✅                        │
└─────────────────────────────────────────────────┘
                     ↑
              构建镜像部署
                     ↑
┌─────────────────────────────────────────────────┐
│               开发环境 (Development)             │
│  https://dev.hi-maker.com (mbe-dev.hi-maker.com)│
│  镜像: mbe-api:dev (代码打包进镜像)              │
│  端口: 8001                                     │
│  - mbe-api-dev, mbe-postgres-dev, mbe-redis-dev │
│  - mbe-tunnel-dev (Cloudflare)                  │
│  - 修改代码不影响此环境 ✅                        │
└─────────────────────────────────────────────────┘
                     ↑
              构建镜像部署
                     ↑
┌─────────────────────────────────────────────────┐
│               本地开发 (Local)                   │
│  http://localhost:8002                          │
│  代码挂载: ./src:/app/src (热重载)              │
│  端口: 8002                                     │
│  - mbe-api-local, mbe-postgres-local            │
│  - 修改代码实时生效 (DEBUG=true)                 │
│  - 完全独立,不影响其他环境 ✅                    │
└─────────────────────────────────────────────────┘

环境特点

环境 端口 域名 代码来源 用途
本地开发 8002 localhost:8002 挂载源码 (热重载) 日常编码调试
开发版 8001 dev.hi-maker.com 镜像 mbe-api:dev 功能测试/验收
生产版 8000 mbe.hi-maker.com 镜像 mbe-api:latest 正式服务

隔离优势

  • 本地修改代码不影响线上环境:生产版和开发版使用预构建镜像
  • Cloudflare Tunnel 更稳定:不依赖 API 健康检查,避免崩溃
  • 独立数据库:三个环境各自独立的 PostgreSQL 和 Redis

💻 开发流程

1. 本地开发环境搭建

# 克隆代码
git clone https://github.com/your-org/mises-behavior-engine.git
cd mises-behavior-engine

# 创建环境变量
cp env.example.txt .env
# 编辑 .env 配置 LLM API 密钥等

# 启动本地开发服务(代码热重载)
.\start-local.bat
# 或: docker-compose -f docker-compose.local.yml up -d

# 查看日志
docker logs mbe-api-local -f

# 访问本地服务
# API: http://localhost:8002
# Database: localhost:5434
# Redis: localhost:6382

# 停止服务
.\stop-local.bat

2. 部署到开发版/生产版

# 构建镜像
.\scripts\build_image.ps1 -Target dev   # 开发版镜像
.\scripts\build_image.ps1 -Target prod  # 生产版镜像

# 启动开发版
.\start-dev.bat
# 访问: https://dev.hi-maker.com 或 http://localhost:8001

# 启动生产版
.\start-prod.bat
# 访问: https://mbe.hi-maker.com 或 http://localhost:8000

详细部署文档: DEPLOYMENT_GUIDE.md

2. 功能开发流程

Step 1: 创建功能分支

# 从 develop 分支创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name

# 分支命名规范
# feature/xxx  - 新功能
# bugfix/xxx   - Bug修复
# hotfix/xxx   - 紧急修复
# refactor/xxx - 重构

Step 2: 本地开发

# 1. 编写代码
# src/knowledge/your_module.py

# 2. 本地测试
docker restart mbe-api-dev  # 重启查看效果

# 3. 代码检查
python -m pytest tests/     # 运行单元测试
python -m flake8 src/       # 代码规范检查
python -m mypy src/         # 类型检查

# 4. 提交代码
git add .
git commit -m "feat: 添加XXX功能"

# 提交信息规范
# feat: 新功能
# fix: Bug修复
# docs: 文档更新
# style: 代码格式
# refactor: 重构
# test: 测试
# chore: 构建/工具

Step 3: 推送到远程

git push origin feature/your-feature-name

# 创建 Pull Request
# 目标分支: develop
# 填写 PR 描述,包含:
# - 功能说明
# - 测试步骤
# - 截图/录屏

3. 代码审查 (Code Review)

审查检查清单

  • 代码风格符合规范
  • 没有硬编码配置
  • 错误处理完善
  • 日志记录充分
  • 单元测试覆盖
  • 文档已更新
  • 安全性检查
  • 性能考虑

🧪 测试流程

1. 测试层级

┌────────────────────────────────────────┐
│  E2E Tests (端到端测试)                 │  ← 开发环境
├────────────────────────────────────────┤
│  Integration Tests (集成测试)          │  ← 开发环境
├────────────────────────────────────────┤
│  Unit Tests (单元测试)                 │  ← 本地开发
└────────────────────────────────────────┘

2. 单元测试 (本地)

# 运行所有测试
python -m pytest tests/

# 运行特定测试
python -m pytest tests/test_knowledge/test_dynamic_expert.py -v

# 测试覆盖率
python -m pytest --cov=src tests/

# 目标: 覆盖率 > 70%

3. 集成测试 (开发环境)

# 测试专家路由
python tests/integration/test_expert_routing.py

# 测试知识库
python quick_test_lawyer.py  # 10个问题快速测试

# 测试完整流程
python test_lawyer_comprehensive.py  # 100个问题测试

🚀 部署流程

新版部署流程(三环境隔离)

日常开发流程

修改代码 → 本地测试 (8002) → 构建镜像 → 部署开发版 (8001) → 验收通过 → 部署生产版 (8000)

1. 本地开发测试

# 启动本地环境(代码热重载)
.\start-local.bat

# 修改代码后自动重载,访问测试
http://localhost:8002

# 运行测试
python -m pytest tests/
python quick_test_lawyer.py

2. 部署到开发版

# 构建开发版镜像
.\scripts\build_image.ps1 -Target dev

# 启动开发版服务
.\start-dev.bat

# 验证部署
curl http://localhost:8001/
curl https://dev.hi-maker.com/

# 查看日志
docker logs -f mbe-api-dev

3. 部署到生产版

# 前置检查
# - 开发版测试通过
# - 代码审查完成

# 构建生产版镜像
.\scripts\build_image.ps1 -Target prod

# 启动生产版服务
.\start-prod.bat

# 验证部署
curl http://localhost:8000/
curl https://mbe.hi-maker.com/

# 查看日志
docker logs -f mbe-api

使用部署工作流脚本

# 查看当前状态
.\scripts\deploy_workflow.ps1 -Action status

# 启动本地开发
.\scripts\deploy_workflow.ps1 -Action local

# 部署到开发版(自动构建镜像)
.\scripts\deploy_workflow.ps1 -Action deploy-dev

# 部署到生产版(自动构建镜像)
.\scripts\deploy_workflow.ps1 -Action deploy-prod

# 完整部署流程(交互式引导)
.\scripts\deploy_workflow.ps1 -Action full

详细部署文档: DEPLOYMENT_GUIDE.md

方案B: CI/CD 自动化(推荐实施)

GitHub Actions 配置

创建 .github/workflows/deploy.yml:

name: CI/CD Pipeline

on:
  push:
    branches: [develop, main]
  pull_request:
    branches: [develop]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      
      - name: Install dependencies
        run: |
          pip install -r requirements.txt
          pip install -r requirements-dev.txt
      
      - name: Run tests
        run: |
          python -m pytest tests/ --cov=src
          python -m flake8 src/
          python -m mypy src/
      
      - name: Build Docker image
        run: docker build -t mbe-api:test .
  
  deploy-dev:
    needs: test
    if: github.ref == 'refs/heads/develop'
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to Development
        run: |
          # SSH 到开发服务器部署
          # 或使用 Docker registry
  
  deploy-prod:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: Deploy to Production
        run: |
          # 需要手动批准
          # SSH 到生产服务器部署

🎯 实际案例: System Prompt 更新流程

今天的实际操作

1. 本地开发 ✅
   - 创建 system_prompt_text.txt
   - 设计优化方案

2. 本地测试 ✅
   - 更新 knowledge_bases/experts/index.json
   - 本地验证配置格式

3. 部署到开发环境 ✅
   - 推送代码到服务器
   - 重启 mbe-api-dev
   - 运行 quick_test_lawyer.py (10个问题)
   
4. 验证通过 ✅
   - 知识库隔离: 0/10混入
   - 法律引用: 100%覆盖
   - 专业性提升

5. 部署到生产环境 ✅
   - 备份配置文件
   - 更新 system_prompt
   - 重启 mbe-api
   - 验证生效

6. 监控观察 ⏳
   - 用户反馈收集
   - 质量指标监控

👥 团队协作建议

小团队 (1-3人)

职责合并:
- 全栈开发 + 运维
- 代码互审
- 轮流值班

工具简化:
- Git + GitHub
- Slack 沟通
- 简化的CI/CD

发布策略:
- 每周发布
- 快速迭代
- 问题快速修复

中型团队 (4-10人)

职责分工:
- 后端团队 (2-3人)
- 前端团队 (2-3人)
- 测试+运维 (1-2人)
- Tech Lead (1人)

工具完善:
- Git + GitHub/GitLab
- Jira 项目管理
- Slack + 飞书
- 完整CI/CD
- 监控告警

发布策略:
- 2周一个Sprint
- 每Sprint发布
- 灰度发布
- 完善测试

大型团队 (10+人)

职责细分:
- 后端组 (多个小组)
- 前端组
- 测试组
- 运维组
- 架构组
- 产品组

工具企业级:
- 代码管理平台
- 项目管理系统
- 完整DevOps平台
- APM监控
- 日志平台

发布策略:
- 微服务架构
- 独立发布
- 蓝绿部署
- A/B测试
- 特性开关

📊 关键指标 (KPI)

开发效率

  • 开发周期: Sprint 2周
  • 代码审查: 24小时内完成
  • PR合并: 48小时内
  • Bug修复: P0(4小时) P1(24小时) P2(1周)

质量指标

  • 测试覆盖率: > 70%
  • 代码审查率: 100%
  • 自动化测试: 100%核心功能
  • 文档覆盖: 100%公共API

部署指标

  • 部署频率: 每2周
  • 部署时间: < 30分钟
  • 部署成功率: > 95%
  • 回滚时间: < 15分钟

服务指标

  • 可用性: > 99.9%
  • 响应时间: P95 < 5秒
  • 错误率: < 0.1%
  • 并发用户: > 1000

🔧 实用脚本

快速部署脚本

创建 scripts/deploy.sh:

#!/bin/bash
# 快速部署脚本

ENV=${1:-dev}  # dev or prod
VERSION=${2:-latest}

echo "部署环境: $ENV"
echo "版本: $VERSION"

if [ "$ENV" = "prod" ]; then
    echo "⚠️ 生产环境部署需要确认"
    read -p "确认部署到生产环境? (yes/no): " confirm
    if [ "$confirm" != "yes" ]; then
        echo "❌ 部署取消"
        exit 1
    fi
    
    # 备份
    ssh prod@prod-server "docker exec mbe-postgres pg_dump -U mbe mbe > /backups/mbe_$(date +%Y%m%d_%H%M%S).sql"
    
    # 部署
    ssh prod@prod-server "
        cd /app/mises-behavior-engine
        git pull origin main
        docker-compose -f docker-compose.yml -f docker-compose.tunnel.yml up -d --build
    "
else
    # 开发环境部署
    ssh dev@dev-server "
        cd /app/mises-behavior-engine
        git pull origin develop
        docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build
    "
fi

echo "✅ 部署完成"

使用:

./scripts/deploy.sh dev      # 部署到开发环境
./scripts/deploy.sh prod     # 部署到生产环境

📞 联系和支持

紧急联系

Tech Lead: [电话/微信]
运维工程师: [电话/微信]
Slack: #emergency

文档和资源

技术文档: /docs
API文档: https://mbe.hi-maker.com/docs
监控面板: https://grafana.hi-maker.com
日志查询: https://kibana.hi-maker.com

文档版本: v2.0 (三环境隔离架构)
最后更新: 2026-01-28
维护者: MBE 技术团队


📚 相关文档