文章目录
- 引言
- 一、软件开发概述
-
- 1. 软件开发生命周期
- 2. 软件开发瀑布模型
- 3. 软件的敏捷开发
-
- 3.1 迭代开发
- 3.2 增量开发
- 3.3 敏捷开发如何迭代
- 3.4 敏捷开发的好处
- 二、持续集成概述
-
- 1. 什么是持续集成
- 2. 持续集成的流程
- 3. 持续集成的组成要素
- 3. 持续集成的好处
引言
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。
一、软件开发概述
1. 软件开发生命周期
软件开发生命周期又叫做 SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合。如下图所示 :
优势 | 劣势 |
---|---|
简单易用和理解 | 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量 |
当前一阶段完成后,您只需要去关注后续阶段 | 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险 |
为项目提供了按阶段划分的检查节点 | 瀑布模型的突出缺点是不适应用户需求的变化 |
3. 软件的敏捷开发
敏捷开发(Agile Development) 的核心是迭代开发(Iterative Development)与增量开发(Incremental Development) 。
3.1 迭代开发
- 对于大型软件项目,传统的开发方式是采用一个大周期(比如一年)进行开发,整个过程就是一次”大开发”
- 迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次”大开发”变成多次”小开发”,每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
3.2 增量开发
-
软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。
-
举例来说,房产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司第一个迭代就是交付1 楼,第二个迭代交付2 楼 每个迭代都是完成一栋完整的楼。而不是第一个迭代挖好10栋楼的地基,第二个迭代建好每栋楼的骨架,第三个迭代架设屋顶…
3.3 敏捷开发如何迭代
虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。
根据持续集成的设计,代码从提交到生产,整个过程有以下几步:
-
① 提交
流程的第一步,是开发者向代码仓库提交代码。所有后面的步骤都始于本地代码的一次提交(commit) -
② 测试(第一轮)
代码仓库对 commit 操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试 -
③ 构建
通过第一轮测试,代码就可以合并进主干,就算可以交付了;
交付后,就先进行构建(build),再进入第二轮测试;
所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等 -
④ 测试(第二轮)
构建完成,就要进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要移到第一轮测试前面 -
⑤ 部署
过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包(tar ename.tar * )存档,发送到生产服务器 -
⑥ 回滚
一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符 链接,指向上一个版本的目录。
3. 持续集成的组成要素
- 一个自动构建过程, 从检出代码、 编译构建、 运行测试、 结果记录、 测试统计等都是自动完成的,无需人工干预
- 一个代码存储仓库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,一般使用 SVN 或 Git
- 一个持续集成服务器,Jenkins 就是一个配置简单和使用方便的持续集成服务器
3. 持续集成的好处
- 降低风险,由于持续集成不断去构建,编译和测试,可以很早期发现问题,所以修复的代价就少
- 对系统健康持续检查,减少发布风险带来的问题
- 减少重复性工作
- 持续部署,提供可部署单元包 (方便测试工程师做单元测试)
- 持续交付可供使用的版本
- 增强团队信心
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8582 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!