-
软件
软件是与计算机系统操作有关的计算机程序、可能有的文档及数据 -
软件生命周期
1、定义问题
@startuml
scale 10
|定义问题|
start
:搜集需求;
:可行性研究;
:需求分析;2、软件开发
|软件开发|
:概要设计;
:详细设计;
:编码;
:测试;3、软件维护
:纠错性维护;
:改进性维护;
:报废;
stop
@enduml -
软件开发模型
为了使软件开发的工作系统化并且可控制;
需要采用合适的软件开发模型和开发过程管理所有的活动。
@startuml
scale 10
title 软件开发模型
:瀑布模型;
软件开发的各项活动严格按照线性方式进行。
当前活动接受上一项活动的工作结果。
当前活动的工作结果需要进行验证。
瀑布模型优缺点
优点:
开发的各个阶段比较清晰。
强调早期计划及需求调查。
适合需求稳定的产品开发。
缺点:
早期的错误可能要等到开发后期的阶段才能发现。
由于开发模型是线性的,增加了开发的风险。
:敏捷开发模型;
适用于需求频繁变化和需要快速开发的场景。
XP
SCRUM
敏捷模型总结:
增量迭代
小步快跑
:DevOps 模型;
DevOps 生命周期:
持续开发
持续测试
持续集成
持续部署
持续监控
@enduml
-
DevOps 对发布的影响
减少变更范围
强发布协调
自动化 -
CI/CD
持续集成(Continuous Integration,缩写为 CI):
一种软件开发实践。
团队开发成员每天可能会发生多次集成。
每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证。
根据测试结果确定新代码和原有代码能否正确地集成在一起。
持续交付(Continuous Delivery,缩写为 CD)
是一种软件工程手法。
让软件产品的产出过程在一个短周期内完成。
保证软件可以稳定、持续的保持在随时可以发布的状况。
目标:
让软件的构建、测试与发布变得更快以及更频繁。
减少软件开发的成本与时间,减少风险。 -
CD 与 DevOps 的关系
DevOps 的范围更广:
DevOps 是软件交付过程所涉及的多个团队之间的合作。
并且将软件交付的过程自动化。
持续交付是一种自动化交付的手段:
关注点在于将不同的过程集中起来。
并且更快、更频繁地执行这些过程。
总结:DevOps 可以是持续交付下的一个产物,持续交付的成果直接汇入 DevOps 模型。