作者:软件质量保障 知乎:https://www.zhihu.com/people/iloverain1024
微服务和分布式架构已成为构建服务应用程序的新模式。随着对软件可扩展性要求的提高,系统的复杂性和动态性也在不断提高。在微服务架构中增加服务之间的交互使得理解、识别和解决环境或服务中的异常行为更为复杂。 可观测性提供对分布式应用程序的深入可见性,以便更快、自动化地识别和解决问题。
什么是可观测性?
一般来说,可观测性是基于对其外部输出的了解即可评估复杂系统的内部运行状态的程度。系统越可观测,你就可以越快速准确地从已识别的问题定位到其根因,而无需额外的测试或编码。
在云计算中,可观测性还指用于聚合、关联和分析来自分布式应用程序及其运行的硬件的稳定的性能数据流的软件工具和实践,以便更有效地监控、排除故障和调试应用程序以满足客户需求体验期望。
作为一个相对较新的话题,可观测性经常被错误地说成是对“监控”的包装。事实上,可观测性是 APM(application performance monitoring) 数据收集方法的自然演变,它更好地解决了云原生应用程序部署日益快速、分布式和动态的特性带来的难题。可观测性不会取代监控——它可以实现更好的监控。
可观测性核心要点
可观测性平台通过与内置于应用程序和基础架构组件中的现有工具集成。可观测性的四个核心点:
- Logs。日志是应用程序事件的粒度、时间戳、完整且不可变的记录。除其他外,日志可用于创建每个事件的高保真、逐毫秒记录,以及周围的上下文,开发人员可以“回放”以进行故障排除和调试。
- Metrics。指标(也称为时间序列指标)是在给定时间段内应用程序和系统运行状况的基本衡量标准,例如应用程序在五分钟内使用了多少内存或 CPU 容量,或者应用程序在一段时间内经历了多少延迟。
- Traces。跟踪记录每个用户请求的端到端“痕迹”,包括从 UI 或移动应用程序到整个分布式架构再返回给用户的过程。
- Dependencies(也称为依赖关系图)揭示了每个应用程序组件如何依赖于其他组件、应用程序和 IT 资源。
收集这些数据后,可观测平台将其实时关联,以向 DevOps 团队、SRE团队和 IT运维人员提供完整的上下文信息。
可观测性的好处
可观测性的最大好处是,更可观测的系统更容易理解,更容易监控,更容易和更安全地部署新代码,并且更容易修复bug。更具体地说,可观测性促进敏捷/DevOps/SRE目标实现,即通过使组织能够更快地交付更高质量的软件:
- 发现并解决“未知的未知数”——你不知道但确实存在的问题。监控工具的一个主要限制是它们只关注“已知未知数”——你已经知道的问题。
- 在开发早期发现并解决问题。可观测性将监控纳入软件开发过程的早期阶段。DevOps 团队可以在影响客户体验之前识别并修复新代码中的问题。
- 能实现自我修复应用程序的基础架构。将可观测性与 AIOps 机器学习和自动化功能相结合,根据系统输出预测问题并在无需管理干预的情况下解决问题。
它可不是监控
监控是指通过系统地收集、分析和实施来自系统的数据来定期跟踪软件和基础设施的性能。监控的目的是确定你的软件和底层基础架构的实时性能如何,以确保性能水平符合预期。监控 IT 环境涉及使用工具和技术的组合来建立基础架构的同时性能和已识别问题的解决。
1.监控是可观测性的先决条件。在监控处理收集数据的同时,可观测性收集、存储、查询和可视化这些数据,使专业人员能够轻松地了解每个系统行为背后的原因。
2.监控为你提供有关系统中的问题或故障的信息,而可观测性让你了解导致故障的原因、发生地点以及发生原因。
3.不受监控的系统是不可观测的。
4.可观测性 发现&解决未知的未知问题。监控 发现已知的问题。
推荐几个国外可观测性平台
国内的讲解可观测性平台的文章较少,这里就推荐几个国外的平台帮助大家更深入了解下。
感兴趣的可以了解下蚂蚁的AntMonitor平台: 十年磨一剑-蚂蚁集团可观测性平台 AntMonitor 揭秘
ContainIQ
ContainIQ 是专为 Kubernetes 部署而设计的全新可观测性工具。它在一个引擎盖下提供指标、日志记录、警报和可视化。使用 ContainIQ 的主要好处之一是其易于安装。并且能够快速关联多条数据(例如指标到事件到日志)。ContainIQ 用户可以监控和衡量所有微服务和 URL 路径的HTTP 响应延迟。
AppDynamics
AppDynamics 是市场上主要的可观测性解决方案之一。它提供了一整套工具,用于深入了解你的应用程序和基础架构。其突出特性包括终端用户体验监控、运行时架构建模、组件深度监控等。运行时架构建模是对极少数平台提供的功能。它使你能够在请求从用户传输到你的基础架构并以响应的形式返回用户时对其进行跟踪。
DataDog
Datadog 是一个专注于协作和连接的可观测性平台。其突出的产品功能包括网络监控、传统应用程序性能监控以及日志管理、综合监控等。Datadog 提供开箱即用的直观仪表板,帮助你快速开始可视化。
Datadog 的仪表板易于定制和协作。
Dynatrace
Dynatrace 是监控行业的大玩家之一。它提供了诸如终端用户体验监控、用户定义的事务分析、组件深度监控等尖端功能。它在操作中大量利用人工智能,可以帮助你准确预测应用程序未来的行为。
Dynatrace 提供广泛的第三方集成来帮助你连接你的生产力工具和服务。它还提供自动化的智能警报,可以随着时间的推移了解你的应用程序的趋势并自我改进。
Honeycomb
Honeycomb 是一个可观测性的平台,可提供对应用程序性能的洞察。它的一些突出功能包括查询历史记录和社交调试。它提供了一个灵活的数据模型,在该模型下,用户可以自由地检测代码,而不必担心所涉及的数据结构。它使用户能够查看他们的应用程序并识别任何业务事件中发生的事情。
LightStep
Lightstep 是一种可观测性解决方案,旨在监控云原生应用程序的运行状况并响应其变化。
LogicMonitor
LogicMonitor 是一个基于 SaaS 的可观测性平台。它提供对网络、服务器、应用程序、网站和其他基础设施组件的可观测性。它以其强大的警报和动态阈值而闻名。其突出的产品之一是云服务监控。它还可以检测使用趋势中的异常情况并相应地通知你的团队。
LogicMonitor 利用 AIOps 为你的平台提供更有价值、可操作的见解。它使用警报预测和数据使用预测来减少混乱并提供更可靠和更好的体验。
New Relic
长期以来,New Relic 一直是市场上主要的可观测性解决方案之一。使用此工具,你可以获得丰富而详细的交易数据。它的主要功能之一包括云服务工具,这使其与现代分布式架构兼容。
New Relic 提供广泛的第三方集成以促进协作,但是,它的用户界确实很丑。
- END -