作为一名对可观测性领域充满热情的工程师,我带着对 KubeCon China 2024 的憧憬,踏上了前往香港的旅程。这个为期三天的会议,汇聚了来自全球的云原生技术爱好者和专家,议题分享覆盖了容器、可观测性、服务网格、AI 工程化、Serverless 等多个领域。除了火得一塌糊涂的 AI 相关议题,另一个比较火热的方向就是可观测性。于我而言,这场盛会不仅是与开发者进行技术交流的平台,也是洞察行业趋势的窗口。
的创新实践
此次 KubeCon 一共有超过 20 个主题与可观测相关,除了自己的演讲,我也积极参与了其他关于可观测性的议题分享与讨论,在会议期间,能够有机会与来自不同背景的技术专家进行了深入交流,分享各自在可观测性实践中遇到的问题和解决方案,这些交流极大地丰富了我的视野。
《GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现 》
Java 应用程序在云原生环境中的性能和资源消耗问题常常受到关注,我们需要采取措施来优化它们,以提高效率和降低资源占用。因此,Oracle 推出了新一代 Java 虚拟机 —— GraalVM,GraalVM 是一个高性能的 JDK,用于加速 Java 和 JVM 应用的性能,同时简化 Java 云原生服务的构建和运行。它提供优化的编译器,可以更快地生成代码并降低计算资源消耗,实现微服务即时启动。此外,GraalVM 本地镜像实用程序可提前 (AOT) 编译 Java 字节码,生成可近乎瞬时启动且仅占用极少内存资源的本机可执行文件。但是对基于 GraalVM 构建的 Java 应用的可观测存在着一定难度,来自阿里云的 Zihao Rao 在这个议题中分享了他们的解决方案。
《面向 Kubernetes 控制面的全局追踪系统》
调试 Kubernetes 系统问题是复杂的:不同的控制器独立地操作对象,有时会触发其他控制器的变化。与传统的基于RPC 的服务不同,组件之间的关系并不明确;确定哪个组件引起了问题就像在一堆草堆中找针一样困难。组件展示它们自己的碎片化数据,通常仅限于单个请求的生命周期,并未展示异步因果事件的整体情况。
字节跳动团队介绍了他们的开源项目 Kelemetry,Kelemetry 是一个利用审计日志、事件、通知器和组件跟踪的分散数据源的 Kubernetes 控制平面全局跟踪系统。分享中介绍了 Kelemetry 原理以及通过几次在线问题排查演示,展示了 Kelemetry 如何揭示相关对象在长时间跨度内的状态转换,并重建事件的因果层次结构,以提供对 Kubernetes 系统中发生的一切的直观洞察。
《OpAMP:灵活扩展 OpenTelemetry》
越来越多的用户或组织选择使用 OpenTelemetry 构建他们的可观测系统,包括 OTel Agent 以及 OTel collector 后端组件,然而,随着 OTel Col 的大规模部署与应用,如何对其管理也是一大挑战。议题中介绍了 Open Agent Management Protocol (OpAMP) 以及其产生的背景,OpAMP 是一种新兴的开放标准,用于在规模化环境下管理遥测代理的集群。2022年,Splunk 将 OpAMP 捐赠给 OpenTelemetry 项目,并在 observIQ 的反馈下进行了初步的改进。
因为在多集群管理中也遇到过类似挑战,「DaoCloud 道客」也一直在关注并参与 OpAMP 的开源建设,目前在内部实现了可观测性控制面的开发,近期将会通过开源的形式和大家见面,欢迎大家持续关注。
02
eBPF 在可观测领域
的实践应用
谈到可观测性怎么能少得了 eBPF 技术,可观测性领域正在经历一场颠覆性的转变,其中核心驱动力便是 eBPF(扩展伯克利数据包过滤器)技术。作为下一代改革先锋,eBPF 技术正在彻底改变我们对系统观测和监控的认知。下面几个议题则是 eBPF 在可观测领域的实践应用。
《可观测性超级增强器:使用零代码为数百万个容器构建流量拓扑图》
Kubernetes 使容器编排和管理变得简单易行。然而,随着应用程序和中间件在 Kubernetes 上的激增,面对不同集群中数百万个容器或服务时,分析和识别大量服务和中间件之间的关系和依赖关系变得困难。因此,人们直观的想法则是通过一张拓扑图能够展示出我们系统的全貌,我们再根据异常的指标去下钻定位问题根因。在这个议题中,讲师分享了他们在构建如此大体量的拓扑图的探索与思考。最常见的方法是,业务方进行代码更改以暴露更多可观测性信息,这对所有应用程序来说是不可能覆盖的。这里提到了通过 eBPF 技术,实现了应用无侵入的方式采集容器之间的调用关系,并通过采集的关系绘制拓扑图。最后,两位讲师也通过 Demo 进行了现场演示。
《OpenTelemetry 放大:使用 eBPF 启用的分布式跟踪实现全面的可观测性》
在云原生生态系统中,OpenTelemetry 已经成为跨语言和跨平台可观测性的事实标准。通过为各种编程语言提供全面的跟踪、度量和日志解决方案,OpenTelemetry 为开发人员和运维人员提供了对复杂系统的深入洞察。近年来,通过在 Linux 内核空间引入 eBPF 的创新能力,OpenTelemetry 还进一步拓展了其可观测性边界。
然而,这种创新之旅遇到了新的挑战,特别是在减少某些编程语言中的侵入性和在内核和用户空间之间相关联可观测性数据方面。此议题介绍了阿里云在这些挑战中的旅程。通过利用 eBPF 技术,提供了一种集成的、不那么侵入性的方法,实现实时洞察分布式系统。这个议题对 eBPF 技术做了很深入的介绍:
《通过 eBPF 解锁 LLM 性能:优化训练和推理管道》
大语言模型(LLMs)的训练和推断过程涉及处理大量的模型数据和训练数据,并消耗大量的 GPU 计算资源。然而,在缺乏可观察性的情况下,提高 GPU 利用率变得极具挑战性。这个议题介绍了如何利用 eBPF 在 LLM 训练和推理过程中实现零中断的可观察性。这包括利用内存分析来了解模型和训练数据的加载性能,网络分析来理解数据交换性能,以及 GPU 分析来分析 GPU 的 MFU(模型 FLOPs 利用率)和性能瓶颈。
分享的最后,Yang Xiang 介绍了在 PyTorch LLM 应用程序和 llm.c 项目中使用 eBPF 实现可观察性的实际效果。
KubeCon 2024 香港峰会是云原生技术领域的一场思想盛宴和灵感的火花碰撞。感谢这些精彩的分享和宝贵的对话,不仅拓宽了我的技术视野,也为我带来了新的启发。带着这些收获,我期待将这些经验和洞见带回 OpenTelemetry 社区,为推动可观测性技术的创新与发展贡献自己的力量。
本文作者
「DaoCloud 道客」可观测性开发工程师
热门推荐
访问以下网址,或点击文末【阅读原文】立即体验
DaoCloud 公司简介
网址:www.daocloud.io
邮件:info@daocloud.io
电话:400 002 6898