2023,可观测性需求将迎来“爆发之年”? | 解读可观测技术的 2022
/ / 点击 / 阅读耗时 46 分钟本文是 “2022 InfoQ 年度技术盘点与展望” 系列文章之一,由 InfoQ 编辑部制作呈现,重点聚焦可观测技术领域在 2022 年的重要进展、动态,希望能帮助你准确把握 2022 年可观测技术领域的核心发展脉络,在行业内始终保持足够的技术敏锐度。
“InfoQ 年度技术盘点与展望”是 InfoQ 全年最重要的内容选题之一,将涵盖操作系统、数据库、AI、大数据、云原生、架构、大前端、编程语言、开源安全、数字化十大方向,后续将聚合延展成专题、迷你书、直播周、合集页面,在 InfoQ 媒体矩阵陆续放出,欢迎大家持续关注。
随着 5G、云计算、微服务等技术的广泛应用,企业所面临的 IT 运维环境越来越复杂,需要运维的系统不仅数量多,而且网络架构复杂、基础设施多样。在信息化建设日益普及的当下,快速提升企业 IT 资产管理能力开始成为企业迫切解决的问题。
过去一年,可观测技术得到了极大关注,并被 Gartner 列为 2023 年十大战略技术趋势之一。然而,企业在实际落地可观测的过程中依旧面临很多问题,比如如何选择合适的方案、平衡新旧系统之间的关系等等。
其实,一个企业 IT 系统的可观测性建的好不好,在新员工入职时就能看出来。如果新员工去看文档时,看的是公司某个架构师画的系统架构图,显然这个公司技术系统是缺乏可观测性的。因为企业系统一直在迭代,而系统的架构图却很难及时更新。如果新员工看到的是完整的可观测性平台数据看板,那这个公司的“可观测性”构建的应该算是比较完善的。当企业的可观测性构建趋于成熟后,开发者可以快速定位系统问题,精准的“观测性数据”可以帮助开发者完成包括自动化巡检在内的各种各样的 Control 或者是金丝雀发布的控制等等。
所以,可观测技术目前发展到哪个阶段了?开发者们对可观测性平台的需求到底是怎样的?带着这些问题我们对观测云 CEO 蒋烁淼进行了专访,我们一起对可观测技术过去一年的发展做了一个盘点。
一、国内外“可观测性”的认知尚存在较大差异
当我们想要盘点一项技术过去一年的发展状况时,首先要看它过去一年的应用率是否有所提升。去年,领域里有相关数据表明,大部分公司都在进行可观测实践,但国外也仅有 27% 的公司实现了全栈的可观测,国内可能更少,可能 10% 的比例都不到。而今年,这个比例似乎并没有提高。
正如蒋总所说的那样,“在中国,真正地构建了完全可观测性的企业非常的少,做的好的企业少之又少。”
放眼过去,目前国内确实很缺乏好的可观测性的服务商和技术提供商,这让中国的可观测性技术发展与国外产生了不小的距离。包括字节、阿里云等大厂在内的国内大部分厂商在可观测性方面都还是处于“零散拼装”的状态,他们大多把开源的 Prometheus、Loki、OpenTelemetry Collector 组装在一起形成“可观测性套件”,然后提供一个开源的托管版本给开发者使用。很少有人敢称自己为“可观测性平台”,因为没有一个完整的可观测性的概念。
然而,过去一年里,无论是在国外还是国内,企业 CTO 们对于可观测性的关注度有了明显大幅提升。从全球视角来看,不管是 Grafana 的 ObservabilityCON,还是今年谷歌云举办的 Google Cloud Next’22 Recap、北美的 KubeCon 2022 大会,亦或者是前不久亚马逊云科技举办的 re:Invent 全球大会、NGINX 举办的 NGINX Sprint China2022,可观测性话题的探讨比例都有了明显提升,像 Google Cloud Next’22 Recap 大会谈可观测性几乎占到了大会整体内容的三分之一。
切回国内视角,当我们和国内的企业 CTO 们去聊天的时候会发现,他们今年明显会更关注可观测性这件事,无论是因为业务层面譬如 B 站 713 事件带来的启发,还是受行业大会演讲内容的影响,国内在可观测性方面没有明显的技术发展,大多是因为疫情下的市场经济不景气、企业预算不足下的“按兵不动”之举。
聚焦到具体的业务需求上,目前企业技术决策者正处于一个认知迭代的过程中——“将监控升级为可观测性”。原来的“监控”大多都是分裂的,可能是每一个项目都有一套监控工具,可能是是一个项目中的日志平台、APM 平台单独运行。所以现在不少开发者会认为可观测性就是新瓶装旧酒,他们认为把传统的监控工具整合在一起,就是可观测性了,甚至不少创业公司的 CTO 会将一些 K8S 监控工具或者 APM 混同于可观测性。
事实上,可观测性相关的工具如果被称为“下一代监控”的话,它的投资占 IT 的比重并不小,可观测性的应用场景远远要超过目前大部分开发者的认知。“可观测性”这件事在大部分 CTO 的意识中,无论是横向扩展还是垂直扩展,大家的认知都还需要有一个“求同”的过程。
就像现在许多人会把“可观测性”定义为是一个降本增效的好工具,很多相关产品厂商会将“降本增效”作为产品的推广利益点,这让许多开发者认为安装了可观测性平台,就可以降低成本、为业务创造价值。事实上,可观测性工具从来不是一个“便宜”的东西,可观测性平台除了基本的工具投入,还需要有一套完整的数据存储方案,企业自研一套优秀的可观测性解决方案投入成本并不低。以美国企业的可观测性相关投入为例,其会占企业整体 IT 支出的 5%-10%。而且,它的“降本增效”不是短时间内就可以显现出来的,而是通过长时间的应用,为业务提供大量的数据支撑进行技术性优化,从而产生价值。
总体来说,真正的可观测性平台应该是,能够将各种各样对于系统的形态、实时的状态进行有结构性的收集并提供一系列的观察、测量手段的平台。简单来说,就是用各种各样的技术,像传感器一样,能够让开发者们的开发、测试、运维过程变的更容易,能够即时了解系统的运行状态,而并不是简简单单的“监控”。
可观测性平台一定是数据组织统一化的,否则分开的日志系统、链路系统、指标系统很难实现数据与数据的关联。比如日志里的字段,主机系统中叫 host,在指标系统里叫 host name,然后有的系统用 IP 地址,有的系统用主机名,那在做关联分析和连接查询时会发现根本无从下手。有的公司也会将不同系统的数据分散开进行监控,利用“数据中台”的一个构建方案将所有数据汇聚到同一个平台中去做分析,但在实践过程中会发现,数据缺少实时性的结构化,无法做实时预警预测,只能做事后故障定位。
二、全球可观测性技术演进主要聚焦在 6 个方面
1、OpenTelemetry 逐渐成为行业标准
OpenTelemetry 作为一套由 CNCF 主导的云原生可观测性的标准协议,目前已经是海外企业在该领域的实践标准。从数据收集的角度来说,基于 OpenTelemetry 或者兼容 OpenTelemetry 的方案,从今年到明年都应该会逐步成为主流。OpenTelemetry 已迭代到了 1.0 版本,作为一个客户端,日志和网络等部分也都正在得到逐步补强,严格意义上讲,OpenTelemetry 1.0 已经算是完成了整体的标准化,OpenTelemetry 标准协议已称得上是一个行业标准。
反观国内,虽未形成类似的标准,却也涌现了诸如 CAT 和 SkyWalking 等一系列国产开源的 APM 系统,通过实时监控企业的应用系统,系统化地提供应用性能管理和故障定位的解决方案,在运维中被广泛使用。得益于对业务代码无侵入,性能表现优秀,社区活跃,中文文档齐全等众多优秀特性,SkyWalking 在国内异常火爆。
2、Grafana 8.0 修改了 AGPL 协议
开源项目背后的商业公司只有在商业上取得成功,才能更好地为开源项目提供新特性的开发、支持与维护,形成良性循环,这样开源项目的维护才会更加长久。Grafana 在云原生技术领域的监控工具中几乎是标准一般的存在,而在可观测性的投资方面,Grafana 也写下了浓墨重彩的一笔,推出了 Loki 日志存储、时序引擎 Mimir 和调用堆栈的存储引擎等一系列产品,力图通过提供一个复刻 DataDog 所有功能的开源方案,打包售卖 Grafana Cloud 服务。
因此在 Grafana 8.0 后修改了 AGPL,允许甲方有技术实力的公司基于它的开源方案做二次开发,而不允许乙方在没有商业授权的时候拿着 Grafana 的产品包装出售,此举对国内不少的信创公司都造成了巨大的冲击。
3、eBPF 技术日趋成熟
内核通过文件系统或系统调用暴露出的信息有限,单纯从用户态切入无法抓取这些信息,只有从内核本身调用的过程中获取调用信息才可以补足相关能力。eBPF 是一项革命性的技术,它可以在 Linux 内核中运行沙盒程序,而无需更改内核源代码或加载内核模块。通过使 Linux 内核可编程,基础架构软件可以利用现有的层,使它们更加智能和功能丰富,无需继续为系统增加额外的复杂性层。
eBPF 促进了网络,安全性,应用程序配置 / 跟踪和性能故障排除等领域的新一代工具的开发,这些工具不再依赖现有的内核功能,而是在不影响执行效率或安全性的情况下主动重新运行。在对内核无侵入的前提下,它通过动态地向内核中插入一段自己的代码,实现定义监控及跟踪能力。
随着内核的发展,eBPF 逐步从最初的数据包过滤拓展到了网络、内核、安全、跟踪等领域,并且它的功能特性还在快速发展中,通过内核虚拟机,所有的 IO 包括程序运行、进程的网络通信等各种细部数据尽收眼底,大大加强了系统的可观测能力。
然而,目前大多数的只通过 eBPF 获取数据并把自己标榜为可观测平台的公司,也仅仅是做了一个 eBPF 的支持而已。从第三方视角看,eBPF 是对传统观测能力一个非常好的补充,可以通过它拿到更多的数据,用户获取内核丰富观测指标的门槛被极大降低。
4、可观测性开始更“注意安全”
云原生数据库等新兴概念的出现,大大消除了大家对于存储成本方面的顾虑,使得企业可以更聚焦于提升观测能力本身,而不必在成本和性能方面分神,这方面的发展也有迹可循。比如今年 DataDog 推出了一个名为哈士奇的存储架构,它是一个完全云原生面向可观测性的数据库,得益于云原生的存储能力,可以在同等价格下多存储 5-10 倍数据,以往即使收集到了海量的数据,但面对高昂的存储成本,这些数据也只能被丢弃或者针对这些数据进行采样,本质上看,这对客户需要的结果也是有浪费的。但这也并不意味着使用这种新技术之后并不需要进行采样,只是新的更低成本更高性能的数据库技术,可以大大提升可观测性能够覆盖的范围,降低存储成本,这也是一个很重要的发展。
安全和可观测性的合并,已在全球范围内形成一种趋势。摩根士丹利在《安全分析和可观测性》文章中也提到,在国外,以 DataDog 为代表的公司在上市之后发布的新增功能中有 70% 都是安全相关的,这其中的道理非常简单,可观测性是通过检查其输出来衡量系统内部状态的能力,它收集了系统的方方面面,通过这些数据可以分析出系统的故障,自然也就能够分析出系统有没有被入侵。比如 DataDog 就提供了通过分析当前访问请求,区分哪些可能是黑客在嗅探,或者准备未来做 DDoS 攻击的接口的功能。
也就是说,采集的数据在安全方面也能够发挥作用,而不像传统安全工具那样,需要针对安全场景再进行一次数据采集。所以,安全和可观测性的合并在全球范围内已经成为一种趋势,当然抗 DDoS 、挖防火墙这些并不会合并,针对攻击现场的追踪,比如国内的态势感知、国外的 SIEM 这些安全产品都选择了和可观测性进行融合。
5、建立“业务的可观测性”越来越重要
可观测性的概念起源于工业领域,在该领域中,可观测性被定义为从系统外部输出推断系统内部健康状态的能力;在软件产品和服务领域,可观测性就是从应用系统中收集尽可能多的遥测数据,以便可以调查和解决新出现的复杂问题,确保企业能够主动观察系统,在影响客户体验之前解决故障及问题,安全地进行测试并实施优化,它可以更好地管理和控制业务风险,有助于我们了解“正在发生什么”以及“为什么会这样”。可观测性使团队能够更有效地监控现代系统,帮助他们找到并连接复杂链中的影响,并将其追溯到原因。此外,它还使系统管理员、IT 运营分析师和开发⼈员能够了解他们的整个架构。
如今的 IT 系统,迭代发布更迅速,业务系统更庞大,网络链路更复杂,运行环境更动态。在“业务至上”的互联网时代,技术工程师们保障的核心其实并不是这套 IT 系统或软件,他们保障的核心其实是业务,一笔业务可能会涉及到多个微服务系统,技术工程师们不再追踪一个 API 的全链路调用关系,而是要追踪到整个 API 关联的订单、用户甚至具体到哪一笔交易,这也是可观测性和业务结合的一个重要发展趋势。Gartner 也提到,“未来一切业务皆需可观测性”,简单地讲就是把运营人员、运维人员、IT 人员看到的数据做统一,而不是互相甩锅。
6、多个“新玩家”入局
随着微服务架构的流行,一些微服务架构下的问题也日渐突出,比如一个请求会涉及到多个服务,而服务本身可能也会依赖其他业务,整个请求路径就构成了一个网状的调用链,而在这个调用链中,一旦某个节点发生异常,整个调用链的稳定性就会受到影响。
据此,我们需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。近年来,各种调用链监控产品层出不穷,呈现百花齐放的态势,各家你方唱罢我登场,比如 New Relic 收购的那家叫 PIXIE 的公司可以称得上是一个新玩家,又如最近出现了一个面向 K8S 的叫做 Kubeshark 的公司,它专门研发用于网络分析的开源组件。
此外,随着 eBPF 的出现,未来会涌现越来越多的解决方案,尤其是面向整个 K8s 生态环境,这也是全球可观测性技术的一个演进方向。
三、具有“4 个统一性”的可观测性平台是企业刚需
当我们盘点完可观测性的行业趋势,所以到底什么样的平台才是目前企业所需要的呢?国内首批获得中国信通院颁发的「可观测性平台技术能力」先进级认证,新一代云原生全链路数据可观测平台——观测云给出了答案。
观测云能全环境高基数采集数据,支持多维度信息智能检索分析,及提供强大的自定义可编程能力,使系统运行状态尽在掌控,故障根因无所遁形,实现了统一采集、统一标签、统一存储和统一界面,带来全功能的一体化可观测体验。观测云平台从技术层面主要实现了 4 个统一 —— 统一采集、统一治理、统一分析和统一编程:
第一个统一,是统一的数据收集。数据采集是数据关联的基础能力,现今,国内外都有大量的数据采集器,但大多数采集能力单一,比如 Telegraf 仅支持指标,Filebeat 只服务日志,OpenTelemetry 的 Collector 对非云原生的组件并不友好,需要大量安装 Exporter 插件。
为了实现系统的可观测性,一台主机上可能需要安装无数个 Agent,这既引入了管理上的问题,又产生了成本的问题,一定程度上造成了资源的浪费。观测云的 DataKit 是目前唯一的真正一体化实现各种环境(如传统环境、云原生等)统一数据采集平台,它通过一个进程或 Daemonset Pod 就可以实现全方位的数据采集,配置体验良好,开源且拓展性强,涵盖了更为全面的数据采集类型,有海量的技术栈的指标收集能力,采集器的配置更简单,数据质量更好。
第二个统一,是数据采样格式实现统一。可观测性数据的一个重要特性就是实时性,Logstash 等传统的开源方案均在中心或边缘中心完成数据治理工作,而受限于中心处理的延迟和 delay,在日志收集方面通常有很大的时延,实时性也就无从得到保障。而在观测云的解决方案中,客户只需多拿出 5% 的 CPU 用于数据的处理,一方面可以发挥可观测数据的实时性。另一方面,还可以利用数据本身的现状还原。比如当把所有数据收集到中心的时候,实际上很多环境信息或多或少的都会存在遗漏或缺失的情况,如数据来源于哪个容器、哪个 pod、哪个部署单元或者哪个项目等,在边缘侧可以随时获取这些数据作为补充。
行内人都知道,观测云是一个 SaaS 方案,在边缘侧还可以实现采样功能。比如数据中存在的一些电话号码、金额、用户 ID 等信息,完全可以通过边缘脱敏或者删除掉一些不需要上传或者不易上传的数字。这样一来,数据在上传前就已经完成了脱敏、加密或者丢弃,在丢弃情况下,还能大幅降低传输的带宽;数据无需上传到中心再做治理,这也进一步提升了客户的信任。此外,由于减少了一个中间处理模块,系统的整体实时性也得到了很大的保障。
目前观测云也在考虑把端上的统一治理能力做成一个插件,贡献给 OpenTelemetry,使得 OpenTelemetry 的 Agent 也具备边缘计算的能力。据悉,目前观测云平台完全兼容 OpenTelemetry,单一采集器即可实现容器指标采集、应用链路追踪和日志采集。同时能和各种常用采集器实现串联,包括 Promethues、Skywalking、Fluentd 等十几种常见工具,可以替换更可以共存,轻松实现数据高密采集。
第三个统一,是统一的数据治理。用户的数据在被传输到中心后,将会被统一存储、统一压缩、统一部署,保存在观测云自己定义的逻辑数据存储架构中,相较于开源方案,观测云主要有两个优势:
- 在存储的整合性角度,观测云的成本低于开源方案;
- 不论是指标数据、日志数据、链路数据、用户行为甚至未来开展到安全数据,区别于其他厂商平台,观测云通过自研的 DQL (Debug Query Language) 语言在数据分析平台进行整体分析,甚至针对不用用户使用不同时代的存储技术。
第四个统一,是统一的拓展开发平台。当 DQL 或者软件本身的能力无法满足用户的需要时,用户可以通过 DataFlux Function 平台进行无限的拓展。比如出于中大型公司的安全合规要求,直接通过第三方平台发送 SaaS 平台的告警邮件到内部邮箱,会被直接屏蔽掉,而如果用户把自己的发件服务器注册到 DataFlux Function,就可以实现向内部邮箱发送告警邮件,类似的能力还有短信、电话等等。
除此之外,DataFlux Function 平台还可以实现对各种云平台甚至业务数据的载入,最近,观测云使用 DataFlux Function 帮客户实现了业务对账系统和 IT 代码调用间的关联。据悉,未来观测云会基于 DataFlux Function 平台推出一个抢占型实例量化交易的 Demo。
除了这四个“统一”,观测云还提供 Site Reliability Engineering (SRE) 和 Observability Engineering 的最佳实践,支持智能推测算法,可自动识别基础设施和应用程序的潜在问题。坚持每两周迭代升级,使工程师们可随时体验最前沿的技术和最尖端的能力。是目前市面上少见的,真正意义上做到了“观测性”实现的平台,真正地满足了企业系统及开发者们在观测性方面的需求。
百闻不如一试。当我们回溯平台选型的根本,发现当前市面上的可观测性平台质量良莠不齐,大多还处于“监控”状态,系统整体性较差,无论是对于企业来说还是对于开发者来说,试错成本高。而目前观测云 SaaS 版完全按量计费,没有初始成本,拒绝为闲置功能付费,可提供专属服务经理,让初创团队也能体验一流的全链路系统可观测能力,切实地解决了平台选型难的问题。
正如蒋烁淼所说的,“一个好的系统首先要做到采集、治理、分析、变成这四个方面的统一;其次,需要尽量兼容开源,将整个技术栈和开源进行一个双向的连接。观测云在未来将进一步下探存储成本,最终让利用户。”
四、国产可观测性的未来需要更多厂商共同努力
目前,可观测性还在发展初期,很多产品仍在探索阶段,也有很多问题亟待解决,未来人们对可观测性的需求只会越来越高。
谈及“可观测性”的未来,蒋烁淼认为,可观测性未来主要有四大趋势。观测性平台的开发厂商未来需要在以下几个方面做出改进和优化:
- 提供更大的技术环境支持能力,支持标准的可观测协议;
- 引入更多的算法,以智能的方式做数据的巡检;
- 连接安全产品;
- 进一步降低存储成本。
这与媒体第三方视角观察到的趋势保持相似。然而,纸上得来终觉浅,绝知此事要躬行。虽然国内像观测云等厂商紧跟行业需求及技术发展趋势,提供了自定义数据大盘、基础设施监控、日志分析、用户访问监测、应用性能检测、Profiling、云拨测、智能巡检等多种解决方案,力图打造可观测性最佳实践。但是,仅仅是一家或者几家的努力,是远远不够的。
行业的发展需要更多的人参与进来。观测性平台开发厂商需要挖掘更多用户需求,而普通开发者也应该将更多的注意力放到“可观测性”上,让可观测性工具成为业务优化的得力助手。