云原生时代下,企业的最终目标是构建联动、统一的全链路观测体系,为数据驱动决策提供可靠的支撑。
本文我们将从可观测数据治理方法论、复杂软件架构的故障根因定位以及性能瓶颈分析核心方法和处置决策流程三个方面切入,分享云原生时代全链路可观测体系建设思路。
乌卡时代(VUCA )企业需要适应市场需求变化以及要求,业务持续性创新对企业技术架构和业务架构也提出了严峻的挑战。首先,业务架构需要快速适应变化,有效感知用户/业务的行为动态,通过改善业务效率、用户体验驱动业务发展;其次,技术架构需要采用适应业务敏捷迭代和弹性伸缩的微服务架构、云原生架构,以应对业务频繁变更及技术复杂性造成业务连续性下降的难点问题。
通过引入云原生端到端可观测体系能够帮助企业:有效解决故障感知问题,清晰故障定位、精准根因分析、辅助故障处置决策,持续保障业务连续稳定,同时基于多维运维数据 metric、log、trace的业务价值挖掘能有效洞察业务变化,提升用户体验,驱动业务发展。本文结合嘉为在可观测领域多年实践针对云原生时代全链路观测体系构建方法给出建议、实践和思考。
数字化转型的高速发展,极大地推进了软件架构的迭代更新,从简至繁经历了单体架构-SOA架构-微服务架构-服务网格的演进更新历程。
典型的云原生架构图
随着云原生时代的到来,应用架构在落地敏捷开发、快速迭代、弹性伸缩的同时,将原有的单体应用拆分成多个独立部署、相互通信的组合应用,给应用运维的故障分析、根因定位、业务连续性稳定带来严峻挑战:
① 对象模型激增
单体应用拆分微服务架构后,服务数量剧增;同时,观测对象从虚拟机细化到POD、容器级别,实例数量指数级增长。
② 信息维度复杂,难以建立多维数据关联映射关系
相对于传统虚机或宿主机,增加一层网络、存储、虚拟化计算资源,将增加额外的资源属性及观测指标;云原生微服务应用涉及多个服务、多个组件,请求调用链路复杂。
(图片来源于网络)
③ 架构动态变化,故障现场难以留存,问题难以定位
基于业务快速发展诉求的频繁迭代更替,导致服务、接口、节点动态变化;云原生基于声明式面向终端的设计思想,自动宕机重启IP漂移,故障时难以有效的进行故障回溯和资源定位。
监控是可观测性的一种实现手段,但可观测远不止于监控。
传统监控体系是面向静态资源,通过主动拨测方式构建的时序监控指标视图,其前置条件是需要明确对象及观测指标,基于指标体系,工程师能够了解哪些系统是确定工作的。
在云原生观测场景下,指标覆盖不全、业务侵入性大、数据关联性差、缺乏基于业务视角异常感知机制等问题凸显,传统监控能力难以适应云原生架构动态变化、服务依赖关系复杂、信息组织多样的现实问题,无法从全业务流量链路上有效定位问题、故障处置不及时,整体业务连续性遇到较大的挑战。
在此背景下,诞生了云原生观测体系,通过多维观测数据链路trace、时序指标metric、日志明细log,进行有机融合构建体系化的观测体系,通过无侵入采集动态插码技术降低业务观测成本。同时提供丰富的业务应用视角的观测手段,包括依赖分析、性能剖析、故障排错及根因定位等,实现从被动感知到主动观测、从被动响应到主动观测体系建设的思维模式转变,从而达到了解已知、防范风险、探索未知的观测目标。
总结来说,传统监控可类比中医,基于脉搏时序检测依赖人为经验判断,依赖经验丰富的工程师;可观测可类比西医,通过各种观测手段如RUM、APM、日志、基础监控等,构建全量观测体系白盒诊断,让医生对系统实时进行全面体检,发现问题所在。
云原生时代的观测技术,由单一时序指标数据向指标、链路、明细多维数据关联联动过渡,由单一监控工具向分布式链路追踪、海量日志检索、集中告警治理、工程化AI的可观测体系平台演进。主要包含四个方面:
① 无侵入低侵入接入
使用字节码、ebpf等无侵入或低侵入技术替换传统手动可观测埋点方式,降低观测接入成本,极大方便可观测数据的接入和平台推广。
② 采集能力开源生态
各头部厂商将探针接入能力开源,通过开源协同共建、开放共赢,降低观测采集插件开发成本,聚焦上层可观测数据的价值分析。
③ 数据协议标准统一
OpenTelemetry成为事实的云原生观测标准,开源工具和商业产品逐步兼容适配OT观测标准数据协议,实现数据接入的标准化简化迁移适配工作。
④ 以链路为中心的全景观测
观测分析视角由传统的资源监控,转向以链路为核心的上层应用观测,有效感知并快速响应、闭环业务异常。
可观测体系的建设,我们分为五个层级。目前,大多数企业都历经了监控的前三个层级的建设:L1-局部可用性监控、L2-烟囱工具式监控、L3-大平台型监控,并且正在向L4-可观测体系建设迈进,向L5-智能监控方向进行探索。在此过程中,有几种变化:
在这种变化之下,可观测就绝不仅仅是一套工具或者一套数据组成,而是一个体系化工程,建设上主要有3个核心点:
核心点1-统一数据治理:观测数据建模服务于观测场景
面向云原生体系下不同的观测组件、多维的观测数据的不计其数,如何将不同的观测组件和观测数据进行有机融合,建立统一观测模型、构建观测标准,是建立云原生观测体系首要解决的核心问题。
Peter Bourgon 在2017年2月撰写了一篇简明扼要的文章《Metrics,tracing,and logging》,文中将观测数据按数据类型和应用场景,划分为链路数据 trace、时序指标数据 metric、明细日志文本数据log,这也是目前可观测体系三大支柱的理论来源。
(图片来源于网络)
链路数据 trace 基于特定标识,提供单笔请求的全量调用路径自动构建系统运行时软件架构,提供清晰排障路径。
时序指标数据 metric 是用户观测系统状态和变化趋势,基于数据波动可有效发现异常,但无法用于根因定位。
明细日志文本数据 log 是应用运行过程的现场留存,保留完整业务执行明细,是业务排障主要来源。
如何将三者进行有机统一,相互融合打造统一观测体系,有三个关键点:
核心点2-统一评价标准:以应用为中心健康评估
不同维度的观测数据统一接入后,需要对数据进行清洗、关联、聚合,构建以应用为中心,融合trace、metric、log多维数据的应用性能评价体系,从而基于业务视角,统一性能评价标准、主动发现性能瓶颈、快速感知故障、高效故障恢复,保障应用系统连续稳定。
核心点3-观测处置联动:持续观测改进闭环
以应用为中心,将性能指标、运行日志、服务事件、请求链路进行统计聚合、关联分析,建立服务全景观测中枢,实现服务性能度量、预测,提供故障根因及性能分析依据。
联动标准运维能力及AI赋能加持,基于性能观测度量结果构建清晰运维决策链路,联动应用发布、故障处置、容灾演练、服务治理,构建持续观测、优化改进的双向闭环反馈机制,保障系统连续稳定。
嘉为鲸眼可观测产品是一款面向企业IT研发、运维、业务提供的一款领先的端到端体系化全链条可观测产品,覆盖用户侧真实体验分析、后端应用性能分析、指标体系建设、明细日志检索、海量事件告警的全栈观测场景,解决用户体验度量、业务故障感知、清晰故障定位、精准故障告警、高效数据检索等核心问题,全方位满足客户及时性、准确性、辅助故障处置决策的可观测需求。
产品具备以下亮点:
① 标准化
基于观测场景完成观测对象模型建模,规范观测数据采集策略、指标聚合算法、指标检测策略打通多维观测数据(metric、trace、log)关联映射关系,无缝对接CMDB构建动静结合的观测对象寻址,落地体系化、标准化观测场景建模方法。
② 一体化
以观测对象模型为经络建立从前端用户体验分析、后端应用性能分析、日志检索、基础监控、事件告警的业务共识统一观测视图,无缝联动嘉为蓝鲸故障自愈、应用发布、容灾切换等运维处置能力,实现观测数据采集清洗、业务异常感知、故障事件告警、根因溯源排障、辅助运维处置决策的观测处置全生命周期闭环。
③ 智能化
基于行业纵深海量数据建模构建丰富的AIOps智能观测场景,覆盖指标异常检测、资源容量预估、故障根因分析、专家知识沉淀、日志聚类等智能应用场景。
④ 开放融合
兼容开源OpenTelemetry和蓝鲸开源PaaS平台,实现开放数据投递、标准接口对接、自定义插件增强等开放性设计满足客户自主可控、自定义扩展、安全审计合规要求。此外,单一产品具备独立交付开放融合能力,支持与现有监控、运维工具能力打通。
① 观测体系融合构建端到端全景观测辅助决策分析
② 蓝鲸运维生态融合加速问题处置保障业务连续
发现问题是解决问题前置条件,基于告警中心可对分层观测对象全量告警事件进行告警治理(丰富、抑制、处置),通过告警中心作为观测+运维处置决策桥梁联动蓝鲸强大运维处置生态(ITSM、故障自愈、容灾切换、发布中心)实现故障高效恢复,有效保证业务连续稳定。