text: 应用性能工程
  应用性能工程是一套特定的方法论，旨在解决应用系统性能受到了日益增加的分布式移动终端、云和地域间IT环境所带来的风险和挑战。 它包括角色、技能、活动、实践、工具在应用生命周期中每个阶段的交付，确保应用程序将设计、实现和运营可以满足性能要求。 应用性能工程指出， IT企业或组织需要首先设计应用程序的性能要求，并在整个应用生命周期中进行测试、测量和调整性能。
  与应用性能管理
  应用性能工程不同于应用性能管理，虽然两者都致力于确保高质量的最终用户体验。但应用性能管理更趋向于通过监测和报告实际最终用户的体验情况。而应用性能工程旨在通过利用预生产活动中的技术和最佳实践，在应用部署发布或提交给最终用户之前，根据性能预期进行验证和优化，主动避免代价高昂的性能事故。
  在过去的十年中，企业和组织越来越重视确保应用的成功交付，其中应用性能管理与网络和应用优化也曾引起过广泛关注，不过由于它们在应用程序开发或部署后才可以使用，所以这两种方法通常是被动型的手段。随着应用基础架构变得更加复杂，企业和组织认为业务流程的支持和保证具有更重要的意义，随之而然的是基础设施建设和IT管理的重点必然转向主动型性能的测试和验证。应用性能工程就是企业和组织在实施过程中形成的技术、技能和最佳实践。
  不过应用性能工程并能替代应用性能管理，两者都是必须存在并相辅相成的。应用性能工程和应用性能管理都应将应用系统的性能，包括从设计、部署再到管理，贯穿到整个应用生命周期中。应用性能工程和应用性能管理为性能信息带来持续性的反馈环： 应用性能工程以真实世界的应用程序行为创建性能基准和服务水平；应用性能管理利用应用性能工程测试结果来确定哪些监控警报阈值被触发。
  方法论
  根据美国国家标准与技术研究所，在应用程序部署后的问题查找和修复耗费了80%的总体拥有成本。但其中有三成的成本是可以通过进行更全面和更有效的软件测试手段来避免掉的。性能测试的价值及投资回报不单要用于避免成本消耗，也需要考虑其产生的商业利益。性能测试可以改善客户满意度、增加销售额、提高员工工作效率，并有助于避免后期出现部署发布成本等问题。
  当应用性能工程成本效益最大化的情况下，一个有效的策略能够在应用生命周期的前期部署阶段，对应用进行快速修复和性能优化。虽然企业或组织在应用性能工程中的做法各不相同的，但其核心都是对真实世界的情况进行模拟和重建，尤其当应用被实际使用或跨网络进行数据访问时，在这些情景下，若最终用户通过移动设备访问会出现带来更明显地差别和影响。在移动接入后，移动互联网的底层基础设施造成的延迟损伤，不仅影响移动用户的体验，也会影响到所有互联网用户。因此网络仿真是应用性能工程的重要组成部分，因为它能够对网络环境进行可靠地仿真，建立一个准确并能预测性能状况的测试环境。
  可以将应用性能工程方法论中的最佳实践和技术分为三个部分：探测、网络仿真测试、分析与优化。
  应用性能工程探测层需要探测到实际生产环境下最终用户体验的技术、服务和方法，包括探测用户地理位置、用户终端设备和应用系统的依赖项，如第三方内容交付网络和服务、业务流程、服务水平目标与实际网络情况的探测识别。
  了解这些实际的使用条件是预测用户体验并建立和验证性能水平基准的关键。随着移动互联网产业的兴起，产生了新的网络类型，如2.5G、3G、4G和LTE，基站距离产生的延时也需要探测并在应用性能中评估，这些都对应用性能工程中的探测方法的带来新的变化因素。探测层提供了不同地点的用户体验条件。从网络方面探测网络性能指标，如可用带宽、延迟、抖动和数据包丢失。而这些度量指标可以有效地在应用性能工程下阶段的网络仿真和测试中使用。
  传统的应用系统测试的失败，主要归结于缺乏能够再现影响分布式用户的真实世界的环境条件。而探测层能够在测试环境中精确有效地模拟真实应用系统使用场景。通常设备、服务和负载都可以在测试环境中重建，而这些要素之间的网络连接也必须能够关联到真实世界网络中。
  网络仿真就是用来模拟创建这些真实世界网络连接的技术和过程。因为在没有真实世界的条件下，无法得知网络上的最终用户体验以及与外部服务进行通信造成的影响，导致产生不可靠的测试结果。
  随着移动设备全球化大规模制造和应用以及云计算的兴起，网络的作用比以往更受“最后一公里”条件的性能影响，主要由于移动本身就具有动态特性。因此在任何移动或云部署情况下尤其需要结合网络仿真。
  应用性能工程方法论指出，当测试环境由仿真成真实世界的网络环境后，需要性能测试贯穿到整个应用生命周期和测试过程中，包括单用户、负载、可扩展性、容量和功能测试。通过性能测试为确保遵守业绩目标或服务级别目标提供了明确的质量保证测试。需要注意的是，测试并不是一次性活动，因为需求和生产网络的性能会随时间变化，尤其在移动网络中，测试条件可以根据需求和网络特征进行修改和重现。
  通过探测和网络仿真建立出的测试条件，可以使测试分析出的数据更准确地反映和预测出应用系统在真实世界中的表现。在应用性能工程框架中，性能分析可以使组织预测和验证性能水平、确定是否符合服务级别目标SLO或服务级别协议SLA、找出性能瓶颈的根本原因并进行诊断、修复和优化。
  功能和非功能性的绩效目标测试完成后，就可以对应用系统的处理能力进行测量和关键指标分析。这些信息需要按照地理位置分类，使测试人员和性能工程师可以根据每种用户群和网络环境条件，找出表现不佳的业务交易和性能问题根本原因。此外还需要进一步的细分测试结果，例如在分析移动应用测试场景中的每个设备类型的测试结果可能需要了解最终用户体验的设备或移动操作系统差异。
  隔离和修复性能问题需要在应用性能工程增加验证步骤。修复的结果必须在精确相同的条件下重新测试和验证。而网络仿真技术能够使测试环境仿真出相同的网络特性，所以测试结果才能可靠地显示出性能差异或是否出现新的问题。
  除了性能修复，也可以在性能问题并不明显时进行性能优化来提高应用性能。通过研究开发和部署最佳实践，包括使用第三方的产品和服务，可以实现性能进一步的提高。例如，网络加速器和应用交付控制器可提供潜在的性能优势。通过评估这些类型的解决方案，并准确地在相同条件下测试这些组件对应用性能的影响，确定可以对哪些产品提供最大的性能收益，产生的代价是什么。通过分析性能增益来保证投入达到最佳分配。
  的应用
  越来越多的企业正在采用积极主动的性能保证措施，建立卓越性能中心，从而使性能成为应用的关键成功因素。在应用发布前，不仅需要通过常用的负载和压力测试手段测试应用系统的功能和容量，随着性能要求不断增加，也需要进行测试性能和网络延迟对应用系统响应时间的影响。应用性能工程方法论使企业把应用性能当成标准需求，并对性能测试和最终用户体验需求在企业范围内建立政策规范。