- Plan:规划
- Code:代码
- Build:构建
- Test:测试
- Release:发布
- Deploy:部署
- Operate:维护
基础理论
瀑布式开发模式
通过工程管理的方式来定义每个阶段,以及相应的交付产物和交付标准,以期通过一种重流程,重管控,按照计划一步步推进整个项目的交付过程。
敏捷式开发模式
将目标拆解成一个个可交付的小目标,持续迭代和验证
DevOps 模式
DevOps 是通过平台(Platform)、流程(Process)和人(People)的有机整合,以 C(协作)A(自动化)L(精益)M(度量)S(共享)文化为指引,旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。
结果指标
- 部署频率:指应用和服务向生产环境部署代码的频率
- 变更前置时间:指代码从提交到成功运行在生产环境的时长
- 服务恢复时间:指线上应用和服务出现故障到恢复运行的时长
- 变更失败率:指应用和服务在生产环境部署失败或者部署后导致服务降级的比例。
落地实践
价值流分析(Value Stream Mapping)
- 前置时间(Lead Time):一个需求从提出的时间点开始,一直到最终上线交付给用户为止的时间周期。
- 通过流程和平台的结合,来驱动流程的自动化流转
持续集成、持续交付和持续部署的关系
- 持续集成:从编码到构建再到测试的反复持续过程
- 持续交付:在“持续集成”后,获取外部对软件的反馈再通过“持续集成”进行优化的过程,是“持续集成”的自然延续
- 持续部署:将可交付产品,快速且安全地交付用户使用的一套方法和系统,是“持续交付”的最后“一公里”
持续交付着重打造的是发布流水线的部分,但它所要达到的目标是在“最终用户”和“研发团队”之间建立紧密的反馈环:通过持续交付新的软件版本,以验证新想法和软件改动的正确性,并衡量这些改动对软件价值的影响。