• 擎创技术流 | 深入浅出运维可观测工具(三):eBPF如何兼容多架构模式性能管理


    嗨~又见面了大家!

    之前给大家分享过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,可实现根因推荐等能力,保证快速定障,后续我们将会新起篇章介绍擎创可观测场景分析、根因推荐、性能剖析等能力及常用的运维流程。


    擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。

     

    行业龙头客户的共同选择

    ​了解更多运维干货与技术分享

    可以右上角一键关注

    我们是深耕智能运维领域近十年的

    连续多年获Gartner推荐的AIOps标杆供应商

    下期我们不见不散~ 

  • 相关阅读:
    Facebook的虚拟社交愿景:元宇宙时代的新起点
    文心一言 VS CHATGPT
    浅谈windows提权
    Django 配置 Email Admin 详细指南
    Linux安装RocketMQ
    C中结构体和C++类各自对象的大小——C++
    【kubernetes】kubernetes中的安全和认证
    DAST 黑盒漏洞扫描器 第二篇:规则篇
    一致性哈希算法分区
    obsidian加git备份,同时忽略掉自己不想同步的文件夹
  • 原文地址:https://blog.csdn.net/qq_37641528/article/details/132697151