PERF01-01 全生命周期性能管理
- 风险等级
高
- 关键策略
指定性能目标
从性能角度来看,最好为性能场景定义具体的、量化的、可测量的性能目标。若要设置这些目标,需要充分了解业务要求以及预期将提供的服务质量。 需要与业务利益干系人共同关键功能的体验要求,而不是只关注技术指标。通过明确地说明性能需求来控制性能,说明要足够明确,以便可以定量地确定软件系统是否满足该目标。具体要求:
- 定义明确的性能需求目标
- 避免使用定性的、模糊的性能目标
- 为每个性能场景定义一个或多个目标
- 性能指标项的粒度要合适
功能够用
在业务初期的设计阶段,要考虑简化组件/模块/方法/类的功能设计,避免设计面面俱到的多功能组件/模块/方法/类;调用功能时,避免功能过剩、并对性能影响较大的调用;选择云服务的时候,选择合适的云服务,结合业务的特征选择合适的云服务类型和规格,利用好云弹性的特性的优势。设计功能过于复杂的组件,有时候是为了通用,有时候则是一种不好的软件设计习惯。够用原则适用于自己设计或者调用已有的功能,使用时注意避免过度设计。
性能可观测
在业务系统开发维护阶段,采取措施(例如在关键点插入代码,探测器)使测试和分析负载场景、资源需求、性能目标达成一致。使用监控工具来分析历史趋势,并识别支配性占比的数据流和代码实现路径。本原则强调采取措施使性能指标可测试,可以利用商用工具测试质量指标,也可以在设计时考虑相关性能指标的可测试性措施。需要测试的数据包括响应时间,处理容量,也包括功能/模块被执行频度等指标。
通过优化提高效率
在初始阶段设置的目标考虑到各种约束和业务目标,随着业务的增长应不断进行调整。为了进一步优化性能效率,需要清楚地了解系统的使用方式、演变过程,以及平台或技术是如何随时间变化的。需要预留足够的时间来进行持续的性能优化,可以构建性能驱动的优化文化,让团队成员主动监视性能数据;通过指标数据驱动改进,使用新的设计模式和新的技术来优化体系结构。
性能优化成熟度模型