0x0001 关于 WASM 在 Serverless 与「边缘计算」场景下的应用,讲了不同的云函数的执行机制,还有 WASM 在语言层面的安全隔离的特性。Sledge 这一套方案,日常的语言(C、C++、Rust...)通过编译器生成 LLVM IR,然后 LLVM 后端再生成 WASM,然后就可以支持各种编程语言在边缘计算的场景的应用。 通过实现类似 goroutine 的在语言层面的并发,相比于依赖操作系统的 fork + exec + wait 模型,可以做到更低的冷启动(cold start)时间。 视频链接:技术分享:Sledge: Serverless + WASM Runtime (吴怡恒) - YouTube 提到的相关的论文如下,视频基本是介绍了论文的内容。 [PDF] Challenges and Opportunities for Efficient Serverless Computing at the Edge | Semantic Scholar (PDF: srds19awsm.pdf) Sledge: a Serverless-first, Light-weight Wasm Runtime for the Edge-3mm Everything Old is New Again: Binary Security of WebAssembly | USENIX 感觉很有意思,大概是 Web 方向值得深入研究的地方,特别是现在 Web 网站流行的 JAMStack 也特别依赖边缘计算去做服务端渲染的场景。
0x0001 Sledge 主要还是论文实验性质,生产环境角度发现现在有了个 WasmEdge 的项目在做这个领域,目前作为云原生基金会的 沙箱项目 得到社区支持。 通过这套方案 C、Go、Rust 等编译型语言直接编译成 Wasm;JavaScript 则通过编译成 wasm 的 QuickJS 来运行。