嗨~又见面了大家!
之前给大家分享过2篇eBPF技术干货,后台收到的反馈还挺好的,以至于总有朋友过来催更这一系列,这不第3篇在大家的千呼万唤下终于出来了。
新来的朋友点这里,键回看eBPF精彩技术贴,别忘了随手关注一下,感谢~
擎创技术流 | 深入浅出运维可观测工具(一):聊聊eBPF的前世今生
擎创技术流 | 深入浅出运维可观测工具(二):eBPF应用中常见问题
一、为什么云原生越来越火了
今年技术界最火的关键词除了ChatGPT外,云原生,大模型,AIGC也激起了不少讨论,所以本次分享主要是围绕云原生转型之路上,APM 底层如何通过 eBPF + Agent 兼容多架构应用性能管理。
在说明 eBPF 和 Agent 兼容之前,我们先简单回顾下云原生概念以及为什么要用云原生转型:云原生是分布式部署和统一运管的分布式云,以容器、微服务、DevOps等技术建立的一套云技术产品体系。
传统行业由于线上业务的飙升、衍生了快速响应业务、进行云原生转型等需求。对于云原生设计体系中应用剥离了非业务代码部分(如:弹性调度、快速迁移、安全)则需要让应用更聚焦于业务本身,实现高效的持续交付、弹性伸缩、降低资源成本、提升系统可用性等优势。
二、云原生背景下的企业运维模式
云原生转型之后,企业会出现多架构模式的中间态。针对多种架构模式下的系统如何统一运维?以及针对以下共性运维需求时,要如何保障系统灵活顺畅运行呢?
-
如何快速感知故障的发生?
-
如何快速定位故障?
-
如何深度剖析故障原因?
-
如何了解对业务影响范围,进行紧急处置?
1.传统架构下的系统运维VS云原生架构下的系统运维
企业在云原生转型的过程中,部分业务改造代价比较高,同样需要依赖的上下游进行适配改造,基于这些原因,部分系统保留了传统模式,导致企业内出现了多种架构模式的中间态。
-
传统架构下的系统
◆一般是面向传统应用、中间件、服务器进行运维
◆横向扩展性低,依赖大量的机器投入和灾备建设
◆更关注系统环境部署、升级、变更、发布、硬件指标等信息
-
云原生架构下的系统
◆面向网格化的服务、中间件、运行态指标、K8s 下的基础设施进行运维;
◆由于云原生可借助高可用、弹性伸缩等能力实现业务的高性能和持续性,技术的复杂性也在增高。
◆在运维层面:微服务指数型上升、依赖复杂排障困难,技术栈深,弹性伸缩支撑业务突发流量,也加快了云上对象的动态变化频率,需要及时捕获这些动态变更和异常的发生。
敲重点!!!不同的架构,系统运维模式即使不同,但也存在相互调用的情况。常见的是通过 Agent 探针实现应用性能分析,但有些存量应用无法接入探针。另外,在企业内跨团队推广 Trace Agent 也是一个漫长的过程。
三、如何兼容多架构、多协议模式,并获得更好的应用性能分析?
1.eBPF技术引入
eBPF 是一种直接面向操作系统内核层添加黑盒代码的革命性技术,无需入侵应用代码,由于内核在网络处理的路径上预置了很多挂载点,eBPF 程序可以加载到这些挂载点(函数)上,从操作系统层面实现可观测。
2.Agent技术引入
Agent 是通过埋点的技术,通过声明式的 API 捕获请求传输的数据。当前擎创支持集成部分开源工具,例如市场主流的分布式应用性能监控 Skywalking。
3.API技术接入
擎创 APM 支持不同的业务系统使用不同的采集方式,可以将无法接入 Agent 或不关注链路的系统接入 eBPF 实现性能管理,针对链路调用复杂的系统接入 Agent 实现全链路监控,帮助全局排错。
四、eBPF 和 Agent技术如何应用
1.统一融合处理
系统接入 eBPF 和 Agent,采集上报的数据源不同,需进行统一的融合处理,建设 “对象、指标、Trace” 等模型,APM 平台按照统一模型进行数据处理。
-
数据源:支持按照 “系统” 维度选择采集方式,每个系统可以选择不同采集方式,上报的原始数据格式不同;
-
建设统一对象模型:按照 系统、服务、Endpoint、实例等对象,对所有来源数据进行统一的模型解析;
-
数据丰富:主要分为两种:1)对象:识别调用来源、或被调用方的 IP 信息,进行对象关联;2)指标:针对跨接入方式的对象,按照调用方作为 Client 端的数据丰富被调用方的 数据,被调用方同理;
2.多系统建议接入可观测运维
应用性能监控(AIMeter • APM)为擎创自研平台,兼容多种采集方式,联动基础设施、网络等多维数据,全链路根因定位,深度有效运维。
-
数据模型:兼容多种采集的数据来源,例如:eBPF、Skywalking、对接第三方,平台按照统一的对象模型,进行数据解析、数据处理;
-
数据丰富:丰富源端调用远端的数据,弥补数据缺失问题,丰富基础设施对象与服务层的关联,注入 Kubernetes、云下等标签信息,实现应用多维数据联动、深度下钻基础设施等监控;
-
统一查询:提供 UQ 统一查询能力,适配所有类型的快速查询;
-
性能分析:针对不同数据源,平台提供统一观测对象模型,为系统、应用、服务、Endpoint、Instance 提供性能、错误分析、场景分析、根因推荐等能力;
五、总结
不同系统可选择性使用 eBPF 和 Agent 数据采集能力,无论是 eBPF 还是 Agent 均可实现应用性能管理能力,两者特性不同。对于同一条路径下的多系统调用,尽量保证统一接入 Agent,可实现根因推荐等能力,保证快速定障,后续我们将会新起篇章介绍擎创可观测场景分析、根因推荐、性能剖析等能力及常用的运维流程。
添加图片注释,不超过 140 字(可选)
擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。