业务可观察性与薛定谔的猫
2021-04-14 12:04:10   来源:互联网
内容摘要
01薛定谔的猫:风险与不确定性本文要探讨的,是IT业界近几年新兴的热词:可观察性。我们不妨从一只著名的猫谈起——薛定谔的猫,它对于我们解读可观察性不无启发。薛定谔的猫(Schrödinger's Cat)并不是一只真实存在的猫,而是来自物理学家薛定谔设想的一个“思想实验”。薛定谔设想将一只猫…

01薛定谔的猫:风险与不确定性

本文要探讨的,是IT业界近几年新兴的热词:可观察性。我们不妨从一只著名的猫谈起——薛定谔的猫,它对于我们解读可观察性不无启发。

薛定谔的猫(Schrödinger's Cat)并不是一只真实存在的猫,而是来自物理学家薛定谔设想的一个“思想实验”。

IMG_256

薛定谔设想将一只猫关在装有少量镭和氰化物的密闭木箱里,镭的衰变存在几率,如果镭发生衰变,会触发机关打碎装有氰化物的瓶子,猫就会死;如果镭不衰变,猫就存活。原子核衰变是随机事件,物理学家只能知道半衰期——衰变一半所需要的时间,却无法知道确切时刻。

因此,只有在揭开木箱盖子的一瞬间,才能确切地知道猫是死是活。量子理论认为,如果没有揭开盖子观察,猫永远处于既活又死的叠加态,可这违背了逻辑——现实中当然不存在既活又死的猫。

薛定谔用这个思想实验与其它学派进行学术争论,其中的是非曲直,属于神仙打架,我们这些量子物理学的门外汉当然无从判断。不过,对于IT科技领域的理论和实战,这个思想实验却有着有趣的借鉴意义:

我们所保护的对象

周围永远伴随着危险

我们知道事故会发生

却不知道哪一刻发生

最糟糕的是

这一切都在黑箱之中

薛定谔的猫是否健康,只有在打开黑箱进行观察的一刻才能确定,所以在这个虚拟实验中,观察是问题的关键。

在数字化世界,要保障业务系统的健康,关键的因素正是可观察性。

02可观察性的哲学

可观察性(Observability)虽然在IT界是近几年才热起来的新术语,但它其实是上世纪60年代由匈牙利裔工程师鲁道夫·卡尔曼提出的概念,源于控制论,是指系统可以由其外部输出信号推断其内部状态的程度,在维基百科中这样定义:

IMG_257

人类各个领域的进步,无不伴随着可观察性的提高。

例如在医疗领域,X光、超声波、CT、核磁共振等科技手段的不断应用,让人体内部器官的状态越来越多地转换成外部可见的光电信号,让医生可以直观地观察和诊断。人体的各种物理、生化状态,被量化成各种生理指标数字,准确地描述人体的健康水平。

在城市管理中,遍布城市各角落的摄像头,让车流、人流转化成视频影像,使得管理者通过屏幕直观地掌控城市的运行状态,实施有效管理。

交通工具如汽车、船舶和飞机同样如此,它们上百年的发展历程,同样是一部可观察性不断进步的历史。一架现代的飞机由上百万个零件构成,飞机各个部位布满了传感器,把飞机姿态、高度、温度、湿度、风速、发动机状态、轮胎气压等内外部信息实时传送到驾驶舱,在仪表盘上显示,供飞行员随时掌握。

IMG_258

无疑,评价一架现代的飞机,除了衡量飞行速度、安全性、载重量、航程等因素,可观察性也是一个重要的指标。越先进的飞机,内部结构越复杂,它的可观察性越重要。

一架好的飞机,必须是可观察性好的飞机。

一个好的业务系统,必须是可观察性好的业务系统。

对于业务系统,尤其是云原生时代的分布式、微服务化、容器化的复杂应用,随着系统业务量日益庞大、内部结构日益复杂、组件间交互日益频繁,传统的监控管理手段已经不足以满足新时代的需求,可观察性就自然而然地被引入IT领域,变成与性能、可用性、可靠性、可扩展性一样的关键维度。

03业务视角的可观察性

IMG_259

业界一般认为,云原生领域的可观察性是2017年由 Apple的工程师 Cindy Sridharan在博文“监控与观察”(Monitoring and Oberservability)中提出的。文章指出,随着微服务、云和容器化架构的出现,构建系统的方式变了,应用程序是分布式的,而且瞬息万变,技术的发展使得底层的基础设施和网络服务愈加健壮,但应用程序层必须跟上技术的发展步伐,未来大多数的故障都将来自应用程序层或者是不同应用程序之间的复杂交互。

德国工程师 Peter Bourgon在著名的文章《Metrics, Tracing, and Logging》中讨论了可观察性,提出了实现可观察性的三种基本手段:

IMG_260

1.Logging,日志,展现应用运行产生的事件,可以解释系统的运行状态,但是存储和查询需要消耗大量的资源,通常要使用过滤器减少数据量。

2.Metrics,指标,聚合数值显示的统计指标,占用存储空间小,可以观察系统的状态和趋势,但对于问题定位缺乏详细信息。

3.Tracing,追踪,面向的是请求,分析出请求中异常点,但与 logging有相同的问题,就是资源消耗较大,通常需要通过采样的方式减少数据量。

三种形式的数据各有特点,互相补充,将它们组合使用会产生丰富的观察数据,实现业务系统的可观察性。

很多人不清楚可观察性与传统的监控的关系,认为只是监控换了一个说法。

实际上,从概念角度说,Cindy Sridharan将可观测性定义为监控的超集,范围大大超越监控,Twitter工程团队将可观测性具体化为监控、预警、可视化、分布式系统跟踪、日志聚合和分析,谷歌则提出了Dapper理论,强调对服务的端到端跟踪。

从使用者角度说,传统的监控由运维部门使用,基础是对异常的判断,核心功能是告警,定位于保证系统的稳定性。而需要可观察性的不限于运维部门,业务部门需要观察业务经营数据的变化趋势,开发部门需要观察程序在生产环境下运转的情况,快速发现新版本上线后的问题。

从开发角度说,可观察性是给软件的开发者提出的新要求,在满足功能、性能、可靠性、可扩展性要求的同时,还要让应用系统中更多细节能够被外部观察。监控系统只能监控可观察到的东西。

有了可观察性,薛定谔的黑箱就变成一个透明的白箱,让氰化物容器和猫咪的健康状态一目了然。

04实现可观察性的工具

随着可观察性需求的凸显,出现了很多开源项目和商用软件,以不同的技术路线和方式帮助企业实现系统的可观察性。

其中,Zipkin、Jaeger工具等定位于服务跟踪(tracing)领域。Fluentd、ELK等是日志分析(logging)领域的典型工具。Promethues、grafana、influxdb定位于指标监控(metrics)领域。Apache Skywalking则融合了tracing与metrics。

华青融天早在IT界提出可观察性多年以前,就把公司的理念确定为See what's invisible——发现看不见的价值,通过机器大数据实时分析技术观察业务系统内部状态,以业务视角获取对企业运维和经营有价值的信息,在业务可观察性方面先行一步。

公司产品主要应用场景包括:

业务处理过程的可观察性:对于企业多套分布式的大型业务系统,华青融天软件可以集中、实时监测构成系统的大量节点与数据流状态,实时计算业务量、成功率、响应率、处理耗时等指标(metrics),让业务在分布式系统内部的处理过程可观察,主动发现问题,保证系统稳定,优化客户体验。

IMG_261

交易链路端到端的可观察性:对每种业务类型的每条交易链路实现端到端实时追踪(tracing),当交易出现异常时告警,并准确指明导致告警的节点,便于运维人员快速定位问题根源。

IMG_262

业务处理异常的可观察性:对客户业务的所有处理环节进行实时追踪和校验,检验其处理过程的准确性,对诸如交易金额错误、非客户意愿的重复交易等业务异常实时捕获,以避免业务损失。

不同于前文所谈到的各种软件工具,华青融天系列软件采用网络流量和日志自动解析相结合的方式,无需对业务系统进行改造、插入各种代码,也无需在业务服务器安装代理,是一种无侵入的方式,能够以低成本、短周期满足企业的可观察性需求。

正如城市的视频监控网络可以支撑多方面的应用,如疏导交通、追捕逃犯、应急指挥等,基于华青融天的机器大数据实时分析平台,可以开发出多种上层应用,以满足不同层面的需求。例如:服务于运维部门的故障根因定位,服务于业务部门的用户画像与用户行为分析,服务于开发部门的仿真系统等。随着业务系统可观察性的提高,更多的应用场景将被激活。

随着分布式架构和云原生技术的不断普及,围绕可观察性,必将形成一个快速发展的热点领域。华青融天将持续丰富产品家族,更好地满足企业的可观察性需求。









免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。

关键字相关信息: