六壬神鉴渐进发布流程图
🎯 发布流程概览
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   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 阶段检查
灰度发布检查
全量发布检查
🔄 回滚操作
紧急回滚
# 快速回滚到指定版本
./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 | 同步所有远程仓库 | 
📞 紧急联系
🎓 最佳实践
1. 分支管理
- 功能分支从 develop创建
- 发布分支从 staging创建
- 热修复分支从 main创建
2. 版本命名
- 主版本: 不兼容的重大更新
- 次版本: 向后兼容的功能添加
- 修订版本: bug修复和微小改进
3. 发布频率
- 紧急修复: 随时发布
- 常规更新: 每2周一次
- 大版本更新: 每季度一次
4. 监控策略
- 灰度期间: 24-48小时密切监控
- 全量发布: 72小时持续监控
- 日常运维: 实时告警监控