什么是应用性能管理 (APM)?

2024 年 11 月 13 日。

作者

Chrystal R. China

Writer, automation & ITOps

什么是应用性能管理 (APM)?

应用性能管理 (APM) 是一种使用软件工具、数据分析和应用程序管理流程来帮助组织优化业务应用程序的性能、可用性和用户体验的实践。

作为可观测性解决方案的前身,APM 使 IT 团队能够在应用程序性能问题对用户产生负面影响之前,对其进行可视化、预防、预测和解决。

APM 也是应用性能监控的缩写,监控工具可持续收集有关应用程序性能指标的数据,如响应时间、错误率、资源利用率和用户活动。这些术语经常互换使用;然而,性能监控只是整体应用性能管理策略的一个组成部分。

除监控外,APM 还使用数据分析流程(识别趋势、异常和性能瓶颈)、故障排除协议(自动进行根本原因分析和问题解决)和优化工具(主动解决性能下降问题,最大限度地提高用户的应用程序效率)。

APM 解决方案还能帮助 IT 团队分辨哪些应用程序和服务对用户最重要,以及性能问题会如何影响用户的工作效率。

有效的 APM 工具以及先进的可观测性解决方案,对于依赖软件应用程序向最终用户提供服务的组织来说,具有无价之宝的价值。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

APM 工作原理

APM 工具可帮助开发人员维护企业应用程序的健康和性能,尤其是当组织的应用程序组合分布在不同的 IT 环境(如混合云多云)时。虽然 APM 系统的具体配置因企业(和工具)而异,但大多数领先的 APM 工具都在五个关键维度内运行(最初由 Gartner Research 发布)。

最终用户体验监测 (EUEM)

被动和主动终端用户体验监控工具可评估用户如何体验应用程序并与之互动。被动监控是指持续收集实际用户的用户数据(来自传感器、网络流量和错误日志)。

主动监控可模拟用户活动,以便更好地理解和预测情景软件行为(例如,在意外流量激增时,应用程序可能会如何运行)。

例如,APM 软件中的体验监控工具可以运行行为脚本(或路径),模拟客户在电子商务网站结账过程中的体验。然后,软件可以监控脚本,了解应用程序处理付款的速度以及如何处理结账吞吐量。

运行时应用程序体系结构的发现和建模

运行时应用程序架构监控可提供应用程序底层架构的可见性。它使 IT 团队能够了解不同的应用程序组件和依赖关系(如数据库、服务器、网络设备和虚拟机)如何相互作用以支持应用程序。

APM 工具可自动完成建模过程,动态映射应用程序、服务、基础架构组件和用户交互的拓扑结构,尤其是跨内部部署数据中心私有云公有云(包括任何 SaaS 解决方案)和混合云环境的拓扑结构。APM 拓扑图可帮助 IT 团队快速识别性能瓶颈和优化机会。

用户定义的事务剖析

事务剖析也称为业务事务管理,它提供了一种更具体的监控方法。剖析功能可跟踪特定用户事务在应用堆栈中的移动过程,包括从用户设备到事务中涉及的每个应用组件或资源。

这种监控方法可让开发人员深入了解应用程序的关键特性和功能,从而在有问题或性能不佳的组件影响用户体验之前将其解决。

深潜式组件监测 (DDCM)

DDCM 专注于单个应用程序组件(如网络和应用程序服务器),监控特定代码段、外部服务调用、数据库查询以及代码级的其他元素。

检查特定应用程序组件可帮助团队快速确定性能问题的根本原因,并在不涉及无关组件的情况下进行有针对性的改进。

数据分析和报告

APM 软件会收集大量数据,而 APM 工具中的分析和报告功能是将捕获的数据转化为可操作洞察分析的核心。

APM 平台汇总从每个监控接触点收集的数据,创建易于理解的报告、仪表板和可视化内容,使 IT 团队能够识别性能趋势,并就解决方案和优化做出明智决策。

值得注意的是,Gartner Research 后来将其五个维度缩减为三个。最终用户体验监控现在称为数字体验监测 (DEM)。应用程序发现、跟踪和诊断 (ADTD) 包括三个以前独立但相互关联的功能:运行时架构发现、用户定义的事务剖析。报告和分析层面仍然是一个独立的功能。

IBM DevOps

什么是 DevOps?

Andrea Crawford 阐述了什么是开发运维、开发运维的价值,以及开发运维实践和工具如何帮助您完成从应用程序构思到生产的整个软件交付管道。本课程由 IBM 资深思想领袖主导,旨在帮助企业领导者获得所需的知识,以优先考虑能够推动增长的 AI 投资。

应用性能管理与应用性能监控

应用程序性能监控工具只侧重于监控,仅代表 APM 的一个方面。

传统的监控解决方案依赖于被称为"代理"的小型软件组件,这些组件部署在整个应用环境和支持基础设施中,定期(最多每分钟一次)对性能和性能相关指标(或遥测)进行采样。更现代的解决方案使用无代理监控,以非侵入方式收集数据,依靠网络流量分析来收集应用性能数据。

从很多方面来说,应用性能管理是应用程序维护生命周期中的下一个自然步骤(继监测之后)。应用性能管理系统可从应用程序性能数据和监控流程中获取洞察分析,帮助开发人员优化企业应用程序的性能和可用性。

APM 与可观测性

APM 解决方案为从应用程序内的服务获取丰富的数据和分析提供了一刀切的工具。它们使应用架构具有可观察性。虽然 APM 方法曾经足以满足高质量应用管理的需要,但现在却无法胜任管理具有多个运行时和多个层的分布式应用和服务的工作。

当今的应用程序依赖于服务和微服务,通常在容器化的 Kubernetes 集群中运行。这意味着需要多个运行时,每个运行时在架构内的不同位置输出日志。要使用 APM 适应多个运行时,开发人员需要部署多个 APM 工具。他们还需要使用日志流服务或其他聚合工具来整合各个地点的记录数据。

随着企业在架构中添加更多的服务和微服务,它们会带来更多的复杂性,在出现问题时更难跟踪请求。

可观测性解决方案采用整体的云原生方法来记录和监控应用程序,从而超越了 APM 工具。它们提供无缝流程自动化,并与历史上下文数据协同工作,帮助团队更好地优化企业应用程序。

借助可观测性工具,团队可以更好地了解服务如何相互协作(例如使用依赖关系图)以及如何融入整体架构。他们还可以使用可观察性解决方案来汇总和审核应用程序数据,并从这些数据中获得可操作的洞察分析。

APM 功能

如今的 APM 工具用途广泛,具有一系列可定制的功能,可帮助企业实施量身定制的 APM 战略。每项功能都能帮助 IT 团队在其应用程序生态系统中实现全栈可观测性。其中部分示例包括:

  • 应用程序监控:APM 工具监控整个应用程序堆栈,包括应用程序框架(如 Java 或 .NET)、操作系统和数据库、任何应用程序编程接口 (API) 或中间件以及网络应用程序服务器。
  • 错误跟踪: APM 解决方案可将相关的应用程序错误归类为问题组,为团队提供更多了解系统错误的背景信息,并最大限度地提高故障排除过程的效率。
  • 基础设施监控:利用 APM 基础设施监控协议,团队可以收集有关 CPU 利用率、磁盘空间和网络性能的数据。
  • 分布式跟踪:APM 工具使开发人员能够在数据请求穿越网络(从前端到后端服务)时对其进行跟踪,帮助团队监控每个请求的依赖性并隔离特定错误。
  • 数据库监控:APM 平台可帮助企业可视化主机级和查询性能指标(如顶级用户、程序和对象),并评估 SQL 程序,以确定数据库设计和资源饱和度如何影响应用程序性能。
  • 代码剖析:使用 APM 工具,团队可以拍摄代码性能快照,以发现哪些应用程序组件运行太慢或占用太多资源。
  • 数字体验监测:APM 工具可实施真实用户监测 (RUM) 和合成监测,以收集来自用户设备、机器人和其他非人类软件组件的性能数据(加载时间、响应时间、延迟、运行时间和停机时间)。
  • 物联网 (IoT) 监测: 由于用户通常使用移动设备访问应用程序,因此排除应用程序问题可能成为一个复杂、耗时的过程。APM 解决方案中的 IoT 监控功能可为团队提供跨连接设备的应用程序统一视图。

AI 和 AIOps:APM 的未来

与许多其他 IT 运营 (ITOps) 实践和解决方案一样,随着人工智能 (AI) 的普及和云计算的发展,APM 工具也发生了重大变化。

与传统 APM 工具相关的定期采样足以管理单体应用程序和传统的分布式应用程序(在这些应用程序中,新代码定期发布,工作流、依赖关系、服务器和相关资源广为人知或易于追踪)。

但如今,随着企业采用现代应用程序开发实践和云原生技术(如 Agile 和 DevOps 方法、微服务、Docker 容器Kubernetes无服务器功能),他们往往需要频繁部署新的应用程序组件,而且需要跨越多种语言和地点,因此无法依赖传统的监控策略。

此外,传统的 APM 技术通过监控代码执行来诊断问题。但如今基于云的 SaaS 应用程序包含数百万行代码,通常分布在不同的容器中。

因此,领先的 APM 工具部署了可实现全栈可观测性的尖端监控工具,并依靠 AI 和机器学习 (ML) 技术实时关联和分析数据。

AI 驱动的 APM 工具可以在复杂的分布式 IT 环境中工作,部署的 AI 算法可以快速分析大量性能数据,将性能数据与上下文数据关联起来,并找出性能问题的根本原因。

现代 APM 系统还使用 ML 模型生成预测性分析并预测性能趋势。借助自然语言处理 (NLP) 功能,APM 软件可以有条不紊地筛选性能数据,并为团队提供通俗易懂的洞察分析。

AI 技术并非没有挑战;可解释性、隐私和数据安全性是基于 AI 的 IT 工具的常见问题。然而,AI 驱动的 APM 软件可以大大加快监控和故障排除的速度,帮助企业就其应用程序组合做出更明智、更主动的决策。

APM 用例

APM 有助于确保企业软件应用程序保持高效和可靠。它们还有助于:

容量规划

基于历史性能数据,APM 工具可预测未来的资源需求,从而实现更有效的容量规划,并帮助企业在需求增长时扩展基础设施。

DevOps 开发运维集成

APM 可促进在软件开发生命周期内不断获得反馈。团队可以监控暂存和生产环境中的应用程序,帮助开发人员建立持续反馈的文化。

遵守服务水平协议 (SLA)

SLA 规定了大多数业务应用程序的性能标准,而 APM 服务则为维护 SLA 的合规性提供必要的数据。合规性指标还可用于利益相关者报告,以展示对 SLA 的遵守情况。

第三方 API 监控

对于使用外部 API 的应用程序,APM 工具可以跟踪 API 的响应时间和错误率,以便组织识别可能影响其应用程序性能的第三方服务问题。

APM 的优势

APM 工具可以帮助:

  • 增强用户体验。APM 工具可帮助企业保持较高的用户满意度和参与度,而这两者对于用户留存和声誉管理都至关重要。

  • 更快的 MTTD 和 MTTR。APM 使团队能够快速发现并修复性能问题和瓶颈,缩短平均检测时间(组织发现问题所需的时间)和平均修复时间(组织修复问题所需的时间)。

  • 更好地利用资源。 通过监测和分析性能数据,组织可以优化资源分配,节省更多成本并简化运营。

  • 提升业务灵活性。 APM 通过提供有关应用程序性能的实时反馈来支持灵活方法,从而实现快速迭代和持续改进。

  • 迁移更顺畅。 分布式跟踪和服务映射功能可帮助确保云迁移和现代化顺利进行,并且不会给网络带来错误。

  • 更好的员工协作。借助 APM 的端到端跟踪功能,前端和后端团队可以同时访问相同的数据,从而促进故障排除和优化流程的协作。
相关解决方案
应用程序性能监视 (APM)

使用 IBM Instana Observability 自动观察、监控和修复您的整个应用程序堆栈。

深入了解应用程序性能监控
应用程序管理服务

在您的定制应用程序组合中实现最佳性能,同时提高用户满意度。

深入了解应用程序管理服务
应用性能管理软件和解决方案

将全栈可观察性与自动化应用资源管理相结合,在性能问题影响客户体验之前将其解决。

深入了解应用性能管理解决方案
采取下一步行动

借助 IBM Instana Observability,达到全面的企业可观察性,从而实现快速、自动化和情境化的可见性,以了解整个应用程序环境的运行状况和可用性。

深入了解 Instana Observability 免费试用