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