- 这个版本 A 集群是灰度,B 中流量慢慢导向 A,B 中完全导向 A 后则完全灰度发版
- 此时流量都在 A,则 A 应该为下个版本非灰度,B 为灰度。如此来回切换。
- 创建需求单:使用通用模板创建需求单,尽量拆分为小需求并将需求描述清楚,关联开发者
- 设计阶段:预先设计解耦代码模块,以及各层接口(主要前端接口与数据库)
- 开发阶段:从 test 拉线且前后端创建同名新分支
- 联调阶段:将工作区修改提交,再合并到 dev 分支,然后将 dev 分支推送到远程仓库,利用 ssh 与 mysql 客户端连入服务器部署环境
- 准备提测:将分支推送到远程仓库,并申请向 test|test_gray 分支的合并请求,管理员 review 之后并入
- 提测阶段:触发提测流水线部署 test|test_gray 环境(可能需要手动部署)并关联相应需求单,然后流转需求单状态为“需求转测试”
- 测试阶段:确认测试环境部署完备后,拉群通知测试,接下来的阶段中出现任何缺陷都需要跟进并流转缺陷单
- 预发布阶段:将 test|test_gray 并入 pre_release|pre_release_gray 并部署预发布环境再次测试
- 发布阶段:将 pre_release|pre_release_gray 并入 release_a|release_b 并部署正式线上发布环境(AB 环境并不固定是否为灰度环境)
- 完全灰度:将灰度分支并入 master,并反向合入 test
-
接口字段类型
- 对于 API 接口的状态字段,需要使用可读性更好的字符类型而非数字类型
- 对于数据库的状态字存储类型,尽量使用枚举类型以提高可读性
-
分层模式
- controller 负责
- 解析报文
- 控制响应, 完善的报错消息
- 记录操作日志
- bussiness 负责
- 封装复杂业务逻辑
- 入库数据有效性校验
- 过滤并转换处理从数据库读出的数据
- model 负责
- 提供数据库 model 结构
- 提供数据库 CRUD 操作接口
- controller 负责
