草庐IT

2023年,可观测性迎来哪些新趋势?

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

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

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

1.云原生带来可观测性变革

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

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

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

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

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

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

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

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

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

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

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

2.可观测性的三大维度

云原生计算基金会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,全流程自动化从宏观到明细的错误发现和根因定位。

3.可观测性将走向何方?

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

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

有的采用多种产品组合的方式,针对不同场景,为客户提供不同的解决方案,比如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这些安全产品都选择了和可观测性进行融合。

4.结语

总体来说,真正的可观测性平台应该是,能够将各种各样对于系统的形态、实时的状态进行有结构性的收集并提供一系列的观察、测量手段的平台。

就像传感器一样,能够让开发者们的开发、测试、运维过程变的更容易,能够即时了解系统的运行状态,而并不是简简单单的“监控”。

有关2023年,可观测性迎来哪些新趋势?的更多相关文章

  1. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  2. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  3. ruby - 实现k最近邻需要哪些数据? - 2

    我目前有一个reddit克隆类型的网站。我正在尝试根据我的用户之前喜欢的帖子推荐帖子。看起来K最近邻或k均值是执行此操作的最佳方法。我似乎无法理解如何实际实现它。我看过一些数学公式(例如k表示维基百科页面),但它们对我来说并没有真正意义。有人可以推荐一些伪代码,或者可以查看的地方,以便我更好地了解如何执行此操作吗? 最佳答案 K最近邻(又名KNN)是一种分类算法。基本上,您采用包含N个项目的训练组并对它们进行分类。如何对它们进行分类完全取决于您的数据,以及您认为该数据的重要分类特征是什么。在您的示例中,这可能是帖子类别、谁发布了该项

  4. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  5. ruby-on-rails - 是否有可能发现 Ruby on Rails 应用程序中未使用哪些类? - 2

    在我们的项目中,我们有一些“被遗忘的”类存在了很长一段时间。那些类已被其他类替代,但我们忘记删除它们。是否有一些自动化的方法/工具可以发现Ruby{onRails}应用程序中没有使用哪些类?谢谢! 最佳答案 这个问题已经被提出了很多次,但是最好的答案都在这里:FindunusedcodeinaRailsapp我个人喜欢日志解析:https://stackoverflow.com/a/14161807但在任何情况下,您都可以创建自己的记录器,扩展ActiveRecord::Base以创建一个观察器,该观察器将最常用的模块存储在数据库中

  6. ruby - 趋势算法 - 2

    我正在开发一个类似微论坛的项目,其中一个特殊用户发布一条快速(接近推文大小)的主题消息,订阅者可以用他们自己的类似大小的消息来响应。直截了当,没有任何形式的“挖掘”或投票,只是每个主题消息的响应按时间顺序排列。但预计会有很高的流量。我们想根据它们引起的响应嗡嗡声来标记主题消息,使用0到10的等级。在谷歌上搜索了一段时间的趋势算法和开源社区应用示例,到目前为止已经收集到两个有趣的引用资料,但我还没有完全理解它们:Understandingalgorithmsformeasuringtrends,关于使用基线趋势算法比较维基百科页面浏览量的讨论,在SO上。TheBritneySpearsP

  7. ruby - 哪些 IDE 可用于 jRuby? - 2

    我进行了一些谷歌搜索,似乎缺少用于jRuby的IDE。我读过TextMate和Sublime,但它们不提供调试或代码完成功能。有人可以提出建议吗(或者这项技术还处于起步阶段)? 最佳答案 有几个选项;我更喜欢JetBrains'IntelliJ(RubyMine).AptanahasanEclipseplugin.NetBeansusedtohaveofficialsupport,不确定currentstate是什么是。 关于ruby-哪些IDE可用于jRuby?,我们在StackOve

  8. ruby-on-rails - 对于诸如libyaml之类的已编译库,Ruby(或RVM)在文件系统中搜索哪些位置以加载或解析它们? - 2

    操作系统:CentOS6.2x86_64很抱歉缩进太古怪了。这是我的第一篇SO帖子,我是新来设置服务器的。不过,我正在学习,并将详细说明我尝试解决此问题所采取的步骤以及寻求帮助的地方。我是一位有抱负的年轻Web开发人员,并且我在其他人配置的服务器上工作,因此,这对我来说是全新的。我正在准备我最近购买的用于运行Rails应用程序的linode。我遵循了此处http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/提供的初始安装指南,并更改了步骤:sudobash反射(

  9. IDEA 2023.1 正式发布,新特性简介 - 2

     昨晚看到IDEA官推宣布IntelliJIDEA2023.1正式发布了。简单看了一下,发现这次的新版本包含了许多改进,进一步优化了用户体验,提高了便捷性。至于是否升级最新版本完全是个人意愿,如果觉得新版本没有让自己感兴趣的改进,完全就不用升级,影响不大。软件的版本迭代非常正常,正确看待即可,不持续改进就会慢慢被淘汰!根据官方介绍:IntelliJIDEA2023.1针对新的用户界面进行了大量重构,这些改进都是基于收到的宝贵反馈而实现的。官方还实施了性能增强措施,使得Maven导入更快,并且在打开项目时IDE功能更早地可用。由于后台提交检查,新版本提供了简化的提交流程。IntelliJIDEA

  10. 对于体育新闻中文文本关键字提取有哪些关键字提取算法及其步骤 - 2

    对于体育新闻中文文本的关键字提取,常用的算法包括TF-IDF、TextRank和LDA等。它们的基本步骤如下:1.TF-IDF算法: -将文本进行分词和词性标注处理。-统计每个词在文本中的词频(TF)。-计算每个词在整个语料库中出现的文档频率(DF)和逆文档频率(IDF)。-计算每个词的TF-IDF值,并按照值的大小进行排序,选择排名前几的词作为关键字。2.TextRank算法:-将文本进行分词和词性标注处理。-将分词结果转化成图模型,每个词语为节点,根据词语之间的共现关系建立边。-对图模型进行迭代计算,计算每个节点的PageRank值,表示该节点的重要性。-选择排名前几的节点作为关键字。3.

随机推荐