目录
- 软件
- 软件开发流程的演变
- 瀑布模型
- 敏捷模型
- XP
- SCRUM
- DevOps
一、软件
-
与计算机系统操作有关的计算机程序、可能有的文件、文档及数据。
二、软件开发流程的演变
1、瀑布模型
- 软件开发的各项活动严格按照线性方式进行
- 当前活动接受上一项活动的工作结果
-
当前活动的工作结果需要进行验证
瀑布模型优缺点
- 优点
- 开发的各个阶段比较清晰
- 强调早期计划及需求调查
- 适合需求稳定的产品开发
- 缺点
- 由于开发模型是线性的,增加了开发的风险
- 早期的错误可能要等到开发后期的阶段才能发现
2、敏捷开发模型
- XP
- SCRUM
XP - 极限编程
SCRUM
敏捷模型总结
- 增量迭代
- 小步快跑
3、DevOps
DevOps 生命周期
- 持续开发:交付成果被分解成各个任务节点,可以在很短的时间内开发并进行交付。包含编码、构建的阶段。编码阶段可使用svn、git等工具进行编码的维护;构建阶段可以使用打包工具将代码打包。
- 持续测试:使用自动化测试工具持续测试,如selenium、appium工具,unittest、pytest测试框架。
- 持续集成:不断与现有代码进行合并,如使用Jenkins工具从仓库提取代码进行构建。
- 持续部署:只有通过了持续集成的代码才会进入持续部署,可以使用docker让环境部署保持一致。
-
持续监控:通过线上监控提高软件质量、监控软件性能。运维人员监控用户行为,从而收集数据。
DevOps对发布的影响
- 减少变更范围
- 加强发布协调
- 自动化
CI / CD
- 持续集成(Continuous integration,缩写为CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
- 持续交付(Continuous delivery,缩写为CD) 是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。
CD与DevOps的关系
- DevOps的范围更广,是软件交付过程所涉及的多个团队之间的合作,并且将软件交付的过程自动化。
- 持续交付是一种自动化交付的手段,关注点在于将不同的过程集中起来,并且更快、更频繁地执行这些过程。
- DevOps可以是持续交付下的一个产物,持续交付的成果直接汇入DevOps模型。