Skip to content

What is the role of wasm module? #105

Answered by yunwei37
try-agaaain asked this question in Q&A
Discussion options

You must be logged in to vote

https://mp.weixin.qq.com/s/OhcBWvXIIrPWw1fzVWXJRA

也许可以参考这篇文章? 主要是有这些想法:

可移植:让 eBPF 工具和应用完全平台无关、可移植,不需要进行重新编译即可以跨平台分发。

隔离性:借助 WASM 的可靠性和隔离性,让 eBPF 程序的加载和执行、以及用户态的数据处理流程更加安全可靠;事实上一个 eBPF 应用的用户态控制代码通常远远多于内核态。

包管理:借助 WASM 的生态和工具链,完成 eBPF 程序或工具的分发、管理、加载等工作,目前 eBPF 程序或工具生态可能缺乏一个通用的包管理或插件管理系统。

跨语言:目前 eBPF 程序由多种用户态语言开发(如 Go++等),超过 30 种编程语言可以被编译成 WebAssembly 模块,允许各种背景的开发人员(C、Go、Rust、Java、TypeScript 等)用他们选择的语言编写 eBPF 的用户态程序,而不需要学习新的语言。

敏捷性:对于大型的 eBPF 应用程序,可以使用 WASM 作为插件扩展平台:扩展程序可以在运行时直接从控制平面交付和重新加载。这不仅意味着每个人都可以使用官方和未经修改的应用程序来加载自定义扩展,而且任何 eBPF 程序的错误修复和/或更新都可以在运行时推送和/或测试,而不需要更新和/或重新部署一个新的二进制。

轻量级:WebAssembly 微服务消耗 1% 的资源,与 Linux 容器应用相比,冷启动的时间是 1%:我们也许可以借此实现 eBPF as a service,让 eBPF 程序的加载和执行变得更加轻量级、快速…

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@try-agaaain
Comment options

try-agaaain Jan 23, 2023
Maintainer Author

@yunwei37
Comment options

Answer selected by yunwei37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants