关于其他:What-is-observability|一文读懂什么是系统可观测性

36次阅读

共计 4457 个字符,预计需要花费 12 分钟才能阅读完成。

什么是可观测性?

可观测性是通过查看其输入来掂量零碎外部状态的能⼒。如果仅使⽤来⾃输入的信息(即传感器数据)能够预计以后状态,则零碎被认为是“可观测的”。尽管它仿佛是最近的流⾏词,但该术语起源于⼏⼗年前的管制实践(它是对于形容和了解⾃我调节零碎的)。然⽽,它越来越多地应⽤于提⾼分布式 IT 零碎的性能。在这种状况下,可观测性使⽤三种类型的遥测数据⸺指标、⽇志和跟踪⸺来提供对分布式系统的深⼊可⻅性,并容许团队找到⼤量问题的根本原因并提⾼零碎性能。

在过来⼏年中,企业以微服务、⽆服务器和容器技术的模式迅速采⽤了云原⽣基础设施服务,例如 AWS。在这些分布式系统中追踪事件的起源须要在云上、本地或两者上运⾏的数千个过程。然而传统的监控技术和⼯具很难跟踪这些分布式架构中的许多通信门路和相互依赖关系。

可观测性使团队可能更无效地监控古代零碎,并帮忙他们找到并连贯简单链中的影响,并将其追溯到起因。此外,它还使系统管理员、IT 经营分析师和开发⼈员可能理解他们的整个架构。

在本文中咱们将认真钻研可观测性:

l 它是什么
l 施行须要什么
l 您能够冀望您的组织从中取得什么益处。

监控和可观测性有什么区别?

监控和可观测性是相互依赖的不同概念。

监控:是您为进步零碎的可观测性而执行的操作

可观测性:是该零碎的一个属性,如功能性或可测试性

具体⽽⾔,监控是随着工夫的推移察看零碎性能的⾏为。监控⼯具收集和剖析零碎数据,并将其转化为可操作的⻅解。从根本上说,应⽤程序性能监控 (APM) 等监控技术能够告诉您零碎是启动还是敞开,或者应⽤程序性能是否存在问题。监控数据聚合和关联还能够帮忙您对系统做出更⼤的推断。例如,加载工夫能够通知开发⼈员无关⽹站或应⽤程序⽤户体验的⼀些信息。

另⼀⽅⾯,可观测性是掂量零碎外部状态能够从其内部输入的常识推断进去的水平的度量。它使⽤监控产⽣的数据和⻅解来全⾯理解您的零碎,包含其运⾏情况和性能。因而,零碎的可观测性局部取决于您的监控指标对系统性能指标的解释水平。

另⼀个重要的区别是,监控要求您提前理解须要监控的重要事项。可观测性让您能够通过观察零碎随时间推移的体现并询问相干问题来确定什么是重要的。

为什么可观测性很重要?

可观测性很重要,因为它能够让您更好地管制简单零碎。简略零碎的流动部件较少,因而更易于治理。监控 CPU、内存、数据库和⽹络情况通常⾜以理解这些零碎并对问题应⽤适当的修复。

分布式系统的互连部件数量要多得多,因而可能发⽣的故障数量和类型也更⾼。此外,分布式系统会不断更新,每次更改都可能导致新类型的故障。在分布式环境中,了解以后问题是⼀个巨⼤的挑战,次要是因为它⽐简略的零碎产⽣更多的“未知未知”。因为监控须要“已知的未知数”,因而通常⽆法充沛解决这些简单环境中的问题。

可观测性更适宜分布式系统的不可预测性,次要是因为它容许您在呈现问题时询问无关零碎⾏为的问题。“为什么 X 坏了?”或者“当初是什么导致了提早?”是可观测性能够答复的⼀些问题。

什么是容器和微服务中的可观测性?

容器和微服务中的可观测性裸露了⽣产中应⽤程序的状态,因而开发⼈员能够更好地辨认和解决性能问题。

容器服务(例如 Docker、Kubernetes 等)和微服务解决了停机工夫减少的⻛险以及与单体软件相干的其余问题,其中对单个代码库的任何更改都会影响整个应⽤程序及其依赖项。容器和微服务将应⽤程序合成为独⽴的服务,容许开发⼈员批改和重新部署特定服务⽽不是整个应⽤程序。

然⽽,基于容器的架构带来了新的挑战。相互依赖的微服务通常扩散在多个主机上,随着基础设施的扩大,⽣产中微服务的数量也在减少。这使得开发⼈员很难晓得以后在⽣产中运⾏的内容,从⽽导致更⻓的交付周期、停机工夫和其余问题。

可观测性解决了这些挑战,提供了分布式系统的可⻅性,帮忙开发⼈员更好地理解应⽤程序的性能和可⽤性。在发⽣故障时,它提供了疾速查明和调试或修复问题所需的管制。

可观测性中应用的次要数据类是什么?他们是如何应用的?

可观测性中应用的次要数据类是:

日志
指标
跟踪
它们通常被称为“可观测性的三⼤⽀柱”。

1. 日志
⽇志是在特定工夫发⽣的事件的⽂本记录,包含阐明事件发⽣工夫的工夫戳和提供高低⽂的无效负载。⽇志有三种格局:纯⽂本、结构化和⼆进制。纯⽂本是最常⻅的,但结构化⽇志⸺包含额定的数据和元数据并且更容易查问⸺正变得越来越流⾏。当零碎呈现问题时,⽇志通常也是您⾸先查看的地⽅。

2. 指标
指标是在⼀段时间内测量的数值,包含特定属性,例如工夫戳、名称、KPI 和值。与⽇志不同,指标在默认状况下是结构化的,这使得查问和优化存储变得更加容易,让您可能将它们保留更⻓工夫。

3. 跟踪
跟踪示意申请通过分布式系统的端到端旅程。当申请通过主机零碎时,对其执⾏的每个操作(称为“跨度”)都使⽤与执⾏该操作的微服务相干的重要数据进⾏编码。通过查看跟踪,每个跟踪都蕴含⼀个或多个跨度,您能够通过分布式系统跟踪其过程并确定瓶颈或故障的起因。

使⽤这些数据类并不能保障可观测性,尤其是当您彼此独⽴地使⽤它们或为每个函数使⽤不同的⼯具时。相同,您将通过在单个解决⽅案中集成您的⽇志、指标和跟踪来实现可观测性的胜利⽅法。当您这样做时,您不仅能够理解问题何时发⽣,还能够⽴行将留神⼒转移到理解这些问题发⽣的起因上。

如何实现可观测性?

为了实现可观测性,您须要对系统和应⽤程序进⾏适当的⼯具来收集适当的遥测数据。您能够通过构建⾃⼰的⼯具、使⽤开源软件或购买商业可观测性解决⽅案来制作可观测零碎。

通常,实现可观测性波及四个组件:

1. 仪表:这些是测量⼯具,可从容器、服务、应⽤程序、主机和零碎的任何其余组件收集遥测数据,从⽽实现整个基础架构的可⻅性。

2. 数据关联:解决和关联从整个零碎收集的遥测数据,从⽽创立高低⽂并为工夫序列可视化启⽤⾃动化或⾃定义数据治理。

3. 事件响应:这些⾃动化技术旨在依据随叫随到的时间表和技术技能将无关停电的数据提供给适合的⼈员和团队。

4.AIOps:机器学习模型⽤于⾃动聚合、关联事件数据并确定其优先级,使您可能过滤掉警报噪⾳,检测可能影响零碎的问题并在发⽣事件时减速事件响应。

良好的可观测性工具的规范是什么?

⽆论您抉择构建⾃⼰的解决⽅案还是使⽤开源或商业解决⽅案,所有可观测性⼯具都应该:

与以后⼯具集成

如果您的可观测性⼯具不适⽤于您以后的堆栈,您的可观测性⼯作将失败。确保它们⽀持您环境、容器平台、消息传递平台和任何其余要害软件中的框架和语⾔。

对⽤户敌对

如果您的可观测性⼯具难以学习或使⽤,它们将不会被增加到⼯作流程中 – 阻⽌您的可观测性打算开始施行。

提供实时数据

您的可观测性⼯具应通过仪表板、报告和查问实时提供相干⻅解,以便团队可能理解问题、其影响以及解决⽅法。

反对古代事件处理技术

无效的可观测性⼯具应该可能从您的堆栈、技术和操作环境中收集所有相干信息;将有价值的信号从噪⾳中分离出来,并增加⾜够的高低⽂,以便团队能够解决它。

可视化聚合数据

可观测性⼯具应该以易于了解的格局出现洞察⼒,例如仪表板、交互式摘要和⽤户能够疾速了解的其余可视化。

提供高低⽂

当事件发⽣时,您的⼯具应提供⾜够的高低⽂,让您理解零碎性能如何随工夫变动、变动与零碎中的其余变动有何关联、问题的范畴以及受影响服务的任何相互依赖关系或组件。如果没有可观测性能够提供的高低⽂,事件响应就会瘫痪。

应用机器学习

您的⼯具应该包含⾃动化数据处理和治理的机器学习模型,以便您能够更快地检测和响应异样和其余安全事件。

提供业务价值

确保您依据对您的业务很重要的指标来评估您的可观测性⼯具,例如部署速度、零碎稳定性和客户体验。

DeOps 中的观测性有哪些益处?

可观测性容许 DevOps 开发⼈员在任何给定工夫理解应⽤程序的外部状态,并能够拜访无关分布式⽣产环境中系统故障的更精确信息。⼀些次要益处包含:

更好的可⻅性

庞⼤的分布式系统通常使开发⼈员难以理解⽣产中的服务、应⽤程序性能是否强⼤、谁领有某个服务或零碎在最近⼀次部署之前的样⼦。可观测性使他们可能实时理解⽣产零碎,从⽽有助于打消这些阻碍。

更好的警报

可观测性帮忙开发⼈员更快地发现和修复问题,提供更深⼊的可⻅性,使他们可能疾速确定零碎中发⽣了什么变动,调试或修复问题,并确定这些变动导致了什么问题(如果有的话)。

更好的工作流程

可观测性容许开发⼈员查看申请的端到端旅程,以及无关特定问题的相干高低⽂数据,从⽽简化应⽤程序的考察和调试过程,优化其性能。

缩小会议工夫

从历史上看,开发⼈员必须通过第三⽅公司和应⽤程序跟踪信息,以找出谁负责特定服务或在最近部署前⼏天或⼏周内零碎的样⼦。通过无效的可观测性,这些信息很容易取得。

放慢开发⼈员速度

可观测性使监控和故障排除更加⾼效,打消了开发⼈员的次要摩擦点。后果是提⾼了交付速度,让 DevOps 员⼯有更多工夫提出翻新想法来满⾜业务及其客户的需要。

可观测性在软件工程中有什么益处?

与 DevOps ⼀样,可观测性通过提供对整个基础架构的洞察使软件⼯程师受害,使他们可能看到它如何因问题、部署新软件或扩大或缩减⽽发⽣变动。

谁从可观测性中受害?

个⼈开发⼈员和软件⼯程师从可观测性中受害,因为它提供了对整个架构的可⻅性,从第三⽅应⽤程序和服务到他们⾃⼰的。这不仅使他们可能更轻松地修复并最终预防问题,还促成对系统性能及其如何塑造更好的客户体验的更深⼊理解。开发⼈员和⼯程师都有更多的工夫来制订有利于业务的策略打算。

团队也受害,因为可观测性提供了环境的共享视图,随着工夫的推移提供了对其架构、衰弱和性能的更全⾯的理解。可观测性容许开发⼈员、操作员、⼯程师、分析师、项⽬经理和其余团队成员拜访无关服务、客户和其余零碎元素的雷同⻅解。此外,可观测性能够创立更精确的事件后审查,因为所有各⽅都能够查看实时零碎⾏为的书⾯记录,⽽不是将事件从孤⽴的单个起源拼凑起来。数据⸺⽽不是意⻅⸺将帮忙您的团队理解事件发⽣的起因,以便他们可能 更好地预防和解决将来的事件。

然⽽,企业可能受害最⼤。可观测性让您能够在不影响零碎稳定性的状况下更改应⽤程序和服务,为您提供⼯具来理解哪些⼯作无效,哪些⽆效,查明呈现的任何问题并疾速改良或解决这些问题。新性能与更少的停机工夫相结合,转化为更高兴的客户和更强⼤的底线。

结语:深⼊理解您的基础架构

可观测性不仅仅是⼀个流⾏语⸺它是理解整个基础设施状态的⼀种重要且有⽤的⽅法。云、容器化、微服务和其余技术使零碎⽐以往任何时候都更加复 杂。尽管这些⼯具的最终后果是踊跃的,但在这些零碎内⼯作、故障排除和治理却充斥了艰难。更多的交互局部会导致更多品种的问题,当它们发⽣时,更难检测和修复。

侥幸的是,这些分布式系统会产⽣⼤量遥测数据,如果您能够利⽤这些数据,能够更分明地理解它们的性能。无效的可观测性⼯具提供您捕捉零碎输入并将其高低⽂化并提供在古代分布式系统世界中蓬勃发展所需的洞察⼒所需的所有⼯具和剖析能⼒。

原文链接:https://www.splunk.com/en_us/…

正文完
 0