简介
性能工程成熟度模型,是由 Thoughtworks 安全与系统研发业务线和西安邮电大学计算机学院共建的“软件性能工程联合实验室”发布的一组能力成熟度评估模型,用于识别组织性能工程体系建设的现状和改进方向。
该模型从架构设计、研发编码到测试看护和持续运营等环节,关注全流程的性能实践,包括性能建模、性能观测、看护定界和性能分析及优化。通过性能工程成熟度级别,组织可以评估其性能工程能力建设的状态,有针对性地定义目标,提升性能工程水平,推动系统性能的标准化和规模化改善。
什么是性能工程
性能工程是一种系统性的工程化方法,目标在于通过整合设计、构建工具链和研发工作流程,实现系统性能的标准化、规模化改善和守护。对性能工程能力的建设,可简要概括为如下方面:
通过构建闭环的性能工程反馈系统(DevPerfOps),从性能建模、性能测试、看护定界到迭代优化,实现全流程性能关注。
通过积累专家经验形成知识库,以数据与度量指标驱动架构设计决策,形成性能优化标准实践,降低性能优化门槛。
通过自助性能分析工具链,提供一站式的性能分析平台,简化操作、降低工具学习和使用成本。
因此,性能工程的核心在于多种实践相结合,构建持续的性能反馈机制和实践,以推动系统性能的不断改善。(关于性能工程的更多细节,请参考性能工程系列文章)
目标受众
性能工程成熟度模型的受众涵盖产品研发生命周期的多个阶段,包括以下几个方面的角色:
- CTO/CIO和技术总监:关注组织的整体性能工程水平,通过模型的评估结果了解组织在性能方面的成熟度,指导战略规划和资源分配。
- 软件架构师:通过模型了解和评价组织在架构设计和性能建模方面的实践成熟度,从而更好地理解性能目标,进行性能建模,指导软件设计。
- 开发人员:通过模型了解组织在代码研发阶段的性能实践水平,参照既有性能设计和目标,为其提供优化方案和改进建议。
- 测试人员:模型为测试人员提供了性能测试和验证的方向,帮助他们构造和评价测试系统,确保测试环节覆盖关键性能路径,改善测试效果。
- 运维人员:模型为运维人员提供了性能观测和分析的实践方向,帮助他们认识性能变化趋势并给出性能预警和建议,确保系统运行的高效和稳定。
模型表
![](/content/dam/thoughtworks/images/photography/inline-image/insights/blog/platforms/blg_inline_maturity_model.png)
![](/content/dam/thoughtworks/images/photography/inline-image/insights/blog/platforms/blg_inline_maturity_model.png)
建设性能工程的演进路线
基于性能工程成熟度模型表,企业和组织可以参考如下的演进路线来建设性能工程的能力体系:
![](/content/dam/thoughtworks/images/photography/inline-image/insights/blog/platforms/blg_inline_evolutionary_road.png)
![](/content/dam/thoughtworks/images/photography/inline-image/insights/blog/platforms/blg_inline_evolutionary_road.png)
系统化:在架构评审流程中,引入性能建模,建立团队性能优化意识;同时通过可观测性指标采集工具的完善提升排查问题效率。
数据化:性能看护集成CI,积累指标变化趋势,使用积累的数据驱动架构设计决策。
知识化:保持组织内经验交流,建立知识库,形成对反模式的共同认知。
资产化:针对常见问题形成可快速复用的优化思路,最终产出公共平台化组件能力。
常态化:通过总结工程方法将性能工程活动融入研发周期流程。
智能化:通过积累的性能优化经验,训练优化大模型,快速给出优化建议。
结语
数年来,改善软件性能都十分依赖专家经验,理由很充分:它需要技巧。我们希望通过工程化的模式将这种技巧放大和复用,让性能分析和优化有章可循。
作为一个用于评估组织性能工程实践水平的框架,性能工程成熟度模型覆盖了软件研发的全流程,关注性能建模、知识库固化和自助性能分析。
通过不同成熟度级别的定义以及参考的演进路线,我们期望该模型能帮助组织识别性能工程建设的方向,并持续地向构建高性能软件的目标迈进。
免责声明:本文内容仅表明作者本人观点,并不代表Thoughtworks的立场