各个公司都在讲效能,都在设法进行提效,降低人力成本、机器成本,提供交付质量,本书从整个研发流程的各个阶段讲了如何进行研发效能提升,涉及项目管理、DevOps、工具、流程、度量、组织结构等方面的提效手段。
一、项目管理方面
常见的敏捷开发方法:scrum、极限编程、动态系统开发方法、特性驱动开发。其中scrum是我们常见的敏捷方法。
在落地敏捷开发中如何评估效果,需要建立适合的度量指标。五类研发效能的度量指标:质量指标、交付吞吐指标、产出指标、成本指标、业务价值指标
二、DevOps方面
1、DevOps
DevOps字面上是Development和Operations的组合,即开发、运维一体化,测试作为质量保障角色也会融合其中。一体化最大的优势就是打破壁垒、拉通职能,最终体现在效能的提升上,同时把握产品质量和业务增长的平衡点。
DevOps六大武器:标准化作业、快速失败、快速反应、高质量与高效率、降低成本、团队协作
持续集成与持续交付
2、DevSecOps
随着软件发布速度和发布频率的不断增加,传统的应用安全团队已经无法跟上发布的步伐来确保每个发布都是安全的,为了解决这个问题,需要在整个软件开发全生命周期中持续构建安全性,以便使DevOps团队能够快速、高质量的交付安全的应用。将安全测试转移给开发人员,是他们能够几乎实时的修复代码中的安全问题
DevSecOps工具:
静态应用安全检测工具(Static Application Security Testing,SAST)
动态应用安全检测工具(Dynamic Application Security Testing,DAST)
交互式应用安全检测工具(Interactive Application Security Testing,IAST)
软件成分分析工具(Software Composition Analysis,SCA)
3、AIOps
AIOps含义由算法升级为智能,即Artificial Intelligence for IT Operactions,并给出了AIOps相对权威的定义,指“整合大数据和机器学习的能力,通过松耦合、可扩展方式去提取和分析数据量(volume)、种类(variety)和速度(velocity)三个维度不断增长的IT数据,为所有主流IT运维管理(IT Operations Management ,ITOM)产品提供支撑。AIOps平台能够同时使用多个数据源、数据采集方法及分析和展现技术,广泛增强IT运维流程和事件管理效率,可用于性能分析、异常检测、事件关联分析、IT服务管理(IT Service Management,ITSM)和自动化等应用场景”
AIOps基于自动化运维,将人工智能技术和传统自动化运维结合起来,宏观看,其需要以下三方面知识:
要成功实施AIOps必须包含以下几大要素:
从AIOps的实施过程来看,整个过程通常包括数据采集、数据处理、数据存储、数据分析、AIOps算法等步骤
AIOps在运营保障中的应用场景,常见的有异常检测、故障检测、故障诊断、故障预测和故障自愈
AIOps在成本优化中的应用,常见的有资源优化、容量规划、性能优化
AIOps在效率提升中的应用,常见的有智能预测、智能变更、智能问答、智能决策
4、DevPerfOps
DevPerfOps全流程解读
1)代码本地开发和测试阶段的DevPerfOps实践
在代码本地开发和测试阶段,DevPerfOps时间主要包括:代码性能问题检查、代码级的算法时间复杂度、代码级的算法空间复杂度、函数级别的开发测试、接口级别的并发测试和慢SQL发现等相关实践
2)代码提交阶段的DevPerfOps实践
在代码递交阶段,DevPerfOps实践主要包括代码静态性能问题检查、单元测试级别的性能基线比较和接口级别的性能基线对比等相关实践
3)持续集成阶段的DevPerfOps实践
在持续集成阶段,DevPerfOps实践主要包括模块级别性能基准测试、模块级别的容量测试、模块级别的扩缩容测试、模块级别的压力测试、系统集成的性能测试等相关实践
4)持续发布阶段的DevPerfOps实践
在持续发布阶段,DevPerfOps时间主要包括系统级别的性基准测试、性能级别的压力测试、系统级别的容量规划、系统级别的扩缩容测试、系统级别的故障迁移测试、系统级别的稳定性测试、全链路压力测试等相关实践。
三、工具方面
1、基础类工具
造数据工具
流量回放工具
精准测试工具
异常测试工具
环境治理工具
2、进阶类工具
服务虚拟化
变异测试
高效API自动化测试的分层设计
高效GUI自动化测试的分层设计
AI在研发效能提升中的应用
单元测试用例的自动化生产
四、组织结构
业务中台
质量中台