Docker meets Unikernels!
Docker was founded by Solomon Hykes in 2010. Docker is an open-source engine, launched and maintained by dotCloud, that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere. Docker is actually about creating, deploying, and running applications by using containers.
Containers allows a developer to combine all required things in a single package, and using containers, a developer can deploy that package to any other linux based device regardless of any pre-settings on that machine. Because of these containers, a developer can use its customized package on any virtual machine.
Now, Docker has acquired Unikernels! By adding Unikernels to its platform, Docker has expanded and able to provide more more options for packaging code which concatenates a plunge of Mobility with this engine.
The cornerstone of Unikernel is to strip down the operating system into smallest possible chunks like threads which are specifically created to handle only one process in the application. This approach supports deep knowledge of specific parts of linux and combine them together in a single build that will be easy to move between different teams in an enterprise.
For example: while building an application, we can we can assign each little part of operating system a separate thread.
The approach is quite similar to plain vanilla Linux containers, but with Unikernels, it will give Docker the chance to extend another packaging and transport option to developers using its tools and formatting system.
Containers are one type of standard and highly mobile packaging that developers have quickly adopted. Unikernels are an additional kind that they may use “if they want to continue the specialization” of their code output, said Anil Madhavapeddy, the former CTO of Unikernel Systems, who is now with Docker.
Difference between Traditional Linux Containers and Unikernel
- Approach: Linux containers packages some common parts of the operating system, and the remaining part which may vary from user to user, depends upon the host’s linux kernel. On the other hand, Unikernel approach is to assign specific part of the operating system needed by the application and then combine it into a single package.
- Functionality: Linux is a multi-purpose, multi-tasking and multi-user operating, it means it can do multiple service and handle multiple users at a time. Unikernel concentrates on the proper working of a single service in the application.
- Design: A Unikernel system is light-weight by design, however, standard linux operating system are bulkier.
- Security: Unikernel system doesn’t include unnecessary code, the attack area within an application is comparatively very small, which minimizes the security risk.
Now Docker, through the acquisition, is trying to bring unikernels to a broader developer realm. “We’re democratizing the technology already used by network and storage vendors,” said Messina.
Docker with Unikernels
Linux Containers supported the developers to move swiftly towards microservices and providing services to different Containers within an application. Containers had brought Independence within the system, and each container can solely modified when there’s any requirement. However, Unikernel will be self-containment within an application, and now is the time to use containers over a single OS to improve the productivity and better usage of resources.
Docker’s price for acquiring Unikernel was not disclosed. The deal was closed at the end of 2015, and all 13 of its staff members became part of Docker.
“Expect the Docker platform to be much more aggressive in solving problems lower in the stack,” Hykes said. “[This acquisition] gives us a lot more firepower to solve these problems.”
There much more left to be done with Unikernels and we hope that it gets as popular as the traditional linux containers.