MBE 开发、部署、发布流程
版本: v1.0
更新时间: 2026-01-28
适用团队: MBE 开发团队
📋 目录
🏗️ 环境架构
三环境完全隔离架构 (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 技术团队
📚 相关文档
- DEPLOYMENT_GUIDE.md - 完整部署指南
- QUICK_REFERENCE.md - 命令速查
- README.md - 项目说明