作为中国移动智慧中台的统一技术底座,磐基 PaaS 平台提供了高效的集群管理和调度功能,满足多元化的业务场景需求。该平台携手 DeepFlow 借助 eBPF 技术,解决了 APM 落地困难和组件追踪断路中的挑战,实现了全栈且无侵扰的应用可观测性。磐基 PaaS 平台将 eBPF 数据与现有的可观测数据整合,提供了开箱即用的应用可观测性,全栈无盲点的调用链追踪等能力,大大提升了各业务系统云化的底气,并促进了平台本身的快速推广。未来,平台还针对运营商等特定行业场景,进一步深化可观测性数据的融合,并将创新性地拓展其 AI 能力,以增强市场竞争力。
01、中国移动磐基 PaaS 平台
磐基 PaaS 平台是中国移动智慧中台统一技术底座,为算力网络提供编排调度能力,提供分钟级的集群交付,实现 ARM/X86/混部架构集群统一管控,按需调度,支撑 B、O、M 三域用户交互、计算密集、数据密集、交易密集等多种类型的业务系统,具备万级 POD 承载能力,构建双栈网络,使在线业务稳定运行、平稳应对业务高峰。
磐基 PaaS 平台整合了磐基容器平台、磐舟 Devops、算力管控、磐维数据库、磐智 AI 平台及相关能力,以战略指导、统一规划、能力解耦、有机组装、需求驱动、场景匹配、敏捷迭代、低感升级为原则,全面布局云原生 PaaS 产品能力图谱,均衡发展。
磐基 PaaS 平台目前纳管700+集群,4万+节点,6千多套组件,支撑省分公司包括CRM核心系统、BOSS 计费系统,IT 公司、各专业公司IT系统包括 AI、大数据系统等600多个业务系统上云。
01-云原生 PaaS 产品能力图谱
目前磐基 PaaS 平台基于可观测性三大基石(指标+追踪+日志)的指导思想,已经使用不同的组件构建完成,利用 Prometheus 获取了云原生基础设施资源(Docker、K8s 自身)、中间件(Redis、Nginx)等指标数据,利用自研的 APM 实现了微服务在代码级别的调用链追踪,利用自研日志平台收集主机、Kubernetes、组件、应用实例的日志数据。但是在业务真正落地过程中,还是存在以下一些问题
-
推广支撑力度不够
-
信任度不足:传统APM探针技术主要采用字节码注入技术,该技术虽无需业务系统研发人员关注代码实现,但对业务系统仍有
代码侵入
特性,进而占用业务系统资源,或影响业务性能。高并发生产系统往往因探针可能产生的影响,而质疑其收益性。 -
语言依赖强:字节码注入技术依赖业务系统代码语言和代码框架,导致传统 APM 技术需提供各种语言和框架的探针,才能满足企业级 PaaS 平台的可观测能力,因而在能力建设上的投入往往落后于实际生产需要。
-
迁移难度大:SkyWalking 等 APM 产品早在非容器化时代便已普及,云原生时代同步提供了容器化操作。当业务系统与 APM 产品深度融合后,变更观测产品的推动力便极其微弱。
-
-
观测能力覆盖不足
-
云设施观测能力不全:云原生全栈式可观测融合视图应包含云原生网络层能力,但传统探针技术在 CoreDNS、NodeLocal DNS 等 Kubernetes 网络层还存在盲区。
-
组件观测能力弱:可观测能力应尽可能地呈现业务系统及其相关的依赖组件、基础设施的全貌,但传统的探针技术因语言和框架的依赖性,在观测系统所依赖的组件内部的呈现能力还显得不足,往往只能到其表面请求入口,内部仍是黑盒状态。
-
基于以上痛点,磐基PaaS平台开展ebpf技术能力特性的研究,并与deepflow社区开展合作,启动基于ebpf技术的可观测平台能力建设,突破创新性的技术壁垒,致力于完善云原生场景下的应用观测图谱。
02、为什么引入 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 层的吞吐、时延、建连异常、重传、零窗等指标。
02-开箱即用
利用 eBPF 和 Wasm 技术零侵扰实现分布式追踪,支持任意语言的应用程序,完整覆盖网关、服务网格、数据库、消息队列、DNS、网卡等各类基础设施,不留下任何追踪盲点。
03-零侵扰分布式追踪
依托 eBPF 技术获得的无插码零侵扰能力,DeepFlow 基本能做到独立应用部署,对应用开箱即用,对外提供的 Grafana Dashboard 也非常丰富。
03、磐基 eBPF 应用可观测性实践
DeepFlow 对外提供统一的 SQL 接口查询所有类型的观测数据,磐基平台可以非常方便的将 DeepFlow 数据与自身可观测平台集成,目前磐基可观测平台基于 eBPF 数据实现了网络流量拓扑展示、eBPF 调用链火焰图展示、告警阈值配置、并将 eBPF 数据与现有的指标、日志、调用链数据融合,以实现全栈一体化的可观测性平台。
04-平台架构
-
流量拓扑展示,支持多种维度拓扑视图(应用 POD/NODE、网络 POD/NODE);支持跨集群流量调用展示;支持黄金指标(吞吐量、错误率、延迟等)进行告警阈值配置找到异常网络路径;支持告警阈值配置控制线条颜色,展示不同颜色拓扑线条,并实时告警通知;支持灵活的过滤条件(集群、分区、工作负载、协议、节点)。
05-流量拓扑-01
06-流量拓扑-02
-
调用链火焰图,展示单条请求的全栈调用关系,包括系统进程、主机、容器节点、POD容器内的请求耗时情况。
07-调用链火焰图
-
deepflow-agent、deepflow-server、deepflow-app 等镜像进行重新编译和底包 OpenEuler 操作系统替换,并通过镜像安全扫描。
-
从统一门户,资源中心获取用户和业务系统等数据,和eBPF可观测数据进行融合,做多租户权限隔离。
-
将 deepflow-server 端元数据查询存储引擎 MySQL 进行改造,使其能够同时适配磐维数据库和 Postgres。
-
将磐基自身 APM 数据转换成 OpenTelemetry 标准的调用链数据,并将 OpenTelemetry、eBPF 获取到的追踪数据进行关联, 覆盖一个应用从业务代码、系统函数、网络接口的全栈调用路径,实现真正的全链路分布式追踪。
04、未来展望
通过一段时间的探索和实践,磐基PaaS基于 eBPF 可观测取得了一些阶段性成果,后续将加速磐基 eBPF 应用可观测性平台在各个地域上生产,给业务系统上云提升信心。也将继续在功能上快速迭代,大致计划:
-
进一步融合 eBPF 可观测性数据与指标、日志及调用链追踪数据,构建全栈一体化可观测性平台
-
利用 WASM plugin 实现 eBPF 内核可编程,实现业务私有协议解析能力、私有字段数据脱敏能力
-
利用 eBPF 采集进程的性能剖析数据,实现 CPU、内存全栈性能数据分析展示
-
结合 AI 能力,提供根因分析、故障预测、大模型智能助手等功能
同时将进一步加强与 DeepFlow 社区的合作,把磐基eBPF 可观测性在运营商行业的实际应用经验和成果分享给社区,促进开源社区的共同发展。
欢迎大家报名参与12月16日,由清华大学&云杉网络主办的“以网络为中心的零侵扰可观测性”技术论坛,本次论坛邀请了清华大学、光大银行、民生银行、腾讯互娱、蚂蚁集团的技术专家,期待你和我们一起,共同探讨零侵扰可观测性的未来。