软件研发效能提升之美-2022年12月

各个公司都在讲效能,都在设法进行提效,降低人力成本、机器成本,提供交付质量,本书从整个研发流程的各个阶段讲了如何进行研发效能提升,涉及项目管理、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必须包含以下几大要素:

  • 数据源:大量并且种类繁多的IT基础设施
  • 大数据平台:用于处理历史和实时数据
  • 计算和分析:基于已有数据,通过计算与分析来产生新的数据,例如数据清洗、数据去燥等。
  • 算法:实现算法和分析的具体方法,以产生IT运维场景所需的结果
  • 机器学习:一般指无监督学习,可以根据苏啊发的分析结果来产生新的算法

从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在研发效能提升中的应用

单元测试用例的自动化生产

四、组织结构

业务中台

质量中台

猜你喜欢

转载自blog.csdn.net/wwxsoft/article/details/128433994