浅谈云原生可观测性

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【1月更文挑战第23天】

随着云原生、微服务等新架构、新生态的引入和发展,可观测性(Observability)越来越多地被提及和重视。


1. 为什么云原生一定需要可观测性

  1. 架构复杂

在云原生时代,容器化的基础设施使应用自身变得更快、更轻,一台主机上可以快速部署和运行几十个甚至上百个容器[1],而Kubernetes等容器编排平台又提供了良好的负载均衡、任务调度、容错等管理机制。这样,在云原生中,一台主机上应用程序的部署密度及变化频率较传统环境有着巨大的变化。因此,需要可观测性来清晰地发现和记录主机快速变化的应用行为。


另外,应用架构的微服务化使应用之间的访问关系变得异常复杂,客户端的一次服务请求通常会产生包括服务和中间件在内的众多调用关系。清晰地观察到这种调用关系,无论是对于应用性能提升、故障定位还是安全检测,都有着重要的意义。


  1. 知彼知己

正所谓“未知攻焉知防”,面对云原生架构下的大规模集群以及海量灵活的微服务应用,如果不知道集群中都运行了什么,服务都在做什么,又何谈保护和防范?云原生的最终目标是通过自动化手段,实现敏捷的松耦合系统。因此,云原生安全也一定是符合这种自动化目标的。自动化的安全检测就需要有详细准确的运行状态数据作为支撑,为自动化的云原生安全提供充足的决策依据。可观测性恰恰天然地提供了这样的能力。


  1. 合规满足

“等保2.0”的四级要求尤其对应用可信提出了明确的动态验证需求,如何在不影响应用的功能、性能,保证用户体验的前提下,做到应用的动态可信验证成为重要的挑战。在云原生中,解决这个问题的核心在于准确地选择应用的可信度量对象,高性能地确定指标的度量值,以及收集和管理验证这些基准值,这些都是对云原生实现可观测的重要意义和应用价值。


2. 需要观测什么

要实现对整个云原生的可观测性,可以逐层实现对应的可观测性。


从基础设施层来看,这里的可观测性与传统的主机监控有一些相似和重合的地方,比如对计算、存储、网络等主机资源的监控,对进程、磁盘IO、网络流量等系统指标的监控等。


对于云原生的可观测性,这些传统的监控指标依然存在,但是考虑到云原生中采用的容器、服务网格、微服务等新技术、新架构,其可观测性又会有新的需求和挑战。例如,在资源层面要实现CPU、内存等在容器、Pod、Service、Tenant等不同层的识别和映射;在进程的监控上要能够精准识别到容器,甚至还要细化到进程的系统调用、内核功能调用等层面;在网络上,除了主机物理网络之外,还要包括Pod之间的虚拟化网络,甚至是应用之间的Mesh网络流量的观测。


从应用层来看,在微服务架构下,主机上的应用变得异常复杂,这既包括应用本身的平均延时、应用间的API调用链、调用参数等,还包括应用所承载的业务信息,比如业务调用逻辑、参数等信息。


3. 如何观测

实现云原生可观测性通常有多种手段和方法,不同手段的侧重点往往略有差别。主要从日志、指标、追踪三个方面来实现。


  1. 日志

日志(Logging)展现的是应用程序运行产生的事件或记录,可以详细解释其运行状态。日志描述了一些离散的、不连续的事件,对于应用程序的可见性是很好的信息来源,也为应用程序的分析提供了精确的数据源。但是日志数据存在一定的局限性,它依赖于开发者暴露出来的内容,而且其存储和查询需要消耗大量的资源。


  1. 指标

指标(Metrics)与日志有所不同,日志提供的是显式数据,而指标是通过数据的聚合,对一个程序在特定时间内的行为进行衡量。指标数据是可累加的,它们具有原子性,每个都是一个逻辑计量单元。指标数据可以观察系统的状态和趋势,但对于问题定位缺乏细节展示。


  1. 追踪

追踪(Tracing)面向的是请求,可以分析出请求中的异常点,但与日志有相同的资源消耗问题,通常需要通过采样等方式减少数据量。追踪的最大特点是它在单次请求的范围内处理信息,任何数据、元数据信息都被绑定到系统中的单个事务上。


最后在CNCF给出的云原生全景图(Cloud Native Landscape)中,将可观测性(Observability)和分析(Analysis)放在了同一个维度。一方面通过实现可观测性的工具,获取系统中各个维度的运行数据,从而对整个云原生架构下的应用运行情况有全面深入的了解;另一方面,在拥有了这些数据之后,可以进行安全性分析、运维故障分析、性能分析等。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
监控 Cloud Native
如何选择合适的云原生可观测工具
如何选择合适的云原生可观测工具
|
1月前
|
Kubernetes 监控 Cloud Native
全栈声明式可观测:KubeVela开箱即用且灵活定制的云原生应用洞察
KubeVela 是一个开箱即用的现代化应用交付与管理平台。本文我们将聚焦 KubeVela 的可观测体系,介绍云原生时代的可观测挑战及 KubeVela 的解决方案。
|
6天前
|
弹性计算 监控 Cloud Native
构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛
本次比赛旨在如何通过分析 ECS 性能数据和任务信息,综合利用深度学习、序列分析等先进技术,生成特定机器的性能指标。参赛者的解决方案将为云资源管理和优化决策提供重要参考,助力云计算资源的高效稳定运行和智能化调度。
|
1月前
|
自然语言处理 监控 Cloud Native
对话阿里云云原生产品负责人李国强:推进可观测产品与OpenTelemetry开源生态全面融合
阿里云宣布多款可观测产品全面升级,其中,应用实时监控服务 ARMS 在业内率先推进了与 OpenTelemetry 开源生态的全面融合,极大丰富了可观测的数据类型及规模,大幅增强了 ARMS 核心能力。本次阿里云 ARMS 产品全面升级的背景是什么?为什么会产生围绕 OpenTelemetry 进行产品演进的核心策略?在云原生、大模型等新型应用架构类型层出不穷的今天,又将如何为企业解决新的挑战?阿里云云原生应用平台产品负责人李国强接受采访解答了这些疑问,点击本文走进全新升级的阿里云可观测产品。
41904 9
|
17天前
|
人工智能 监控 Cloud Native
多款可观测产品全面升级丨阿里云云原生 5 月产品月报
多款可观测产品全面升级丨阿里云云原生 5 月产品月报。
|
1月前
|
存储 Prometheus 运维
【阿里云云原生专栏】云原生下的可观测性:阿里云 ARMS 与 Prometheus 集成实践
【5月更文挑战第25天】阿里云ARMS与Prometheus集成,为云原生环境的可观测性提供强大解决方案。通过集成,二者能提供全面精准的应用监控,统一管理及高效告警,助力运维人员及时应对异常。集成示例代码展示配置方式,但需注意数据准确性、监控规划等问题。这种集成将在云原生时代发挥关键作用,不断进化以优化用户体验,推动业务稳定发展。
150 0
|
1月前
|
人工智能 运维 监控
「云原生可观测团队」获选「InfoQ 年度技术内容贡献奖」
「云原生可观测团队」获选「InfoQ 年度技术内容贡献奖」
|
1月前
|
存储 Prometheus 监控
成本更低、更可控,云原生可观测新计费模式正式上线
成本更低、更可控,云原生可观测新计费模式正式上线
|
1月前
|
存储 缓存 监控
如何在云原生可观测工具中获得更好的性能
如何在云原生可观测工具中获得更好的性能
|
1月前
|
存储 人工智能 监控
日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新
阿里云日志服务 SLS 全面拥抱云原生和 AI,近一年持续进行技术创新,此次云栖大会上发布了在稳定可靠、高性能、开放易用、AI 加持、低成本等五个方面的全面升级。
102138 4