# 六壬神鉴渐进发布流程图 ## 🎯 发布流程概览 ``` ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Development │ │ Staging │ │ Canary │ │ Production │ │ (Gitea) │───▶│ (Bitbucket) │───▶│ (GitHub 10%) │───▶│ (GitHub 100%) │ │ develop分支 │ │ staging分支 │ │ main分支 │ │ main分支 │ └─────────────────┘ └──────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 功能开发 │ │ 集成测试 │ │ 灰度验证 │ │ 全量发布 │ │ 单元测试 │ │ 性能测试 │ │ 监控验证 │ │ 持续监控 │ │ 代码审查 │ │ 安全扫描 │ │ 用户反馈 │ │ 性能优化 │ └─────────────────┘ └──────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 🚀 快速操作指南 ### 1. 日常开发流程 #### 开始新功能开发 ```bash # 从 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 ``` #### 推送到开发环境 ```bash # 一键推送到 Gitea 开发环境 git checkout develop git pull origin develop git merge feature/new-feature git push gitea develop ``` ### 2. 预发布流程 #### 准备 staging 发布 ```bash # 创建发布分支 git checkout staging git merge develop git push staging staging:main # 或使用快捷命令 git deploy-staging ``` #### 验证 staging 环境 ```bash # 检查 staging 状态 ./scripts/check-status.sh ``` ### 3. 灰度发布流程 #### 启动灰度发布 ```bash # 创建灰度版本 git checkout main git merge staging git tag v1.2.0-canary git push origin main --tags ``` #### 监控灰度状态 ```bash # 检查发布状态 curl -s https://api.github.com/repos/jingminzhang/taigongxinyi/releases/latest ``` ### 4. 全量发布流程 #### 正式版本发布 ```bash # 使用快速发布脚本 ./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% - [ ] 用户反馈良好 - [ ] 业务指标稳定 ### 全量发布检查 - [ ] 灰度验证通过 - [ ] 回滚方案就绪 - [ ] 监控告警配置 - [ ] 紧急联系清单 ## 🔄 回滚操作 ### 紧急回滚 ```bash # 快速回滚到指定版本 ./scripts/rollback.sh prod 1.1.9 # 或手动回滚 git checkout v1.1.9 git tag v1.2.0-rollback git push origin main --force ``` ### 回滚验证 ```bash # 检查回滚状态 ./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小时持续监控 - 日常运维: 实时告警监控