ci-cd-devops-cycle.png

  • Plan:规划
  • Code:代码
  • Build:构建
  • Test:测试
  • Release:发布
  • Deploy:部署
  • Operate:维护

    基础理论

    瀑布式开发模式

    微信截图_20210425192027.png

    通过工程管理的方式来定义每个阶段,以及相应的交付产物和交付标准,以期通过一种重流程,重管控,按照计划一步步推进整个项目的交付过程。

敏捷式开发模式

微信截图_20210425192529.png

将目标拆解成一个个可交付的小目标,持续迭代和验证

DevOps 模式

微信截图_20210425193052.png

DevOps 是通过平台(Platform)、流程(Process)和人(People)的有机整合,以 C(协作)A(自动化)L(精益)M(度量)S(共享)文化为指引,旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。

结果指标

  1. 部署频率:指应用和服务向生产环境部署代码的频率
  2. 变更前置时间:指代码从提交到成功运行在生产环境的时长
  3. 服务恢复时间:指线上应用和服务出现故障到恢复运行的时长
  4. 变更失败率:指应用和服务在生产环境部署失败或者部署后导致服务降级的比例。

    落地实践

    2020102920395837.png

    价值流分析(Value Stream Mapping)

    微信截图_20210425203715.png
  • 前置时间(Lead Time):一个需求从提出的时间点开始,一直到最终上线交付给用户为止的时间周期。
  • 通过流程和平台的结合,来驱动流程的自动化流转

微信截图_20210425204304.png

持续集成、持续交付和持续部署的关系

  • 持续集成:从编码到构建再到测试的反复持续过程
  • 持续交付:在“持续集成”后,获取外部对软件的反馈再通过“持续集成”进行优化的过程,是“持续集成”的自然延续
  • 持续部署:将可交付产品,快速且安全地交付用户使用的一套方法和系统,是“持续交付”的最后“一公里”

微信截图_20210425121048.png

持续交付着重打造的是发布流水线的部分,但它所要达到的目标是在“最终用户”和“研发团队”之间建立紧密的反馈环:通过持续交付新的软件版本,以验证新想法和软件改动的正确性,并衡量这些改动对软件价值的影响。

参考资料

  1. 【狂神说】CI/CD到底是什么?十分钟理解企业级DevOps
  2. 持续交付36讲
  3. DevOps 实战笔记