云原生景观:可观察性和分析解决了什么问题?如何解决的?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 云原生景观:可观察性和分析解决了什么问题?如何解决的?

云原生景观系列

  1. 叮,你收到一份云原生景观简介
  2. 云原生景观:供应层(Provisioning)解决了什么问题?如何解决的?
  3. 云原生景观:运行时层解决了什么问题?如何解决的?
  4. 云原生景观:编排和管理层解决了什么问题?如何解决的?
  5. 云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
  6. 云原生景观:可观察性和分析解决了什么问题?如何解决的


目录

日志记录( Logging)

是什么

解决了什么问题

它如何解决

相应的解决工具

监视( Monitoring )

是什么

解决了什么问题

它如何解决

相应的解决工具

跟踪( Tracing )

是什么

解决了什么问题

它如何解决

相应的解决工具

混沌工程( Chaos engineering)

是什么

解决了什么问题

它如何解决

相应的解决工具


《叮,你收到一份来自CNCF的云原生景观简介》中,我们对CNCF云原生生态系统做了概述。

《云原生景观:供应层(Provisioning)解决了什么问题?如何解决的?》中,我们探讨了供应层,该层主要致力于构建Cloud Native平台和应用程序的基础。

《云原生景观:运行时层解决了什么问题?如何解决的?》里,我们着重介绍了运行时层,涵盖了容器在云原生环境中运行所需的所有内容,包括容器运行时,容器存储工具,容器网络。

《云原生景观:编排和管理层解决了什么问题?如何解决的?》,我们介绍了编排和管理层, 弄清楚了如何将所有应用程序组件作为一个整体来组织和管理。

《云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?》,我们介绍了帮助工程师构建应用程序并使其运行的工具。

今天,我们开始介绍可观察性和分析。可观察性指的是,系统可以从其外部输出中被理解的程度。通过CPU时间、内存、磁盘空间、延迟、错误等来衡量,计算机系统都可以或多或少被观察到。分析是一项活动,你可以在其中查看这些可观察数据并理解它。

为确保服务不会中断,你需要观察和分析应用程序的各个方面,以便立即检测并纠正任何异常。这就是这个类别的全部内容。它运行并观察所有层,这就是为什么它在侧面而不是嵌入到特定层中。

此类别中的工具分为日志记录、监控、跟踪和混沌工程。请注意,名称有些误导,因为混乱工程更偏重可靠性,而不是一种可观察性或分析工具。


日志记录( Logging)

是什么

应用程序会发出稳定的日志消息流,以描述它们在给定时间所做的事情。这些日志消息捕获系统中发生的各种事件,例如失败或成功的操作、审计信息或健康事件。日志工具收集、存储和分析这些消息以跟踪错误和相关数据。与指标、跟踪一起,日志记录也是实现可观察性的工具之一。


解决了什么问题

收集、存储和分析日志是构建现代平台的关键部分。日志记录执行这些任务中的一项或全部。一些工具包含从收集到分析的各个方面,而另一些工具则专注于收集等单一任务。所有日志工具都旨在帮助组织处理其日志消息。


它如何解决

在收集、存储和分析应用程序日志消息时,你将了解应用程序在任何给定时间通信的内容。但请注意,日志表示应用程序发出的消息,它们虽然不一定能查明给定问题的根本原因,但是,随着时间的推移,收集和保留日志消息,将会帮助团队诊断问题。


相应的解决工具

虽然收集、存储和处理日志消息不是一个新问题,但云原生模式和 Kubernetes 已经导致我们处理日志的方式发生了重大变化。

适用于虚拟机和物理机的传统日志记录方法(例如将日志写入文件)不适合容器化应用程序,其中文件系统不会比应用程序更持久。像 Fluentd 这样的云原生环境日志收集工具中,与应用程序容器一起运行并直接从应用程序收集消息。然后将消息转发到中央日志存储进行聚合和分析。

Fluentd 是该领域唯一的 CNCF 项目。

流行语 热门项目
日志记录

Fluentd & Fluentbit

Elastic Logstash


监视( Monitoring )

是什么

监控是指对应用程序进行检测以收集、汇总和分析日志和指标,以提高我们对系统行为的理解。虽然日志描述了特定事件,但指标是在给定时间点对系统的度量——它们是两种不同的东西,但对于全面了解系统的健康状况都是必要的。监控包括从观察单个节点上的磁盘空间、CPU 使用率和内存消耗到执行详细的综合事务以查看系统或应用程序是否正确及时地响应的所有内容。有许多不同的方法来监控系统和应用程序。


解决了什么问题

在运行应用程序或平台时,你希望它按照设计完成特定任务,并确保它只能由授权用户访问。监控可让你了解它是否正常、安全、经济高效地工作,是否仅由授权用户访问,还可以让你跟踪的任何其他特征。


它如何解决

良好的监控使运维人员能够快速响应,并且可能在发生事故时自动响应。它提供对系统当前健康状况的洞察并观察变化。监控跟踪从应用程序运行状况到用户行为的所有内容,是有效运行应用程序的重要组成部分。


相应的解决工具

在云原生环境中进行监控,类似于监控传统应用程序。你也需要跟踪指标、日志和事件以了解应用程序的运行状况。主要区别在于某些托管对象是短暂的,这意味着它们可能不会持久,因此将你的监控与自动生成的资源名称联系起来不是一个好的长期策略。在这个领域有许多 CNCF 项目,但主流解决方案都是主要围绕 CNCF 毕业项目 Prometheus 展开。

流行语 热门项目/产品

Monitoring

Time series

Alerting

Metrics

Prometheus

Cortex

Thanos

Grafana


跟踪( Tracing )

是什么

在微服务世界中,服务通过网络不断地相互通信。跟踪是日志记录的一种特殊用途,它允许你的请求通过分布式系统时,跟踪请求的路径。 它比监视更进一步。


解决了什么问题

了解微服务应用程序在任何给定时间点的行为,是一项极具挑战性的任务。虽然许多工具提供了对服务行为的深入洞察,但很难将单个服务的操作与对整个应用程序行为的更广泛理解联系起来。


它如何解决

跟踪通过向应用程序发送的消息添加唯一标识符来解决此问题。该唯一标识符,允许单个请求通过你的系统时对其进行跟踪。你可以使用此信息查看应用程序的运行状况以及调试有问题的服务。


相应的解决工具

跟踪是一种强大的调试工具,可让你对分布式应用程序的行为进行故障排除和调试。这种功能是有代价的--需要修改应用程序代码以发出跟踪数据。

Jaeger 和 Open Tracing 是该领域的 CNCF 项目。

流行语 热门项目

Span

Tracing

Jaeger

OpenTracing


混沌工程( Chaos engineering)

是什么

混沌工程是指有意将故障引入系统以创建更具弹性的应用程序和工程团队的做法。混沌工程工具,提供了一种通过受控方式来引入故障,并针对应用程序的特定实例运行特定实验。


解决了什么问题

复杂的系统出现问题了,故障的原因有很多,因为分布式系统中的后果通常很难理解。接受混沌工程的组织接受失败会发生,而不是试图防止失败,在失败发生时尽快从中恢复。这称为优化MTTR(平均修复时间)。


它如何解决

在云原生世界中,应用程序必须动态适应故障——这是一个相对较新的概念。这意味着,当出现故障时,系统不会完全崩溃,而是会优雅地降级或恢复。混沌工程工具使你能够对生产环境中的软件系统上进行试验,以确保它们在发生真正的故障时也能这样做。

简而言之,你对系统进行混沌试验,是因为你希望确信它能够承受故障或意外情况。与其等待某事发生并发现,你可以在受控条件下对其施加压力,以找出弱点并在问题发现之前修复它们。


相应的解决工具

混沌工程工具和实践对于实现应用程序的高可用性至关重要。分布式系统通常过于复杂,任何一位工程师都无法完全理解,而且没有任何变更过程可以完全预先确定变更对环境的影响。通过引入深思熟虑的混沌工程实践,团队能够进行实践和自动化,从故障中恢复。Chaos Mesh 和 Litmus Chaos 是该领域的 CNCF 工具。

流行语 热门项目
混沌工程

Chaos Mesh

Litmus Chaos

正如我们所见,可观察性和分析层旨在了解系统的健康状况并确保其即使在恶劣条件下也能保持运行。日志工具捕获应用程序发出的事件消息,监控查看日志和指标,并跟踪各个请求的路径。结合使用这些工具时,理想情况下,你可以 360 度全方位了解系统中发生的情况。混沌工程有点不同,它提供了一种安全的方法来验证系统是否可以承受意外事件。


译文链接:The Cloud Native Landscape: Observability and Analysis – The New Stack


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
5月前
|
运维 Cloud Native 云计算
云原生技术在企业级应用中的应用与前景分析
随着云计算技术的快速发展,云原生技术作为一种优秀的应用架构模式,正在逐渐受到企业和开发者的关注。本文通过分析云原生技术在企业级应用中的应用情况和未来发展前景,探讨了其在加速企业数字化转型、提升应用性能和灵活性等方面的优势,以及面临的挑战和解决方案。
69 0
|
6月前
|
存储 运维 监控
探索云原生技术在大数据分析领域的应用
传统的大数据分析往往需要庞大的硬件设施和复杂的维护工作,给企业带来了昂贵的成本和管理难题。而随着云原生技术的发展,越来越多的企业开始将大数据分析迁移到云平台上,以享受弹性、灵活性和低成本的优势。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势和挑战,并展望未来的发展方向。
81 0
|
6月前
|
关系型数据库 分布式数据库 数据库
【阿里云云原生专栏】云原生时代的数据库选型:阿里云RDS与PolarDB对比分析
【5月更文挑战第24天】阿里云提供RDS和PolarDB两种数据库服务。RDS是高性能的在线关系型数据库,支持MySQL等引擎,适合中小规模需求;而PolarDB是分布式数据库,具备高扩展性和性能,适用于大规模数据和高并发场景。RDS与PolarDB在架构、性能、弹性伸缩、成本等方面存在差异,开发者应根据具体需求选择。示例代码展示了如何通过CLI创建RDS和PolarDB实例。
838 0
|
6月前
|
Kubernetes Cloud Native API
云原生技术专题 | 深入浅出分析云原生微服务的技术结构和架构设计
云原生技术专题 | 深入浅出分析云原生微服务的技术结构和架构设计
339 0
|
6月前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
153 0
|
6月前
|
存储 人工智能 监控
日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新
阿里云日志服务 SLS 全面拥抱云原生和 AI,近一年持续进行技术创新,此次云栖大会上发布了在稳定可靠、高性能、开放易用、AI 加持、低成本等五个方面的全面升级。
102434 4
|
机器学习/深度学习 自然语言处理 Cloud Native
探索在云原生环境中构建的大数据驱动的智能应用程序的成功案例,并分析它们的关键要素。
大数据索引: Google使用大数据索引来构建其搜索引擎,并实时处理全球各种语言的文本数据。 云原生基础设施: Google Cloud提供了强大的云原生基础设施,支持大规模数据存储和处理。 自然语言处理: Google使用自然语言处理技术来理解和索引文本数据,从而提供高质量的搜索结果。 实时搜索: Google的
168 0
|
存储 Cloud Native 大数据
在云原生时代,构建高效的大数据存储与分析平台
在云原生时代,构建高效的大数据存储与分析平台
316 0
|
存储 Cloud Native 中间件
云原生概要介绍-云原生架构模式分析
云原生概要介绍-云原生架构模式分析
云原生概要介绍-云原生架构模式分析