Aurae: Distributed Runtime
A new node init system written in Rust
- Track: Rust devroom
- Room: H.1302 (Depage)
- Day: Saturday
- Start: 12:00
- End: 12:40
- Video only: h1302_depage
- Chat: Join the conversation!
In this talk I share the motivation, goals, and architecture of my new project Aurae. Informed by my experience of operating large production platforms I discuss my thesis of how bringing deliberate runtime controls to a node will unlock a new generation of higher order distributed systems.
The audience walks away with an in-depth understanding of the current state of affairs Rust and the Aurae runtime project. We learn about my journey to Rust from working with Go in Kubernetes.
I am an accomplished Go engineer who has made the jump into Rust and I believe my story is worth compiling and sharing with FOSDEM. I believe there will be many like me in the future.
Aurae is on a mission to be the most loved and effective way of managing workloads on a single piece of hardware. My hope is that by bringing a better set of controls to a node, I can unlock brilliant higher order distributed systems in the future.
Aurae takes ownership of all runtime processes on a single piece of hardware like systemd, and provides mTLS encrypted gRPC APIs (Aurae Standard Library) to manage the processes. Aurae has a new style of isolation called "Aurae Cells" that manage cgroups and namespaces directly from pid1. With Aurae Cells the project offers a way to slice up a system using various isolation strategies for enterprise workloads including MicroVMs.
Learn about 3 specific parts of the project and how they influenced the decision to move to Rust.
- Managing cgroups (v1/v2) directly with Rust, and how kata containers and systemd influenced the container runtime module.
- mTLS encrypted gRPC with tonic and rustls. Learn why I have given up on OpenSSL and where rustls is working well and not so well for us.
- Serving ephemeral short lived microVMs with Aurae, and how we "spawn" a new host and kernel into a microVM that shares properties with the parent instance of Aurae.
I talk about my journey to Rust from Go and why I believe it is necessary to reimagine parts of Kubernetes in Rust.
Speakers
Kris Nóva |