1
thet 289 天前
目前接口太少了,只能做一些 demo
|
2
flyqie 288 天前 via Android
能科普下 wasm 在 k8s 上的作用吗?
对 wasm 的用途理解还局限在浏览器上。 |
3
mightybruce OP @flyqie wasm 通过 wasm 运行时 运行在各种操作系统上,wasm 运行时 比 容器运行时资源消耗更少,wasi 是用来让 wasm 和 操作系统交互的各种接口调用
k8s 运行 wasm 有两者方法 一种是兼容 Wasm 的组件替换本机 Linux 容器运行时, 使用 krustlet 代替 kubelet , ( krustlet 目前停止更新) 另一种解决方案是使用带有 Wasm 运行时的基本镜像,并手动调用编译后的二进制文件, 这种依然是依靠容器运行。 目前流行的几种 wasm 运行时 Wasmtime ( Rust ,JIT )、WAVM ( C/C++,JIT )、Wasmer ( Rust ,JIT )、Wasm3 ( C ,解释型)、WAMR (C, 解释型)。 go 编译器 以及 tinygo 都支持编译为 wasm 指令集架构的文件 |
4
mightybruce OP 在 Web 上,WebAssembly 使用浏览器提供的现有 API 。WebAssembly 系统接口( WASI )的创建填补了 WebAssembly 和运行在浏览器外部的系统之间的空白。这使非浏览器系统能够利用 WebAssembly 的可移植性,使 WASI 成为在分发时具有可移植性和在运行负载时具有隔离性的良好选择。
|
5
qq135449773 288 天前
正好最近也在研究关于 wasm 替代容器化技术这块的内容。
但我翻了下 wasmer ,感觉还是没太理解这东西到底怎么能替代 docker ? 比如我想去在服务器上运行 Java ,那么按照 docker 的思想,我应该先去写一个 Dockerfile ,去完成编译打包优化镜像体积,然后分发镜像到服务器上,因为 docker 容器内部就是一个比较完整的 linux 环境,一切都很好去理解。 但是 wasm 方案如果想这么用的话应该怎么做?如何把我的 Java 项目打包成为 wasm 格式? 依照官网给的信息还是没太理解这个用法。 |
6
mightybruce OP @qq135449773 如果是基于 java 来做, 就不要研究了,java 社区对这个关注不高,远远没有成熟度。
wasi 目前支持的比较好的是 rust ,其次是 c++ 和 go 。 容器的资源隔离 wasi 是可以做到的。 |
7
qq135449773 288 天前
@mightybruce #6 那么这三个语言,哪个都能直接编译到对应平台的二进制上,除了放在浏览器里为什么还需要 wasm 呢
|
8
mightybruce OP |
9
ExplodingFKL 255 天前
跑 JIT / 解释最后也会变得和 JVM / V8 一样 ...
|