为什么要从应用程序监控升级到可观察性?

监控只是观察和记录系统活动的过程。监控工具收集有关应用程序如何运行的数据。然后,该软件将数据发送到仪表板进行分析,如果超过了之前设定的阈值,可能会触发警报。

本文来自微信公众号“开源云中文社区”。

云原生的成功是一个微妙的平衡。你必须不断利用新的令人兴奋的技术,同时保持运维的稳定性和可靠性。

这并不容易。在基于容器的基础设施上采用微服务架构意味着你可以快速迭代更改并快速调整,以满足客户快速发展的需求。

但每次引入新工具、进行流程调整或更改应用程序或基础设施组件时,都有可能在环境中造成问题。什么坏了?哪里出问题了?云原生中经常有太多的复杂性和变量,无法快速分类。

此外,DevOps和系统可靠性工程(SRE)团队在新的云原生设置中还面临其他熟悉但不同的风险:

——人为错误比比皆是:在过去三年中,42%的企业因人为错误而停机。

——外部恶意行为者不断尝试:在过去12个月里,40%的全球企业遭受了基于云的数据泄露。

——检测的平均时间和修复的平均时间较长会影响运维:由于对复杂的云和混合环境的可见性很低,因此很难快速恢复在线。

——糟糕的应用程序性能会失去客户:在等待三秒后,50%的潜在客户会放弃你的网站。

所有这些都会直接影响您的业务。ITIC最近的一项调查发现,91%的企业每小时的停机成本超过30万美元,近一半(44%)的企业表示,一小时的停机费用可能超过100万美元。

在内部部署世界中,应用程序监控工具有助于跟踪和缓解这些问题。在云原生环境中,就没那么多了。

了解可观察性和监控之间的区别

监控只是观察和记录系统活动的过程。监控工具收集有关应用程序如何运行的数据。然后,该软件将数据发送到仪表板进行分析,如果超过了之前设定的阈值,可能会触发警报。

监控可以随时掌握应用程序的运行状况,帮助你对已知的故障点保持警惕。

作为监控的超集,可观察性包括所有这些功能以及更多功能。这是因为在对复杂的云原生分布式系统进行故障排除时,你需要更多、更多样化的工具。你遇到的失败是不可预测的,甚至是不能提前知道的。可观察性帮助团队在新的云原生世界中捕捉和补救所谓的“未知的未知”。

可观察性并不是一个全新的概念或技术类别;其根源在于监控。监控和可观察性都是控制理论的演变,控制理论是一个数学概念,利用复杂系统的反馈来改变其行为,使运维人员能够达到预期目标。其基本原理是,系统的可见“输出”可以帮助用户推断内部发生了什么。

目标上的主要差异

监控和可观察性之间最重要的区别是它们各自目标之间的巨大差距。

监控用于监视和提高应用程序性能。

可观察性更多的是使用云原生系统的内部测量来影响以业务为中心的结果或目标。对用户有什么影响?对客户有什么影响?如何更灵活地迭代?如何更快地为整个企业带来更多好处?可观察性是指有一种更宏观的方法来保持系统的运行。

可观测性的“三大支柱”

以下是三种类型遥测的概述:

——度量:对系统进行的测量,通常在一段时间内或超过一段时间。衡量标准有助于企业发现可能存在问题的地方。

——日志:一个或多个事件的带时间戳的记录。日志描述了问题的性质,以及为什么会发生这种情况。

——分布式跟踪:沿请求路径发生的事件的记录。分布式跟踪指示问题所在的位置,以帮助解决问题。

尽管这三种类型的遥测对实现可观察性至关重要,但越来越多的声音表示,可观察性不仅仅是数据收集和分析。

思考可观察性的一种方法是关注结果。这种方法定义了可观察性的三个阶段:知道、分类和理解。与传统定义的关键区别在于,在每个阶段,重点是尽快减轻对用户和客户的影响。

以下是三个阶段的工作原理:

——知道:首先你必须知道有一个问题。如果房子里着火了,第一个迹象通常是烟味。在云原生环境中,获得警报或调用页面以启动修复过程是至关重要的。

——分类:然后收集你的资源来解决问题。把火扑灭。确保你的用户和客户恢复正常工作。只有这样,你才能关心问题发生的原因和方式。

——理解:最后,在你解决问题后,试着找出“为什么”。然后将你学到的东西应用到系统中,以确保它不会再次发生。

可观察性的四个要素

领先的可观察性工具往往具有某些共同的特征。以下是评估可观察性平台时需要注意的四个关键问题。

1.拥抱互操作性

提供给可观察性工具的数据(度量、日志和跟踪)来自广泛的来源或工具。这些数据提供了对应用程序和基础设施的可见性,可以来自应用程序、服务、云、移动应用程序或容器中的工具。数据也有多种格式:开源、行业标准或专有。

越来越多的源代码,包括专有和开源,意味着可观察性工具必须从所有类型的仪器中收集所有数据,才能全面了解你的环境。

因此,DevOps和SRE需要一个可观察性平台,该平台通过开放工具对所有数据具有全面的互操作性,无论数据来自哪里或什么。

2.丰富的上下文

IT系统中的上下文与现实生活中的上下文相同。如果没有上下文,很难解释我们人类每天获取的“数据”。对于可观察性,同样适用。遥测数据非常重要,因为它可以深入了解应用程序和基础设施的内部状态。但上下文智能也很重要。

你可能想知道一个系统上周或昨天是如何运行的。系统运行的服务器的配置是什么?出现问题时,工作负载有什么异常吗?

领先的可观察性平台使你能够用上下文丰富数据,以消除噪声,识别真正的问题,并轻松找出如何解决问题。

3.用于可定制搜索和分析的可编程工具

你还希望能够定制可观察性工具,以便它们满足特定业务需求。

首先,后退一步。重要的是要理解,任何可观察性策略的关键都是设置适当的成功指标,并建立关键绩效指标(KPI),告诉团队何时达到这些成功指标。

尽管如此,传统的KPI虽然对监控和衡量应用程序性能很有用,但并不能表明问题如何影响依赖云原生环境的用户、客户和企业。没有人将这些点联系起来。

传统的答案是在仪表板中可视化KPI。DevOps和SRE专业人员必须超越仪表盘,将可观察性与业务成果完全联系起来。他们必须创建能够提供与KPI交互体验的应用程序,这些应用程序使用自动化的工作流程,并将外部数据与内部指标实时集成。

这使企业能够同时深入了解技术、业务和用户。团队可以针对特定的改进KPI做出数据驱动的决策,并且可以优化新软件投资的投资回报率(ROI)和有效性。可编程可观察性平台可帮助团队了解数据、系统和客户。这有助于你将正确的数据提供给正确的人员,以确保任何支持基础设施的业务都能顺利运行。

4.真相的准确来源

因为有这么多数据来自这么多地方,所以在不同的可观察性工具之间切换是令人眼花缭乱的(也是不可能的)。你希望从任何地方实时查看所有内容,从而完全了解整个系统。

可观察性如何提供帮助?

可观察性在许多方面帮助云原生业务。以下是将可观察性与基本监控区分开来的四个方面:

培育创新文化

可观察性能很快告诉你什么有效,什么无效,所以你可以不断提高性能、可靠性和效率,从而为业务带来好处。随着对技术如何支持业务的理解不断加深,可以不断优化基础设施和服务,以符合客户的期望,避免停机或服务中断。

明智地投资新的云和领先的工具

工程团队不再只监督物理计算硬件;现在,他们一直在争论数据和云基础设施。通过跟踪业务性能数据、内部流程和面向客户的服务(而不仅仅是系统可用性),IT可以更好地优先考虑任何呼叫页面或特定停机。这意味着IT可以为管理层提供必要的数据,以便为未来的软件、数据收集和云服务做出关键的投资决策。

实时了解数字业务表现

当将许多不同级别和类型的事实汇总到仪表板中时,你就可以准确地知道环境中发生了什么,以及它如何影响业务。

信息可以包括标准遥测数据、资源优化反馈、面向业务的KPI和用户体验指标。实时收集使你能够在客户注意到之前对任何事件做出响应。

加快云原生应用程序的上市时间

敏捷工作流程使开发人员能够快速创建、测试、迭代和重复,以更快、更少的错误将云原生应用程序投入生产。

但是,在任何系统中频繁的迭代都可能引入潜在的问题,并增加部署的风险。DevOps团队可以从可观察性中获得反馈,并通过持续交付和持续集成(CI/CD)更快、更有效地诊断和调试系统,以减少功能测试和部署之间的时间。

进化

管理云原生环境的DevOps工程师和SRE每天都面临挑战。他们必须不断了解分布式系统的复杂性,检测难以隔离的问题,并加快故障排除,这样业务就不会受到数字断开甚至故障的影响。

监控工具有自己的位置,但它们本身还不够。今天的企业必须了解他们正在部署的技术与企业成功之间的直接联系。他们必须用相关数据来支持业务需求。

同样重要的是,要持续掌握数据收集,以确保开发人员的生产力,满足快速上市的需求,并提供优秀的客户体验。

可观察性是监控软件向前迈出的自然一步。它通过数据成本控制、更快的修复时间和减少的停机时间,提供了在当今云原生市场保持相关性的竞争优势。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论