5.9.3 Coolbpf:一站式eBPF开发编译平台
概述
eBPF是一项新的动态跟踪技术。基于eBPF技术,衍生出的BCC、bpftrace等开源工具,极大降低了eBPF的应用代码开发的门槛,成为当前eBPF各类应用开发的主要方式,但此类工具存在如下缺点:
生产环境需要部署依赖库较多,如Clang/LLVM等库,部署不便;
每次运行都要执行Clang/LLVM编译,严重消耗CPU、内存等资源;
需要安装对应内核的头文件;
不支持3.10等低内核版本
Coolbpf是一个便捷高效的一站式eBPF开发编译平台,创新的提出远程编译(云编译)思想,以CO-RE(Compile Once-RunEverywhere)为基础实现,保留了资源占用低、可移植性强等优点,适合在生产环境批量部署所开发的应用,加上新实现的带eBPF verifier的内核模块,使得同一个eBPF应用无需修改就能在 3.x/4.x/5.x内核版本安全运行。基于Coolbpf的用户只需专注自己的功能开发,不用关心底层库安装和环境搭建,给广大eBPF爱好者提供了一种新的探索和实践。
技术描述
Coolbpf的功能架构如下图,它当前主要包含六大功能:远程编译;本地编译和基础库封装;低版本内核支持;BTF自动生成和发布;eBPF应用自动化测试;支持python/go/rust等高级语言进行应用开发。
应用场景
Coolbpf如其名一样非常酷的提升了eBPF的开发和编译效率,应用场景包括:系统故障诊断,网络优化,系统安全,性能监控。未 来,Coolbpf还将探索新技术、新特性:提升字节码翻译效率、内核运行时安全等,应用场景将更加多样。