liurenchaxin/docs/development/DEPLOYMENT_FLOW.md

5.8 KiB

六壬神鉴渐进发布流程图

🎯 发布流程概览

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Development   │    │     Staging      │    │     Canary      │    │   Production    │
│   (Gitea)       │───▶│   (Bitbucket)    │───▶│   (GitHub 10%)   │───▶│   (GitHub 100%) │
│   develop分支   │    │   staging分支    │    │   main分支      │    │   main分支      │
└─────────────────┘    └──────────────────┘    └─────────────────┘    └─────────────────┘
        │                       │                       │                       │
        │                       │                       │                       │
        ▼                       ▼                       ▼                       ▼
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   功能开发       │    │   集成测试       │    │   灰度验证       │    │   全量发布       │
│   单元测试       │    │   性能测试       │    │   监控验证       │    │   持续监控       │
│   代码审查       │    │   安全扫描       │    │   用户反馈       │    │   性能优化       │
└─────────────────┘    └──────────────────┘    └─────────────────┘    └─────────────────┘

🚀 快速操作指南

1. 日常开发流程

开始新功能开发

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

# 开发完成后
git add .
git commit -m "feat: 添加新功能"
git push origin feature/new-feature

# 创建 PR 到 develop 分支
# 在 Gitea 上创建 Pull Request

推送到开发环境

# 一键推送到 Gitea 开发环境
git checkout develop
git pull origin develop
git merge feature/new-feature
git push gitea develop

2. 预发布流程

准备 staging 发布

# 创建发布分支
git checkout staging
git merge develop
git push staging staging:main

# 或使用快捷命令
git deploy-staging

验证 staging 环境

# 检查 staging 状态
./scripts/check-status.sh

3. 灰度发布流程

启动灰度发布

# 创建灰度版本
git checkout main
git merge staging
git tag v1.2.0-canary
git push origin main --tags

监控灰度状态

# 检查发布状态
curl -s https://api.github.com/repos/jingminzhang/taigongxinyi/releases/latest

4. 全量发布流程

正式版本发布

# 使用快速发布脚本
./scripts/quick-release.sh 1.2.0 prod

# 或手动操作
git checkout main
git tag v1.2.0
git push origin main --tags
git deploy-prod

📊 发布检查清单

开发阶段检查

  • 代码通过单元测试
  • 功能测试完成
  • 代码审查通过
  • 文档已更新

Staging 阶段检查

  • 集成测试通过
  • 性能测试完成
  • 安全扫描通过
  • 用户验收测试完成

灰度发布检查

  • 监控指标正常
  • 错误率 < 0.1%
  • 用户反馈良好
  • 业务指标稳定

全量发布检查

  • 灰度验证通过
  • 回滚方案就绪
  • 监控告警配置
  • 紧急联系清单

🔄 回滚操作

紧急回滚

# 快速回滚到指定版本
./scripts/rollback.sh prod 1.1.9

# 或手动回滚
git checkout v1.1.9
git tag v1.2.0-rollback
git push origin main --force

回滚验证

# 检查回滚状态
./scripts/check-status.sh

📈 监控面板

关键指标监控

  • 系统性能: CPU、内存、磁盘使用率
  • 应用性能: 响应时间、吞吐量、错误率
  • 业务指标: 用户活跃度、功能使用率

告警规则

  • 错误率 > 1% → 立即告警
  • 响应时间 > 1s → 立即告警
  • 服务不可用 → 立即告警

🛠️ 工具命令速查

操作 命令 说明
查看状态 ./scripts/check-status.sh 检查所有环境状态
快速发布 ./scripts/quick-release.sh 版本号 环境 一键发布到指定环境
紧急回滚 ./scripts/rollback.sh 环境 版本号 快速回滚到指定版本
推送到 staging git deploy-staging 推送到 Bitbucket staging
推送到 prod git deploy-prod 推送到 GitHub production
同步所有远程 git sync-all 同步所有远程仓库

📞 紧急联系

角色 联系方式 职责
技术负责人 ben@capitaltrain.cn 技术决策、紧急响应
运维团队 ops@capitaltrain.cn 部署、监控、故障处理
产品团队 product@capitaltrain.cn 业务决策、用户沟通

🎓 最佳实践

1. 分支管理

  • 功能分支从 develop 创建
  • 发布分支从 staging 创建
  • 热修复分支从 main 创建

2. 版本命名

  • 主版本: 不兼容的重大更新
  • 次版本: 向后兼容的功能添加
  • 修订版本: bug修复和微小改进

3. 发布频率

  • 紧急修复: 随时发布
  • 常规更新: 每2周一次
  • 大版本更新: 每季度一次

4. 监控策略

  • 灰度期间: 24-48小时密切监控
  • 全量发布: 72小时持续监控
  • 日常运维: 实时告警监控