【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

中国移动磐基 PaaS 平台基于 eBPF 的应用可观测性建设实践

  • 2023-11-30
    北京
  • 本文字数:2666 字

    阅读完需:约 9 分钟

大小:1.32M时长:07:42
中国移动磐基PaaS平台基于eBPF的应用可观测性建设实践

作为中国移动智慧中台的统一技术底座,磐基 PaaS 平台提供了高效的集群管理和调度功能,满足多元化的业务场景需求。该平台携手 DeepFlow 借助 eBPF 技术,解决了 APM 落地困难和组件追踪断路中的挑战,实现了全栈且无侵扰的应用可观测性。磐基 PaaS 平台将 eBPF 数据与现有的可观测数据整合,提供了开箱即用的应用可观测性,全栈无盲点的调用链追踪等能力,大大提升了各业务系统云化的底气,并促进了平台本身的快速推广。未来,平台还针对运营商等特定行业场景,进一步深化可观测性数据的融合,并将创新性地拓展其 AI 能力,以增强市场竞争力。

背景介绍


磐基 PaaS 平台是中国移动智慧中台统一技术底座,为算力网络提供编排调度能力,提供分钟级的集群交付,实现 ARM/X86/混部架构集群统一管控,按需调度,支撑 B、O、M 三域用户交互、计算密集、数据密集、交易密集等多种类型的业务系统,具备万级 POD 承载能力,构建双栈网络,使在线业务稳定运行、平稳应对业务高峰。


磐基 PaaS 平台整合了磐基容器平台、磐舟 Devops、算力管控、磐维数据库、磐智 AI 平台及相关能力,以战略指导、统一规划、能力解耦、有机组装、需求驱动、场景匹配、敏捷迭代、低感升级为原则,全面布局云原生 PaaS 产品能力图谱,均衡发展。


磐基 PaaS 平台目前纳管 700+集群,4 万+节点,6 千多套组件,支撑省分公司包括 CRM 核心系统、BOSS 计费系统,IT 公司、各专业公司 IT 系统包括 AI、大数据系统等 600 多个业务系统上云。


云原生 PaaS 产品能力图谱 


目前磐基 PaaS 平台基于可观测性三大基石(指标+追踪+日志)的指导思想,已经使用不同的组件构建完成,利用 Prometheus 获取了云原生基础设施资源(Docker、K8s 自身)、中间件(Redis、Nginx)等指标数据,利用自研的 APM 实现了微服务在代码级别的调用链追踪,利用自研日志平台收集主机、Kubernetes、组件、应用实例的日志数据。但是在业务真正落地过程中,还是存在以下一些问题:

推广支撑力度不够 


  • 信任度不足:传统 APM 探针技术主要采用字节码注入技术,该技术虽无需业务系统研发人员关注代码实现,但对业务系统仍有代码侵入特性,进而占用业务系统资源,或影响业务性能。高并发生产系统往往因探针可能产生的影响,而质疑其收益性。

  • 语言依赖强:字节码注入技术依赖业务系统代码语言和代码框架,导致传统 APM 技术需提供各种语言和框架的探针,才能满足企业级 PaaS 平台的可观测能力,因而在能力建设上的投入往往落后于实际生产需要。

  • 迁移难度大:SkyWalking 等 APM 产品早在非容器化时代便已普及,云原生时代同步提供了容器化操作。当业务系统与 APM 产品深度融合后,变更观测产品的推动力便极其微弱。

观测能力覆盖不足


  • 云设施观测能力不全:云原生全栈式可观测融合视图应包含云原生网络层能力,但传统探针技术在 CoreDNS、NodeLocal DNS 等 Kubernetes 网络层还存在盲区。

  • 组件观测能力弱:可观测能力应尽可能地呈现业务系统及其相关的依赖组件、基础设施的全貌,但传统的探针技术因语言和框架的依赖性,在观测系统所依赖的组件内部的呈现能力还显得不足,往往只能到其表面请求入口,内部仍是黑盒状态。


基于以上痛点,磐基 PaaS 平台开展 ebpf 技术能力特性的研究,并与 deepflow 社区开展合作,启动基于 ebpf 技术的可观测平台能力建设,突破创新性的技术壁垒,致力于完善云原生场景下的应用观测图谱。

为什么引入 DeepFlow?


DeepFlow 基于 eBPF 实现了应用性能指标、分布式追踪、持续性能剖析等观测信号的零侵扰(Zero Code)采集,并结合智能标签(SmartEncoding)技术实现了所有观测信号的全栈(Full Stack)关联和高效存取。


零侵扰的方式支持主流应用协议的解析,包括 HTTP 1/2、HTTPS(Golang/openssl)、Dubbo、gRPC、ProtobufRPC、SOFARPC、MySQL、PostgreSQL、Redis、Kafka、MQTT、DNS,未来还将扩展更多应用协议的支持。提供了查看所有微服务应用的 RED(Request/Error/Delay)黄金指标,所有微服务之间的全景调用关系,以及网络协议栈 L4 层的吞吐、时延、建连异常、重传、零窗等指标。


开箱即用 


利用 eBPF 和 Wasm 技术零侵扰实现分布式追踪,支持任意语言的应用程序,完整覆盖网关、服务网格、数据库、消息队列、DNS、网卡等各类基础设施,不留下任何追踪盲点。


零侵扰分布式追踪 


依托 eBPF 技术获得的无插码零侵扰能力,DeepFlow 基本能做到独立应用部署,对应用开箱即用,对外提供的 Grafana Dashboard 也非常丰富。

磐基 eBPF 应用可观测性实践


DeepFlow 对外提供统一的 SQL 接口查询所有类型的观测数据,磐基平台可以非常方便的将 DeepFlow 数据与自身可观测平台集成,目前磐基可观测平台基于 eBPF 数据实现了网络流量拓扑展示、eBPF 调用链火焰图展示、告警阈值配置、并将 eBPF 数据与现有的指标、日志、调用链数据融合,以实现全栈一体化的可观测性平台。


平台架构 


  • 流量拓扑展示,支持多种维度拓扑视图(应用 POD/NODE、网络 POD/NODE);支持跨集群流量调用展示;支持黄金指标(吞吐量、错误率、延迟等)进行告警阈值配置找到异常网络路径;支持告警阈值配置控制线条颜色,展示不同颜色拓扑线条,并实时告警通知;支持灵活的过滤条件(集群、分区、工作负载、协议、节点)。


流量拓扑-01


流量拓扑-02 


  • 调用链火焰图,展示单条请求的全栈调用关系,包括系统进程、主机、容器节点、POD 容器内的请求耗时情况。


调用链火焰图

 

  • deepflow-agent、deepflow-server、deepflow-app 等镜像进行重新编译和底包 OpenEuler 操作系统替换,并通过镜像安全扫描。

  • 从统一门户,资源中心获取用户和业务系统等数据,和 eBPF 可观测数据进行融合,做多租户权限隔离。

  • 将 deepflow-server 端元数据查询存储引擎 MySQL 进行改造,使其能够同时适配磐维数据库和 Postgres。

  • 将磐基自身 APM 数据转换成 OpenTelemetry 标准的调用链数据,并将 OpenTelemetry、eBPF 获取到的追踪数据进行关联, 覆盖一个应用从业务代码、系统函数、网络接口的全栈调用路径,实现真正的全链路分布式追踪。

未来展望


通过一段时间的探索和实践,磐基 PaaS 基于 eBPF 可观测取得了一些阶段性成果,后续将加速磐基 eBPF 应用可观测性平台在各个地域上生产,给业务系统上云提升信心。也将继续在功能上快速迭代,大致计划:


  • 进一步融合 eBPF 可观测性数据与指标、日志及调用链追踪数据,构建全栈一体化可观测性平台

  • 利用 WASM plugin 实现 eBPF 内核可编程,实现业务私有协议解析能力、私有字段数据脱敏能力

  • 利用 eBPF 采集进程的性能剖析数据,实现 CPU、内存全栈性能数据分析展示

  • 结合 AI 能力,提供根因分析、故障预测、大模型智能助手等功能


同时将进一步加强与 DeepFlow 社区的合作,把磐基 eBPF 可观测性在运营商行业的实际应用经验和成果分享给社区,促进开源社区的共同发展。

2023-11-30 10:324312

评论

发布
暂无评论
发现更多内容

架构师 01 期,大作业一

子文

AI人脸识别技术门禁系统解决方案智慧社区建设

13828808769

人脸识别 智慧城市 智慧平安小区平台开发 刷脸

万字长文聊缓存(上)

Silently9527

Java nginx HTTP

判断回文数字算法,swift 5初始化详解,时间管理计划落地,swift5 多线程高级用法 John 易筋 ARTS 打卡 Week 33

John(易筋)

ARTS 打卡计划 算法回文数字判断 时间管理计划落地 swift5 初始化详解 swift5多线程高级用法

软件架构设计方案实战

Andy

UDP连接要不要发起connect

kof11321

网络编程

江苏民丰 x mPaaS | 县域小银行,技术团队就12人,却找到了数字化转型的秘籍

蚂蚁集团移动开发平台 mPaaS

银行数字化转型 mPaaS

Week 11 作业

evildracula

与前端训练营的日子 --Week10

SamGo

学习

Week1 作业

oooh-la

面试官:数据库自增ID用完了会怎么样?

艾小仙

数据库

这样规范写代码,同事直呼“666”

xcbeyond

Java 代码规范 规范

架构师训练营第2期 第11周命题作业

月下独酌

console.log也能插图!!!

德育处主任

CSS html 大前端 Web js

第 11 周 系统架构总结

心在那片海

完美!华为爆出Redis宝典,原来Redis性能可压榨到极致

996小迁

redis 架构 面试 资料

消息队列优化(3) -- grpc MPMCQueue 简介及各队列性能对比

1412

消息队列 workflow srpc 异步调度 并行计算

谁说明天上线,这货压根不知道开发流程!

小傅哥

Java 小傅哥 架构设计 开发流程 开发规范

2020年国内前端团队都做了些什么?

徐小夕

大前端 技术栈 2021

重学JS | 数组知识点大全,必收藏!

梁龙先森

大前端 编程语言

第 11 周 系统架构作业

心在那片海

呃?!!!我彻底忘了这件事😂

Nydia

消息队列优化(1) -- 鶸的介绍篇

1412

消息队列 workflow srpc 异步调度 并行计算

消息队列优化(2) -- 几种基本实现

1412

消息队列 workflow srpc 异步调度 并行计算

关于一个梦(自我的死亡)

Yuchen

身心健康 心理 自我

我画了 40 张图就是为了让你搞懂计算机网络层

cxuan

计算机网络 IP 网络层 ipv6 ipv4

开源整套Netty源码笔记+19个案例调优+游戏项目,终于彻底顿悟了

Java架构追梦

Java 源码 架构 Netty 游戏项目

架构师训练营第2期 第11周总结

月下独酌

架构师第一周总结



十一、高可用

Geek_28b526

微服务缓存原理与最佳实践

万俊峰Kevin

缓存 缓存穿透 缓存并发 go-zero Go 语言

中国移动磐基PaaS平台基于eBPF的应用可观测性建设实践_云计算_卢城_InfoQ精选文章