敏捷开发与CI/CD介绍

目录

      • 敏捷开发方式
        • 迭代开发
          • 解释
          • 本质
        • 增量开发
          • 解释
          • 本质
        • 迭代好处
        • 迭代步骤
      • 持续集成、持续交付、持续部署介绍
        • 持续集成
          • 好处
          • 目的
          • 核心
        • 持续交付
          • 重点
        • 持续部署
          • 目标
          • 前提

敏捷开发方式

迭代开发

也叫重复开发

解释
  • 迭代开发将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发"。
  • 每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
  • 开发者先快速发布一个有效但不完美的最简版本,然后不断迭代。
  • 每一次迭代都包含规划、设计、编码、测试、评估五个步骤,不断改进产品,添加新功能。
  • 通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。
本质
  • 迭代开发将一个大任务,分解成多次连续的开发,本质就是逐步改进

增量开发

解释
  • 软件的每个版本,都会新增一个用户可以感知的完整功能。
本质
  • 增量开发加上迭代开发,才算真正的敏捷开发。

迭代好处

  1. 交付早,从而大大降低成本
  2. 市场需求了解及时,从而降低产品不适用的风险

迭代步骤

  1. 需求分析(requirements analysis)
  2. 设计(design)
  3. 编码(coding)
  4. 测试(testing)
  5. 部署和评估(deployment / evaluation)

敏捷开发与CI/CD介绍_第1张图片


持续集成、持续交付、持续部署介绍

持续集成

持续集成(Continuous Integration)指的是,频繁地(一天多次)将代码集成到主干。

好处
  • 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
  • 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
目的
  • 让产品可以快速迭代,同时还能保持高质量。
核心
  • 代码集成到主干之前,必须通过自动化测试。
  • 只要有一个测试用例失败,就不能集成。

敏捷开发与CI/CD介绍_第2张图片

持续交付

持续交付(Continuous Delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。

重点
  • 不管怎么更新,软件是随时随地可以交付的。

敏捷开发与CI/CD介绍_第3张图片

持续部署

持续部署(Continuous Deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

目标
  • 代码在任何时刻都是可部署的,可以进入生产阶段
前提
  • 自动化完成测试、构建、部署等步骤

敏捷开发与CI/CD介绍_第4张图片

你可能感兴趣的:(devops,devops,ci/cd,软件开发)