Unikernels may be the next big thing after Docker. Which types of use cases will unikernels support? Keep reading for an overview.
A unikernel is a type of microservices environment that contains absolutely everything required to run a particular piece of software—including not just the software code itself, but also the operating system code necessary to host it. Plus, everything that is not strictly necessary for hosting the app is stripped out of the unikernel.
That means that a unikernel is entirely self-hosted, portable and minimalist. It can run anywhere with virtually no overhead due to the execution of unnecessary code.
Unikernels Use Cases
Why does that matter? Consider the following types of use cases, which unikernels are ideally suited to support:
- Cloud apps. This is probably the most obvious, and currently the most well-developed, use scenario. Rather than relying on virtual machines as the main building block of cloud infrastructure, projects such as OSv and MirageOS aim to make unikernels a primary vehicle for deploying apps on clouds or other distributed environments.
- IoT devices. Internet of Things, or IoT, devices often have few system resources and limited network bandwidth. A unikernel that provides everything needed to deploy the software for an IoT device and nothing more is ideal for this type of environment.
- Software and device drivers. For decades, the drivers required to allow apps to interact with hardware or software systems have been built into the kernel of the operating system that hosts the apps. But unikernels could be used as an alternative by supplying drivers on an as-needed basis inside portable environments, as the Rump Kernels project is doing.
- On-demand computing. Because unikernels have minimal overhead, they can boot very quickly—sometimes in milliseconds. That makes them faster than containers, which usually take at least a few seconds to spin up, and much faster than virtual machines, which can take minutes. This makes them ideal for delivering on-demand computing. They’re not yet being used to power things such as AWS Lambda functions, but in the future, they could be part of such environments.
Moving Unikernels Toward Production
Don’t expect to see unikernels in a production environment near you anytime soon. Better tooling solutions will be needed before they become practical for large-scale deployments. There are also important security challenges to solve.
But the same challenges applied to Docker containers just a few years ago. The fact that they have now been overcome is a sign that unikernels, too, may be in widespread use before you know it.