1. 适用场景
微服务架构下,每个应用服务独立开发、独立发布,小步快跑,持续快速交付业务需求。多人协同开发同一个应用时,分支开发模式是一个适合的协同方案。该模式下一个需求或任务通常对应一个 feature 分支,多个需求一起合并到 release 分支进行集成测试验证并发布。
该场景下,你是否有这样的苦恼?
- 一个需求没有经过集成测试验证,却被发布上线了,最终因为“漏测”导致生产故障!
- 一个需求经过了集成测试验证,但是临发布前发现有严重问题,但需求无法灵活“下车”,最终导致本次发布的所有需求都被延期了!
2. 云效解决方案
云效应用交付平台 AppStack 提供变更持续交付解决方案,涉及核心概念如下:
- 应用:一个软件的最小发布单元,聚合代码、环境、版本等软件资产,以及研发流程定义。最小发布单元意味着无法解耦的一个或者多个服务的组合,这个服务组合会通过一个流程进行统一交付。
- 变更:变更是对应用的一次特性改变(引入新的特性或改变已有特性),源于需求,终于交付。通常一个需求或任务对应一个变更,对应一个 feature 分支。
- 研发流程:应用完成一次变更的过程和约束,包括开发、测试、发布上线的完整流程,由多个阶段的多条流水线承载,依次在不同环境进行测试、构建、部署,最终审批通过后发布生产环境。