讨论了监控和可观测性实践,以及它们如何帮助开发团队更好地理解软件中的 bug 和其他错误。
IT 行业在最近已经变得指数级复杂——更多的环境、更多的连接设备、更多的数据和更多的发布更新。因此,用于监控现代应用程序和管理预测故障的遗留方法并不是最佳的工作方式。监控是实现增长和跟上技术带来的挑战的关键因素。
可观测性倾向于简化复杂性。为了有效地诊断和调试代码,系统必须在微服务体系结构中的行为是可观测到的。但是这个新的 IT 流行词与监控有什么不同呢?
监控是 IT 操作的一个不可缺少的元素,它提供了对当今高度分布式环境的可见性。但它并不完全是我们所了解的可观测性。机器学习和日志记录需要集成到单一环境中,以提高效率。简单地说,监控是可观测性的工具; 然而,后者有更多的工具和组件,使团队能够从他们的反应性问题转移到积极的决策制定和问题解决。
在这篇文章中,我们将看看监控和可观测性之间的区别,以及为什么它对你的组织很重要。
监控
基于 DevOps 的组织专注于将应用程序分解为基于微服务的架构,以减少修复时间,并在事故发生时提高可操作性。然而,由于现代系统非常复杂,监控系统应该能够提供可见性,并能够在系统发生故障时快速做出反应。
监控有助于确定系统或应用程序的状态结果。从应用程序的标准测试到执行运行状况检查,监控有助于识别异常和问题。通过监控,组织可以发现问题的根本原因,并获得对性能趋势和容量需求提供可操作的见解。
然而,监控一直在不断发展,改善了利益相关者的范围。例如,架构师使用这种技术来确定哪些模型或云模式可以帮助实现最佳 ROI。在应用程序开发中,可以使用监控工具根据性能结果来度量编码实践。
因此,监控对于构建仪表盘、分析长期趋势和在事件发生时发送警报非常重要。它使您能够了解您的应用程序或系统是如何运行的,它们的增长趋势,以及它们是否得到了适当的利用。因为监测数据高度分散和复杂的系统的局限性是缺乏线性生产故障。所以监控数据很难预测。
可观测性——它到底是什么?
虽然这个术语最近很流行,但可观测性的概念一直存在于线性动态系统中。根据控制理论,可观测性的概念被定义为从外部输出的信息推断框架的内部状态运行情况。它利用仪器来获得有价值的见解,这有助于有效的监控。这意味着如果没有一定程度的可观测性,监控过程就不可能进行。
通过可观测性,您可以量化和理解影响系统的内部因素。这将使您能够从结果无缝地导航到原因,即使在多个微服务体系结构中也是如此。一个可观测系统可以帮助你获得以下问题的答案:
- 性能瓶颈在哪里,请求需要接受哪些服务?
- 请求执行过程与系统行为有何不同?
- 请求失败的原因是什么?
- 每个微服务如何处理请求?
可观测性对于当今过于复杂的 IT 基础设施至关重要,因为有两个重要的因素需要考虑——应用程序的特性和交付的速度。今天的大多数组织都在拥抱动态微服务体系架构和容器化工作负载。因此,仅仅依靠监控是没有用的。
使用现代化的检测工具有助于更好地理解应用程序的属性和性能,这一点至关重要。这使得组织能够有效地处理影响生产和交付管道的高度复杂及分布式系统带来的挑战。
可观测性的主要支柱
首先,可观测性有三个支柱:
- 日志:这些是各种离散事件的绝对和有时间戳的记录,可用于检测应用程序或系统中不可预知的行为。它可以帮助您在出现问题时识别应用程序行为中的更改。
- 链路追踪:对于单个请求和事务,链路追踪能够记录在复杂分布式系统中从一个节点传输到另一个节点的过程。使您能够捕获特定请求或事务的详细信息。这使您能够:确定哪些元素导致了系统错误,检测性能瓶颈,并跟踪通过节点的流程。
- 度量:这是一个强大的工具,可以帮助团队了解一个方法所使用的内存总量,以及一个服务每秒可以处理的请求或事务数量。
监控和可观测性之间的关系
尽管存在差异,但重要的是要知道监控和可观测性是相辅相成的。然而,它们都有一个独特的目的。
监控使您能够检测到系统中的错误,而可观测性则帮助您更好地理解问题发生的原因。通过监控,可以跟踪应用程序或系统的总体运行状况和性能。它会收集关于应用程序如何运行的数据,包括连接性、瓶颈、停机时间和访问速度。
另一方面,可观测性通过帮助理解系统操作的什么
和为什么
,将您带入一个问题的深处。它为特定的失败模式提供了更多相关的和细粒度的洞察。因此,监控只提供已知事件和问题的答案,而可观测性让您获得对动态和复杂系统状态更新及问题原因有更深的洞察。
从这个意义上说,监控是可观测性的关键子集和功能,也就是说,一个系统只有在可观测的情况下才能被监控。重要的是要理解可观测性不是一个产品;相反,它是当今高度复杂和分布式环境的一个不可分割的属性,其中应用程序监控和现代仪表盘是最大的贡献者之一。
因此,组织应该专注于构建一个可观测的环境,它与监控交织在一起,以实现更大的结果。有效的培训应该帮助故障排除者和利益相关者学习如何使他们的系统更容易被观测到。这将包括产生更深刻的见解,协助监控设计,以及构建改进策略。
事实上,许多组织已经多走了一段路,建立了可观测性工程师
,而其他一些组织已经将可观测性实践和学习纳入了他们的新招募培训计划中。