4 ms·
The link to containerd Sandbox API was super interesting & helpful. https://github.com/containerd/containerd/issues/4131 https://github.com/containerd/container
by rektide 4y ago
The link to containerd Sandbox API was super interesting & helpful. https://github.com/containerd/containerd/issues/4131 https://github.com/containerd/containerd/issues/4131
Interestingly had a bunch of different Sandboxerd within. Wasm, microvm with common best-in-class tech (Firecracker, Cloud Hypervisor, qemu), & full KVM for unikernel systems (specifically atm a project Quark). runC is shown but not listed as an implementation. I had kind of thought this was specifically for Rust payloads but they just means written in Rust.
I am a bit surprised to hear the wasm model is forking. This system definitely values security & manageability so it shouldn't be surprising I guess. But it still feels like it might entail more loading & re-loading code to spawn than what I think of as wasm's strong point, where a new isolate can be created from a snapshot easily. Maybe the wasm runtime is more primed before forking than i realize, but the way they talk about forking then creating a runtime makes me think this isn't targeting lots of shortived instances.
Performance is exceedingly good versus the industry standard & very well tuned Kata Containers. 360ms Vs 850ms boot. Even better in parallel boots. Huge wins on memory overhead since there's a single manager process instead of per instance shims.
Neat project. I hope we see more of this & others. I'm curious who the team is & what else they are up to. Whoa... Huawei, Agricultural Bank of China, OpenEuler, are among the top listed users.
- abel-von 4y agoIt is very insightful to point out that forking a wasm runtime may not be the best choice, actually this is because we chose the WasmEdge as our first supported wasm runtime, and it do not support redirecting the standard io fds, so we can only fork a new process and redefine the stdin/stdout/stderr to the named pipe. we already submit an issue to WasmEdge community, we may change the fork way to starting directly. For Wasmtime (we will support it later), there is no such constraint, and we will start runtime directly.