一、部署交付(掌握)
1. 软件部署
软件部署是软件生命周期中的重要环节,属于后期活动,通过配置、安装和激活保障软件后续运行。软件配置过程极大影响部署结果正确性,应用系统配置是主要错误来源。
2. 软件交付
传统软件交付指编程改代码之后到发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。
3. 持续交付
持续交付是一系列开发实践方法,确保代码能快速、安全地部署到生产环境,是完全自动化的过程,业务开发完成时可一键部署。
持续交付的改进体现:
需求阶段:使用用户故事代替传统需求文档
开发测试阶段:持续集成,测试人员尽早介入
运维阶段:打通开发和运维通路,保持环境统一
持续交付的优势:
缩短提交代码到正式部署上线的时间,降低部署风险
自动快速反馈,及时发现和修复缺陷
软件在整个生命周期内处于可部署状态
简化部署步骤,版本更清晰
交付过程可靠、可预期、可视化
4. 持续部署
持续部署方案:常用Kubernetes+Docker和Matrix系统。
部署原则:
部署包全部来自统一存储库
所有环境使用相同部署方式和部署脚本
部署流程阶梯式晋级,设置多个检查点,可有序回滚
整体部署由运维人员执行
仅通过流水线改变生产环境,防止配置漂移
不可变服务器
部署方式采用蓝绿部署或金丝雀部署
部署层次:完整镜像部署包括三个环节:Build-Ship-Run
Build:编译形成RPM包或Jar包
Ship:将第三方依赖和插件安装到环境中
Run:在不同地方启动整套环境
不可变服务器:容器部署将所有内容打包复制部署,解决第三方依赖库重构问题。
蓝绿部署和金丝雀部署:
部署方式 | 描述 |
|---|---|
蓝绿部署 | 准备新旧两个版本,通过域名解析切换将用户环境切换到新版本,出现问题可快速切回旧版本 |
金丝雀部署 | 先让少量用户使用新版本,观察是否存在问题,没问题再逐步适配所有用户 |
5. 部署和交付的新趋势(了解)
持续集成、持续交付和持续部署的出现反映了新的软件开发模式与发展趋势。
二、软件质量管理(掌握)
软件质量是软件与明确地和隐含地定义的需求相一致的程度。从管理角度,影响软件质量的因素分为3组:
影响软件质量的3个主要因素关系图
组别 | 质量特性 |
|---|---|
产品运行 | 正确性(按需要工作)、健壮性(对意外环境适当响应)、效率(计算机资源需求)、完整性(安全性)、可用性(能使用)、风险(能按计划完成) |
产品修改 | 可理解性、可维修性(可修复)、灵活性(可改变)、可测试性 |
产品转移 | 可移植性(另一台机器使用)、可再用性(重用部分)、互运行性(与其他系统结合) |
软件质量保证(SQA):建立有计划、有系统的方法,向管理层保证标准、步骤、实践和方法被正确采用。关注点集中在一开始就避免缺陷的产生。
SQA目标:以独立审查方式,从第三方角度监控软件开发任务执行,提供反映产品和过程质量的信息和数据,提高项目透明度。
SQA主要作用:给管理者提供预定义的软件过程的保证。
SQA主要任务:SQA审计与评审、SQA报告、处理不合格问题。
三、软件过程能力成熟度(掌握)
软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力,包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等。国家标准为《软件过程能力成熟度模型》(CSMM)。
1. 成熟度模型(了解)
CSMM模型由4个能力域、20个能力子域、161个能力要求组成。
2. 成熟度等级(掌握)
等级 | 结果特征 | 行为特征 |
|---|---|---|
1级:初始级 | 软件过程和结果具有不确定性 | 能实现初步软件交付和项目管理;项目无完整管理规范,依赖个人主动性 |
2级:项目规范级 | 项目基本可按计划实现预期结果 | 组织依据选择和定义管理规范,执行基础过程;为项目活动提供支持保障 |
3级:组织改进级 | 在组织范围内能稳定实现预期项目目标 | 在2级基础上持续改进;建立并持续改进组织标准过程和过程资产;项目根据特征实现目标并贡献过程资产 |
4级:量化提升级 | 在组织范围内能量化管理和实现预期目标 | 使用统计分析技术管理;建立量化的质量与过程绩效目标;建立过程绩效基线和模型;分析关键软件过程能力,预测结果 |
5级:创新引领级 | 通过技术和管理的创新实现组织业务目标持续提升,引领行业发展 | 在4级基础上优化革新;通过软件过程创新提升竞争力;将自身经验作为行业最佳案例推广 |
📌 记忆口诀:初项组量创(初始级、项目规范级、组织改进级、量化提升级、创新引领级)
四、本章真题小测
Q1:软件过程能力成熟度分为()级。
A. 2 B. 3 C. 4 D. 5
Q2:关于蓝绿部署的描述,正确的是()。
A. 蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中
B. 蓝绿部署是先让少量的用户使用新版本,并且观察新版本是否存在问题
C. 蓝绿部署当出现问题的时候,可以使用新版本,但业务逻辑和数据不受影响
D. 蓝绿部署如果出现问题,就及时处理并重新发布
Q3:软件质量保证的关注点是()。
A. 发现缺陷 B. 一开始就避免缺陷的产生 C. 修复缺陷 D. 记录缺陷
📩 答案:
Q1 答案:D解析:
CMM(软件能力成熟度模型)一共5 级:初始级、可重复级、已定义级、已管理级、优化级。
Q2 答案:A解析:
A:蓝绿部署维护蓝、绿两套环境(旧版本、新版本),通过切换流量 / 域名解析完成切换。
B:是 ** 金丝雀发布(灰度发布)** 的特点,不是蓝绿部署。
C:出问题要切回旧版本,不是继续使用新版本。
D:蓝绿部署故障是直接切回旧环境,不是原地修复重新发布。
Q3 答案:B解析:
SQA 软件质量保证:重在预防,一开始就避免缺陷产生。
A 发现缺陷、D 记录缺陷:属于测试活动;
C 修复缺陷:属于开发改错。
✅汇总答案
Q1:D;Q2:A;Q3:B