科技云报道:2023年,可观测性迎来哪些新趋势?

news2024/11/15 7:13:04

科技云报道原创。

可观测性不是一个新鲜的名词,但是近年来随着云原生技术的发展,在带来效率、可用性提升的同时也增加了复杂度,而可观测性成为降低这种复杂度的唯一手段,因此被推到了前所未有的重要地位。
在这里插入图片描述

Gartner将应用可观测性(Applied Observability)列为“2023年十大战略技术趋势”之一,并指出,到2026年,70%成功实现可观测性的企业机构,将能够降低决策延迟,帮助目标业务或IT流程建立竞争优势。

那么,云原生时代的可观测性有哪些新挑战和新趋势?

云原生带来可观测性变革

可观测性,是指通过分析系统的Metrics(指标)、Traces(链路)、Logs(日志)等数据,构建完整的观测模型,从而实现故障诊断、根因分析和快速恢复。

对此,谷歌有一个很简单的表述,快速排障(troubleshooting),即可观测性的核心价值。

尽管近年来可观测性颇有一点“网红”气质,但可观测性也是由传统监控演进而来的。

传统监控是面向运维视角的,从系统外部视角去观察系统的运行状态,应用规模普遍较小且服务之间没有互相依赖,更多是通过阈值来监控单体主机的日志和性能指标。

随着云原生技术的发展,基于容器和微服务化的应用规模更加庞大,服务之间依赖呈现为网状结构,复杂的云上环境以及分布式系统的复杂性、动态性,使得故障定界、调用追踪非常不明朗。

例如,虽然很多容器化应用上线有着开箱即用、快速发布的这些好处,但也有很多的网络流量抓取不到。

在这种情况下,其实很难通过传统的方式进行网络流量抓包分析,云环境网络流量监控“黑盒”的短板也逐步暴露了出来。

以往的日志、性能指标监控能力,就需要补充面向云网络的流量日志与性能指标,同时结合动态的全链路追踪能力,实现多维数据的关联分析,提供整体应用的可靠性保障。

因此,云原生可观测性被提出来了,要求从系统内部出发,基于“白盒化”的思路去监测系统内部的运行情况,不仅发现问题,更对于问题现象背后本质给出明晰解释。

而可观测性背后的指标、日志、事件、链路数据,以及诊断工具的结合使用,就为事前预防、事中处理、事后复盘提供了重要决策依据。

可以说,可观测性是基础设施自动化的基石,优秀的可观测性是确保云原生红利高效释放的前提条件。

可观测性的三大维度

云原生计算基金会CNCF将可观测性分解为三个更具体方向进行研究,分别是:事件日志、链路追踪和聚合度量。

日志(Logging)
日志的职责是记录离散事件,通过这些记录事后分析出程序的行为,譬如曾经调用过什么方法,曾经操作过哪些数据等等。

输出日志的确很容易,但收集和分析日志却可能会很复杂。面对成千上万的集群节点,迅速滚动的事件信息,数以TB计算的文本,传输与归集都并不简单。

目前,事件日志可观测产品已经是一片红海。

日志管理方案大都包含日志收集、日志聚合、日志存储与分析几个模块,具体过程是日志收集工具与应用程序容器一起运行,并直接从应用程序收集消息,然后将消息转发到中央日志存储以进行汇总和分析。

常见的日志管理工具包括ELK Stack、Fluentd、Loki等。其中,Elastic Stack日志解决方案几乎覆盖了日志管理的全流程。

度量(Metrics)
度量是指对系统中某一类信息的统计聚合,主要目的是监控和预警,如某些度量指标达到风险阈值时触发事件,以便自动处理或者提醒管理员介入。

度量常用的工具包括:Zabbix、Nagios、Prometheus,及相关高可用部署方案如Prometheus-operator、Thanos。

追踪(Tracing)
追踪的主要目的是排查故障如:分析调用链的哪一部分、哪个方法出现错误或阻塞,输入输出是否符合预期等等。

云原生时代,追踪不只局限于调用栈了,一个外部请求需要内部若干服务的联动响应,这时候完整的调用轨迹将跨越多个服务,同时包括服务间的网络传输信息与各个服务内部的调用堆栈信息。因此,分布式系统中的追踪常被称为“全链路追踪”。

同时,追踪方面的情况与日志、度量也有所不同。

追踪是与具体网络协议、程序语言密切相关的,各个服务之间是使用HTTP还是gRPC来进行通信,会直接影响追踪的实现,各个服务是使用Java、Golang还是Node.js来编写,也会直接影响到进程内调用栈的追踪方式。

这决定了追踪工具本身有较强的侵入性,通常是以插件式的探针来实现,也决定了追踪领域很难出现一家独大的情况,通常要有多种产品来针对不同的语言和网络。

近年来各种链路追踪产品层出不穷,市面上主流的工具既有像Datadog这样的一揽子商业方案,也有AWS X-Ray和Google Stackdriver Trace这样的云计算厂商产品,还有像SkyWalking、Zipkin、Jaeger这样来自开源社区的优秀产品。

总的来说,日志、度量、追踪三者打通,最大的价值是能做到全链路错误寻根,即从发现请求Metric指标异常,通过指标关联分析,并逐层下钻到明细Trace追踪和具体Error Log,全流程自动化从宏观到明细的错误发现和根因定位。

可观测性将走向何方?

不难发现,可观测性问题相对复杂,没有开箱即用的最佳方案。

为了应对云原生场景下复杂的可观测性问题,各大厂商采用了不同的策略。

有的采用多种产品组合的方式,针对不同场景,为客户提供不同的解决方案,比如AWS有CloudWatch、AMP、AMG等产品组合,阿里云有ARMS、链路追踪、日志服务SLS等;

有的厂商则提供了统一的解决方案,比如Azure monitor,Vmware Tanzu Wavefront,华为云CIE等。

随着各大厂商和开源项目的发展和推进,在可预见的未来,可观测领域正在呈现新的趋势:

趋势一:形成可观测性行业标准
首先是指标,Prometheus作为云原生时代指标数据标准已经形成共识。

链路标准也随着OpenTracing和OpenTelemetry的推行而逐渐占据主流。

OpenTelemetry作为一套由CNCF主导的云原生可观测性的标准协议,目前已经是海外企业在该领域的实践标准。

反观国内,虽未形成类似的标准,却也涌现了诸如 CAT 和 SkyWalking 等一系列国产开源的 APM 系统。得益于对业务代码无侵入,性能表现优秀,社区活跃,中文文档齐全等众多优秀特性,SkyWalking在国内异常火爆。

在日志领域,虽然其数据结构化程度较低难以形成数据标准,但采集存储分析侧涌现出Fluentd、Loki等开源新秀;另一方面,Grafana作为可观测数据展示标准也愈加明朗。

趋势二:构建以应用为中心的观测视角
可观测性比较好的观测视角是应用视角,以应用为单位关联指标、链路与日志,利用逐渐成熟的eBPF探针技术快速实现全局应用可观测,无侵入应用探针为主,OpenTelemetry为辅实现代码级可观测能力。

趋势三:聚焦业务成败
在“业务至上”的时代,技术工程师们保障的核心其实并不是这套IT系统或软件,核心其实是业务。

一笔业务可能会涉及到多个微服务系统,需要追踪到整个API关联的订单、用户甚至具体到哪一笔交易,这也是可观测性和业务结合的一个重要发展趋势。

趋势四:加大IT投入
“可观测性”被定义为是一个降本增效的好工具,这让许多开发者认为安装了可观测性平台,就可以降低成本、为业务创造价值。

事实上,可观测性工具从来不是一个“便宜”的东西,可观测性平台除了基本的工具投入,还需要有一套完整的数据存储方案,企业自研一套优秀的可观测性解决方案投入成本并不低。

以美国企业的可观测性相关投入为例,其占企业整体IT支出的5%-10%。

因此,可观测性产品的“降本增效”不是短时间内就可以显现出来的,而是通过长时间的应用产生价值,企业将做好加大投入的准备。

趋势五:可观测性与安全融合
安全和可观测性的合并,已在全球范围内形成一种趋势。

摩根士丹利《安全分析和可观测性》一文中提到,在国外,以DataDog为代表的公司在上市之后发布的新增功能中有70%都是安全相关的。

这其中的道理非常简单,可观测性是通过检查其输出来衡量系统内部状态的能力,它收集了系统的方方面面,通过这些数据可以分析出系统的故障,自然也就能够分析出系统有没有被入侵。

比如DataDog就提供了通过分析当前访问请求,区分哪些可能是黑客在嗅探,或者准备未来做DDoS攻击的接口的功能。

也就是说,采集的数据在安全方面也能够发挥作用,而不像传统安全工具那样,需要针对安全场景再进行一次数据采集。

所以,安全和可观测性的合并在全球范围内已经成为一种趋势。

针对攻击现场的追踪,比如国内的态势感知、SIEM这些安全产品都选择了和可观测性进行融合。

结语

总体来说,真正的可观测性平台应该是,能够将各种各样对于系统的形态、实时的状态进行有结构性的收集并提供一系列的观察、测量手段的平台。
就像传感器一样,能够让开发者们的开发、测试、运维过程变的更容易,能够即时了解系统的运行状态,而并不是简简单单的“监控”。
【关于科技云报道】

专注于原创的企业级内容行家——科技云报道。成立于2015年,是前沿企业级IT领域Top10媒体。获工信部权威认可,可信云、全球云计算大会官方指定传播媒体之一。深入原创报道云计算、大数据、人工智能、区块链等领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端面试常考 | 浅拷贝与深拷贝

文章目录一. 前言1. 概述2. 数据类型3. 存储区别二. 深浅拷贝1.深浅拷贝的定义2. 基本数据类型的拷贝3. 引用类型的拷贝4. 实现 “浅” 拷贝1. Object.assign()2. slice()3. concat()方法4. es6展开运算符5. 实现 “深” 拷贝1. JSON.parse(JSON.stringify(obj))2. lodash3. 递…

ASEMI代理FGH60N60,安森美FGH60N60车规级IGBT

编辑-Z 安森美FGH60N60车规级IGBT参数: 型号:FGH60N60 集电极到发射极电压(VCES):600V 栅极到发射极电压(VGES):20V 收集器电流(IC):120A 二…

2023年1月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2023年1月国产数据库大事件和重要产品发布消息。 目录 1月国产数据库大事记(时间线)产品/版本发布兼容认证排行榜新增数据库厂商活动相关资料 1月国产数据库大事记(时间线) 1月6日消息,近日…

将小程序代码转成uni-app代码

最近因为公司项目原因需要将小程序的项目转换成uni—app的项目,所以总结了以下几点: 首先你可以先到uni-app的官网简单看一下对它的介绍,本次文章的介绍是针对简单的微信小程序来进行的转化。 在这之前我们来看一下目录对比 下面就来介绍一下…

Python绝对路径和相对路径详解

在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。什么是当前工作目录每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。注…

怎么编写PCIe设备驱动程序

怎么编写PCIe设备驱动程序 文章目录怎么编写PCIe设备驱动程序参考内核文件:一、 PCI总线设备驱动模型二、 获得PCIe设备的资源2.1 获得内存/IO空间2.2 获得中断号2.2.1 获得INTx中断号2.2.2 获得MSI-X/MSI中断号三、 使能设备致谢参考内核文件: Documen…

智慧税务+数据可视化:企业财务管理告别难题

一、引言在发展社会主义市场经济的过程中,税收承担着组织财政收入、调控经济、调节社会分配的职能。中国每年财政收入的90%以上来自税收,其地位和作用越来越重要,可称之为国家经济的“晴雨表”,有效进行税务管理、充分挖掘税务大数…

秒杀项目之商品秒杀接口测压及优化

目录一、生成测试用户二、jmeter压测2.1 测试三、秒杀接口优化3.1 优化第一步:解决超卖3.2 优化第二步:Redis重复抢购3.3 优化第三步:Redis预减库存3.3.1 商品初始化3.3.2 预减库存一、生成测试用户 将UserUtils工具类导入到zmall-user模块中…

【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍

用于大型Transformer的8-bit矩阵乘法介绍原文地址:A Gentle Introduction to 8-bit Matrix Multiplication for transformers at scale using transformers, accelerate and bitsandbytes 相关博客 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介…

产品经理必看的高效产品文档撰写指南

对于企业来说,如何推广自己的产品是一个非常重要的话题,而其中必要的就是创建企业产品宣传册,这对于产品宣传非常重要,尤其是一些大公司,非常重视这种产品展示方式。因为它可以更完整地展现产品,撰写一份合…

uart 子系统

串口硬件储备知识: uart 在Linux 应用层的体现及使用 uart 就是串口,它也是属于字符设备中的一种,众所周知 字符设备都会在/dev/ 目录下创建节点,串口所创建的节点名都是以tty* 为开头,例如下面这些节点&#xff1a…

GeekChallenge

2.GeekChallenge 1.web 1.朋友的学妹 url:http://49.234.224.119:7413/ 右键点击查看源码,找到flagU1lDe0YxQF80c19oNExwZnVsbGxsbGx9 然后base64解码得到SYC{F1_4s_h4Lpfullllll} 2.EZwww url:http://47.100.46.169:3901/ 根据网站提示…

备战蓝桥杯【高精度乘法和高精度除法】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

一步一步动手实现CANoe例程

最近在学习CANoe,记录下学习路程,方便后续查看。参考《CANoe开发从入门到精通》和CANoe软件内附带的Easy例程,一步步去实现这个例程,稍加优化。 一、创建仿真工程 打开CANoe 16 SP4进入主界面,单击File→New可以看到…

2022年Q4业绩超预期,功能性饮料能成为百事下一增长极吗?

北京时间2月9日,美国食品饮料巨头百事公司发布2022财年年报,第四季度业绩再超预期。 据百事公司财报显示,其2022年Q4实现营收280亿美元,市场预期为268.8亿美元;核心每股收益为1.67美元,市场预期为1.64美元…

专业调度器JS版:BRYNTUM SCHEDULER PRO

BRYNTUM SCHEDULER PRO 5.2 专业的日程安排小部件,有大脑的专业调度UI组件。Scheduler Pro 可帮助您安排任务,同时将资源和任务的可用性考虑在内,POJIE VERSION 连接你的任务 让 Scheduler Pro 处理剩下的事情。它将根据您定义的链接安排您的任务并遵守任…

目标检测论文阅读:GraphFPN算法笔记

标题:GraphFPN: Graph Feature Pyramid Network for Object Detection 会议:ICCV2021 论文地址:https://ieeexplore.ieee.org/document/9710561/ Abstract 特征金字塔已经被证明在需要多尺度特征的图像理解任务中是强大的。SOTA的多尺度特征…

指派问题与匈牙利法讲解

指派问题概述:实际中,会遇到这样的问题,有n项不同的任务,需要n个人分别完成其中的1项,每个人完成任务的时间不一样。于是就有一个问题,如何分配任务使得花费时间最少。通俗来讲,就是n*n矩阵中&a…

Django框架之展示书籍列表案例

展示书籍列表 需求 实现步骤 1.创建视图2.创建模板3.配置URLconf 1.创建视图 查询数据库数据构造上下文 传递上下文到模板 # 定义视图:提供书籍列表信息 def bookList(request):# 查询数据库书籍列表数据books BookInfo.objects.all()# 构造上下文context {boo…

超详细的JAVA高级进阶基础知识04

目录 4. 面向对象高级 - 常用的API 4.1 Arrays 工具类 4.1.1 Arrays 类介绍 4.2 冒泡排序 4.3 选择排序 4.4 二分查找 4.5 正则表达式 4.5.1 String 类中与正则有关的常见方法 4.5.2 练习 4.5.3 今日学习目标 4. 面向对象高级 - 常用的API 4.1 Arrays 工具类 4.1.1…