What’s Unikraft?
Unikraft is the company behind the next-generation cloud compute platform KraftCloud, leveraging unikernel technology to provide millisecond cold boots, scale to 0 and autoscale so you never have to pay for idle again.
Dive deeper into the Unikraft world. If you feel a question is missing, please contact us at support@unikraft.io and we'll add it.
Unikraft is the company behind the next-generation cloud compute platform KraftCloud, leveraging unikernel technology to provide millisecond cold boots, scale to 0 and autoscale so you never have to pay for idle again.
Yes, as part of our Unikraft Cloud Enterprise offering. a dedicated platform for enterprises that can be deployed cloud-prem or on-prem, either self-managed or managed by us.
A unikernel is an extremely specialized virtual machine. Imagine being able to have, for each target application, a distro and kernel that contain only the code the target app needs, and nothing more — all of it built at compile time, before you deploy. If an app doesn’t need a line of code to run, it doesn’t get deployed. And then to have this packaged as any other virtual machine, with strong, hardware-level isolation. In fact, Unikraft unikernels are packaged as OCI images
They need not be! Unikraft unikernels are proof that you can have the strong, hardware-level isolation that is the workhorse of public cloud deployments, combined with the lightweight characteristics of containers or processes (e.g., millisecond cold boot times).
The answer depends on the application of course, but with Unikraft we can confidently say that most (up to ~90%) of an image’s size is due to the application itself. For example, an NGINX Unikraft image is under 2MBs in size.
When you deploy a container on the public cloud, it gets deployed it on top of a virtual machine in order to have strong, harwdware-level isolation. The container thus adds yet another layer of overhead between your app and the hardware. Instead, at Unikraft we use Dockerfiles at build time to create the filesystem, but then use a lean unikernel to get the best efficiency at deploy time.
Yes, especially stemming from the fact that they have a minimal Trusted Computing Base (TCB), and everything is off by default (services, ports, etc).
Definitely. Every instance on KraftCloud has a private IP and DNS name so you can easily plug instances together. Follow this guide for instructions.
You’ll need a Dockerfile and Kraftfile. See any of the apps/langs guides (here)[https://docs.kraft.cloud/guides/] to see examples.
kraft
is KrafCloud’s CLI tool, written in Go. You can control KraftCloud (or Unikraft Cloud Enterprise) with it as well as build unikernels and try things out locally.
Unikraft mimics the Linux API so that applications and languages can run, unmodified, on Unikraft. One common concern sometimes leveled at unikernels is that debugging them is hard: Unikraft comes with a full gdb server, tracing and other debugging facilities so that debugging in Unikraft is no different than doing so on a Linux environment (see here). In terms of observability, Unikraft comes with a Prometheus library through which a Unikraft unikernel can export stats to Grafana boards.
Magic 🪄 Just kidding, it’s the combination of using Unikraft unikernels to run workloads, a custom node ingress controller which can be reactive in milliseconds and scale to 1000s of instances, and various other optimizations to the underlying host. Simply add -0
to your deploy command, and when traffic dies your app will stop, consume no resources, and get charged $0. When the next request from your user comes, the instance will wake, in milliseconds, and reply — with your user being none the wiser.
By definition, meaning starting an instance up from zero, yes, we have cold boots. However, by cold boot people generally mean a slow cold boot: seconds or minutes. On KraftCloud, cold boot times are measured in milliseconds.
By leveraging very fast cold boot times, and by coupling that with a very reactive and scalable controller and proxy infrastructure. Autoscale like you’ve never seen it before.
We’re in closed beta; simply fill out this short signup form to obtain an access token (usually within 24 hours). If you’re interested in an enterprise solution please write to us at sales@unikraft.io or set up a call.
We’ve put great care and effort into providing seamless integration with major tools and frameworks like Docker, Kubernetes, Terraform, and Prometheus/Grafana.
Current cloud stacks and offerings are over-bloated and over-priced. With Unikraft you can be sure that the resources you’re consuming and paying for are going to your app, and your app only. And when you’re app is idle, so is your bill. And for Unikraft Cloud Enterprise, imagine running 1000s of instances with just a couple of servers.
Absolutely! Unikraft can provide cost savings in many ways:
Unikraft OSS allows you to build and run unikernels locally via kraft run
(and even hack the Unikraft OS itself if you like tinkering!). When you’re ready to deploy, switch to kraft cloud deploy
.
Definitely not! We think Docker is great for dev environments and for building images. In fact, we rely on Dockerfiles
to specify the fillesystem of images on KraftCloud. Having said that, when it’s time to deploy, we take the resulting filesystem and put it on a lean unikernel, ready to run with hardware-level isolation and extreme efficiency.
No. WASM provides language-level isolation, whereas Unikraft provides hardware-level. Ultimately when you deploy WASM to the public cloud, in almost all cases there’ll be a VM underneath for isolation (and maybe even a container runtime). We believe that the most efficient way to deploy WASM workloads on the public cloud is on KraftCloud, where the VM (read: the unikernel) itself has only the minimal code needed to run the WASM runtime.
Yes. We support metros/zones within existing hyperscaler infra, and also connectivity to their services. For example, you could run an API server on KraftCloud and connect to S3 as a storage backend. Contact us for more information.
Yes. Head on over to unikraft.org, install the kraft
tool with the one-liner there, and use kraft run
to build, package and run your application locally. When you’re ready to deploy to the cloud, set your KraftCloud token and deploy via kraft cloud deploy
Yes, the kraft tool can run on Mac, Windows or Linux.
We provide full log support for all users. For paying customers we provide access to Prometheus metrics.
No. There are other unikernel projects, though most of them are research ones, unmaintained or single app/language (read: non-POSIX) ones.