41 | 分布式架构中的可观测到底说的是什么?
周志明
你好,我是周志明。从这节课开始,我们将会花四节课的时间去学习“可观测性”方面的知识。
在以前,可观测性并不是软件设计中要重点考虑的问题,甚至很长时间里,人们也并没有把这种属性与可并发性、可用性、安全性等并列,作为系统的非功能属性之一,直到微服务与云原生时代的来临。
对于单体系统来说,可观测性可能确实是附属的边缘属性,但对于分布式系统来说,可观测性就是不可或缺的了。为什么呢?别着急,接下来我就跟你详细说道说道。
可观测性的概念
好,首先呢,我们来了解下可观测性的含义和特点。
最初,它是与可控制性(Controllability)一起,由匈牙利数学家鲁道夫 · 卡尔曼(Rudolf E. Kálmán)针对线性动态控制系统提出的一组对偶属性。可观测性原本的含义是“可以由系统的外部输出推断其内部状态的程度”。
在学术界,“可观测性”这个名词其实是最近几年才从控制理论中借用的舶来概念,不过实际上,计算机科学中关于可观测性的研究内容已经有了很多年的实践积累。通常,人们会把可观测性分解为三个更具体的方向进行研究,分别是:日志收集、链路追踪和聚合度量。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
分布式架构中的可观测性是当前架构设计中的重要问题。随着分布式架构的兴起,可观测性成为不可或缺的属性。可观测性包括日志收集、链路追踪和聚合度量三个方向,它们在分布式系统中具有重要意义。日志记录离散事件,追踪用于排查故障,度量则是对系统信息的统计聚合。在工业界,针对可观测性的产品已经形成了红海,其中Elastic Stack和Prometheus在日志和度量领域占据主导地位。而在追踪领域,由于与具体网络协议、程序语言密切相关,追踪工具具有较强的侵入性,因此市面上出现了多种产品。总的来说,可观测性在分布式架构中具有重要意义,而日志、追踪和度量三者的统一解决方案也是当前的发展趋势。 在今天,可观测性一般会被分成事件日志、链路追踪和聚合度量三个主题方向进行探讨和研究。事件日志的职责是记录离散事件,通过这些记录事后分析出程序的行为;追踪的主要目的是排查故障,比如分析调用链的哪一部分、哪个方法出现错误或阻塞,输入输出是否符合预期;度量是指对系统中某一类信息的统计聚合,主要目的是监控和预警,当某些度量指标达到风险阈值时就触发事件,以便自动处理或者提醒管理员介入。 尽管“可观测性”今天已经被提升到了与“可用性”“可并发性”等同等的高度,但实际是否如此呢?在你的公司设计软件系统的时候,可观测性的考虑权重有多大?可观测性在分布式架构中具有重要意义,而日志、追踪和度量三者的统一解决方案也是当前的发展趋势。
该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- zhanyd进入微服务时代,服务的数量变得越来越多,就不可能都靠人工去维护,很多服务都各自在“黑暗”中运行,所以可观测性就变得越来越重要,人工无法完成的任务,就要借助工具。 度量,追踪,日志分别代表事前监控预警,事中问题处理,事后行为分析吧?2021-02-26115
- neohope单体程序时代,类似于一个办公大楼,有了问题,告诉管理员门牌号和具体事情就行了,管理员就可以乘电梯过来解决问题。 只要在日志里输出一下,哪个方法,做了哪个任务或出了什么问题,用日志工具就可以统计到处理速度或快速定位到问题了。 微服务时代,类似于管理城市物流。要提出问题,我们必须说明,那条街,哪个门牌号,几单元,有什么需求。工作人员上门时,要看下地图,什么路线过去最快,遇到堵车怎么办,小区不让进怎么办,然后才能到顾客这边提供服务。数据链路就像城市地图,监控就像地图上的流量,而日志必须还原到这张地图上,才知道哪个交叉口或哪个大楼哪里出了问题。 所以,我们要花必要的精力,去做全链路,绘制这个地图。所以我们要收集度量信息,去监控哪里流量红了,哪里彻底堵车了。只凭日志,是无法快速定位问题的,这个交叉口堵车,问题可能出在三公里之外,一个交叉口一个交叉口查过去,太慢了。 流量大了,堵车是必然的。只有做好可观测性,才能快速疏导交通,做到事半功倍。2021-04-145
- William Ning补充 CNCF是什么? CNCF,英文全称为Cloud Native Computing Foundation,中文译为“云原生计算基金会”。成立于2015年12月11日。 CNCF是Linux基金会旗下的基金会,可以理解为一个非盈利组织。 当年谷歌内部一直用于编排容器的Borg项目开源了,为了该项目更好的发展,谷歌与Linux基金会一起创办了CNCF。同时,谷歌把Borg用Go语言重写,更名为Kubernetes并捐赠给了CNCF。 成立这个组织的初衷或者愿景,简单说: 推动云原生计算可持续发展; 帮助云原生技术开发人员快速地构建出色的产品; CNCF通过建立社区、管理众多开源项目等手段来推广技术和生态系统发展。 云原生计算技术栈非常宽阔,它囊括了存储、计算、编排、调度、CI/CD、DevOps、服务治理、服务网关等诸多领域。因此与之相对应的开源项目就非常多。CNCF基金会与Linux基金会、Apache基金会类似,负责社区的管理、技术的推广,使得云原生领域的技术不断成长。 比如,源于谷歌的Kubernetes(容器编排引擎)开源项目就被吸收到CNCF,Kubernetes也因此受到更多的人关注。 再比如,源于华为的KubeEdge(边缘计算平台)开源项目也被CNCF吸纳,也吸引了很多人参与进来。 很多公司很乐于把自已的项目贡献给CNCF,这样能吸引到更多的专家参与进来一起开发。只有足够优秀的项目CNCF才会接纳,源创公司会在该项目上保持技术上的领先,也能扩大技术影响力,所以公司愿意分享项目到CNCF。 CNCF的愿景: 为云原生软件构建可持续生态系统2022-05-124
- 阿昕可观测性在单体应用或者小规模集群下,价值容易被忽视,实则是微服务时代必不可少的利器。2021-02-262
- 雨潇可观测性就像是飞机的仪表盘,能够看到各个部件的工作状态,这样就能够对飞机的整体运行情况做到全面的了解。2022-02-251
- 远军目前在用的组合:logstash、pinpoint、grafana2023-10-24归属地:广东
收起评论