应用监测最佳实践:最适合您企业的方法是什么?

小型公司的女老板在车间的笔记本电脑旁包装商品

对于组织来说,了解其应用程序的运行方式至关重要,旨在确保应用程序满足对性能、可用性和整体最终用户体验的期望。这是通过应用监测以及使用应用监测软件来实现的。

从广义上讲,应用程序性能监视 (APM)软件可以衡量应用程序的性能、安全性和合规性,当未能满足性能基线时发送警报,深入洞察性能问题的根本原因,并使用自动化方式来解决检测到的问题,以免影响最终用户体验。强大的应用监测工具及其提供的洞察分析,有助于您的团队满足 SLA 要求并为业务做出更明智的决策。

应用监测领域正在不断发展。现在,许多解决方案已经超越了传统的应用程序性能监测 (APM) 工具,而转向可观察性,即“性能数据收集和分析技术,更适合现代分布式云原生应用程序的复杂性。”

应用监测策略因组织的需求而异,并且有一些特定类型的应用监测(其中一些比其他类型更适合您的组织),可用于帮助改善应用程序性能、运行状况、依赖关系、安全漏洞等。让我们来看看几种不同类型的应用监测。

应用监测的类型

选择合适的应用监测解决方案对于成功实施应用监测和管理至关重要,尤其是在当今 IT 环境中的应用程序数量不断增加的情况下。现代 IT 架构通常很复杂,因此,选择能够跨各种部署模型(例如公有云和私有云、混合云和多云)运行、同时还支持广泛集成的监测工具非常重要。

应用监测有多种类型,每种类型都有不同的用途。要确定最符合贵组织需求的软件解决方案和战略,首先要了解每种类型的工作原理和用途。(以下部分包含来自 IBM Application Performance Management 页面的信息。)

  1. 数字体验监测,即从最终用户设备上的用户界面收集性能指标,例如加载时间、响应时间、正常运行时间和停机时间。它有助于了解用户行为,从而及时排除和解决前端问题。(这曾经被称为最终用户体验监测,但后来扩大到承认非真人实体,如机器人或其他软件组件,它们也会与应用程序交互并且有自己的性能期望。)数字体验监测,通常支持真实用户监测,即监测实际用户在系统上的体验,以及用于生产和非生产环境中性能测试的合成监测。
  2. 应用监测,包括监测整个应用程序堆栈 - 应用程序框架(例如 Java 或 .NET)、操作系统、数据库、API、中间件、Web 应用程序服务器、UI - 以及 IT 基础设施监测,即对 CPU 利用率、磁盘空间和网络性能等因素进行采样。堆栈监测通常包括代码级跟踪,这有助于发现可能导致性能瓶颈的代码部分。
  3. 数据库监测,除了应用监测代理提供的数据集监测外,还对 SQL 查询或过程的性能进行采样。
  4. 可用性监测,监测应用程序和硬件组件的实际可用性(因为即使最终用户无法访问应用程序,应用程序也可以生成性能数据)。
  5. 性能监控通过测量响应时间和实时应用数据来评估应用程序性能,并主动发现问题,例如数据库查询缓慢、网络延迟增加和中央处理器 (CPU) 峰值。
  6. 资源监测可以说是一种更精细的应用监测方法,因为它可以跟踪 CPU、内存和存储等资源的利用率。通过监测资源利用率,组织可以优化应用程序资源的使用,并确保应用程序拥有必要的资源来高效且有效地运行。资源监测是云成本优化的关键组成部分,IBM® Turbonomic 平台就是专门为此而设计的。
  7. 安全监控可用于检测安全漏洞和威胁,如网络钓鱼和恶意软件欺诈或其他未经授权的访问尝试。它有助于组织保护其敏感数据并遵守行业法规。

APM 工具应具备哪些功能

找到能够超越传统 APM 工具功能的解决方案,是在现代应用程序堆栈中实现最佳应用程序性能的关键。在比较定价和其他可变因素时,需要考虑 APM 解决方案的某些功能:

  • 全栈可观察性:只能看到一块拼图并不能解决问题,您需要具备通过直观(且在理想情况下是可定制的)仪表板来查看整个环境和所有依赖项,以便了解 IT 环境的运行状态及其背后的原因。借助这种全面的了解,可帮助您在应用程序性能和资源配置方面做出更明智的决策。这种可见性不仅能让您的团队了解拟议决策的全部影响并满怀信心地向前推进,同时还可实现监控和管理流程的民主化,以便更多团队能直接访问它们需要的信息。
  • 自动化:如今,自动化已成为游戏的主流。要想手动跟进 IT 环境的方方面面几乎是不可能的,至少会花费大量成本,并让团队疲于奔命。您将需要一个利用自动化技术的工具,具有自动警报、自动生成报告或自动事件修复等功能,以减少 IT 和 DevOps 开发运维团队的手动工作量。
  • 可扩展性:您并不想随着业务增长而升级 APM 工具,而是需要一个能随业务无缝扩展的解决方案。寻找一种能收集、汇总、存储和分析来自您环境(包括移动设备和桌面设备)的数据的工具(即使您的环境变得越来越复杂),同时它还能提供有助于战略决策的洞察。
  • 根本原因分析和修复:寻找一种能够自动检测变化、问题和事件并提供上下文信息的工具。这样,对于影响应用程序的问题,可大幅减少调查和解决其根本原因所需的时间。解决方案具有基于阈值的智能警报,可自动检测和关联事件、问题和服务事件,并可自动识别每个事件可能的根本原因,因此能够将平均修复时间 (MTTR) 缩至更短。
  • 集成功能:您在管理 IT 环境时可能会使用许多不同的工具,这些工具协同工作得越好,工作流程就会越高效。例如,IBM® Instana Observability 与其他监测工具(如 Turbonomic 之类的日志管理和网络监测工具)集成,以提供跨整个 IT 基础设施的应用程序性能的综合视图,而无需插件或应用程序重启。此外,了解一下提供了哪些部署选项。一些 APM 软件提供本地部署和基于云的部署选项,为公司提供更多的安装选择。

应用监测最佳实践

通过了解不同类型的应用监控,您就能更轻松地实施最佳实践,从而帮助实现性能目标并维护 IT 环境的运行状态。设置或维护应用监控系统时,请牢记以下关键实践:

制定明确的性能目标

设定明确的性能目标,这些目标可以根据可量化的指标和关键绩效指标 (KPI) 进行衡量。设定目标后,就应该制定实现这些目标的计划,其中包括定期监测和分析性能数据来衡量进展情况。

如果您仍在努力定义性能目标,则可能需要考虑行业标准(比方说,资源利用率或停机时间)以及最终用户的期望,以帮助确定在您的业务环境中,哪些因素构成了糟糕、可接受或出色的性能。

监测适当的指标

可用的数据量可能非常庞大,而决定要跟踪哪些指标可能会令人困惑。了解哪些指标与您的目标最密切相关,将有助于您专注于最有价值的信息并屏蔽大部分噪音。对识别性能问题至关重要的常见指标包括:

  • CPU 使用率
  • 错误率
  • 响应时间
  • 请求率
  • 用户体验数据/反馈

设置自定义警报和通知

根据为您的组织和 SLA 制定的性能阈值来设置自定义警报和通知,这一过程至关重要。通常,没有一种放之四海而皆准的解决方案,您需要考虑与您的业务相关的用户流量、响应时间和错误率等因素。

借助定制的警报和通知,当问题出现时,相关团队成员会收到通知,以便在问题影响最终用户体验之前检查并解决问题。许多平台还支持自动修复。此处的关键是,您需要建立一个专门针对您的需求量身定制的系统,该系统可以近乎实时地提醒您的团队,以防止问题恶化。在设置系统时,您需要记住一些事项,以确保其有效运行:

  • 避免警报疲劳:避免团队必须迅速获知任何潜在问题,但警报过多会导致警报疲劳,而重要的警报也会淹没在嘈杂的噪音中。仔细定义哪些情况严重到需要发出警报,并考虑在可能的情况下将相关警报合并为一条通知。确保警报附带上下文信息,帮助团队快速解决问题。
  • 确定流程:确保有一个清晰简洁的流程,可迅速、适当地将关键问题上报,并将这一流程传达给所有相关方。
  • 简化通知:您的员工很可能已在多个平台上开展工作(其中包括电子邮件、Slack、项目管理软件等)。探索让用户在其已开展工作的位置接收通知的可能性;是否有可能将警报整合到当前使用的协作渠道中,从而避免您的团队必须采用另一平台?
  • 审查并完善:SLA 和技术会不断变化,而您的业务也在不断发展。重要的是根据您的业务来审查警报系统,并根据需要调整方法和加入新功能。

构建时考虑安全性和合规性

维护软件应用程序的安全性并确保遵守相关的合规性要求,应该是监测战略中的重中之重。在规划战略时,请考虑业务需求,以及需要使用哪些工具(例如加密或网络/用户访问控制)来满足这些需求。

一些行业有着严格的监管和合规标准,正确配置的监测系统是一种高效的方式,可向审计人员证明您的企业拥有一致的流程来保持合规性,并附有文件来证明这一点。

由于数据泄露可能带来巨大的财务和声誉影响,因此,您需要确保您的监测解决方案不仅可以跟踪性能,还要注重安全性。除了建立防火墙和强大的访问控制等安全系统外,您还需要确保监测软件能够跟踪诸如网络流量、用户活动和系统日志等内容。通过这种监测,您可以发现异常情况和潜在的安全事件,并减轻安全漏洞的影响。

充分利用自动化技术

现代环境往往过于复杂,无法高效地进行手动监测。为了保持竞争力,请考虑使用能够利用自动化的 APM 工具。例如,应用监测解决方案可以自动分析日志、自动执行根本原因分析并在发出警报时提供补救建议,或自动调整资源分配以适应需求的下降或激增,从而帮助您节省时间和金钱。

鉴于通过自动化流程可以分析的信息量和广度,以及可以提供的洞察深度,在应用监测中使用自动化可以帮助您更深入、更全面地了解您的环境,并有助于加速创新。

应用监测解决方案

IBM Instana ObservabilityIBM® Turbonomic 都可以帮助优化应用监测和性能。

Instana 的全自动实时可观察性平台超越了传统的应用程序性能监测解决方案,将性能数据置于上下文中进行快速识别,从而帮助预防和修复问题。Instana 以 1 秒的粒度自动提供连续的高保真数据,并在移动、Web、应用程序和基础设施的逻辑和实际的依赖关系环境中进行端到端跟踪。

IBM® Turbonomic 混合云成本优化平台旨在通过自动为您的应用程序提供其执行所需的确切资源,帮助您最大限度地利用应用程序资源支出。(不再过度配置!)

Turbonomic 支持您通过节省时间和优化成本的解决方案来消除资源猜测。您可以在无需人工干预的情况下实时不断地自动执行关键操作,以最高效的方式主动为堆栈每一层的应用程序使用计算、存储和网络资源。

 

作者

IBM Instana Team

IBM Instana