Docker Looks to Extend Container Reach with Unikernel Systems Acquisition
Looking to forge better integration between container-based software and hardware infrastructure, Docker today said it has acquired Unikernel Systems, a Cambridge, U.K.-based company run by the original developers of the Xen open source hypervisor project. Docker acquired the company because it believes unikernels will be an important technology to enable more intelligent applications capable of automatically tying to the source code within datacenter and cloud infrastructure as well as endpoint devices used in sensors in Internet of Things-type scenarios.
Docker isn't revealing terms of the deal, which closed last month, but said
all 13 employees of the company are now part of Docker including Anil
Madhavapeddy, CTO of Unikernel Systems and a key architect for the
Xen Project.
In an interview Madhavapeddy explained why unikernels are critical to advance the use of Docker containers and so-called micro services. While the Docker container API aims to provide a way for developers to build and ship applications that can run in any operating system, virtual machine or cloud environment, he explained unikernels are microcode within hardware (i.e. routers, IoT sensors and other infrastructure), that can compile the source code into a custom library OS that provides only the functionality required by the application or system login. Initially Docker sees unikernels becoming more widely added at the firmware layer of hardware to enable software-defined intelligence in a small but scalable footprint.
"The other goal is for the platform you are deploying on should never be a lock-in for the developer," he said. "So
unikernels provide a lot more flexibility when it comes to building and orchestrating some of these hybrid micro services that are becoming dominant in the ways we're building these applications."
Many hardware manufactures are already using Docker to build more software-defined intelligence into their network equipment, storage gear and IoT devices, said David Messina, Docker's vice president of marketing, though he declined to name any specific suppliers. The firmware within these hardware subsystems can only accommodate microcode, which is what
unikernels are, according to Messina. "It would just be additive," he said.
Madhavapeddy said developers who need maximum flexibility and resource multiplexing are starting to use the container model. "The Docker APIs are now also being adapted to support the levels of isolation and specialization that result in
unikernels," he added. "So if you're building these hyper-specialized applications that run directly against the hypervisor, it's entirely possible. The hypervisor doesn't have to be Xen it can be Hyper-V for example. We are working on support for this and it fits very well into the Windows model of hybrid Hyper-V or native containers that will come in Windows Server 2016."
Any hypervisor or hardware layer can be supported by adding a library to the
unikernel library suite, according to Madhavapeddy. So the idea is that the virtual hardware is just exposed as part of the Unikernel suite and you just link in the right one at build time," he explained. "You just tell it that you want to build a VMware-specialized
unikernel or a Xen-specialized one on EC2 or Hyper-V, and the results will be output according to the developer."
Messina said adding the Unikernel Systems team will address a key need to facilitate more applications aware, or software-defined infrastructure. Unikernels today are at the state of maturity containers were a few years ago, he said.
"The Unikernel Systems team just brings a lot of expertise in the low-level plumbing and infrastructure required for Docker to be deployed just universally across the cloud," Messina said, adding it will enable interaction with Internet of Things-based hardware and applications. "The idea is we have about a billion virtual machines on Amazon running Xen and the next trillion will probably be embedded devices running on very, very low power systems all over the physical world. We're incredibly excited that the technology can extend Docker's reach into systems that can not actually run Linux or any general purpose operating system in very tiny device. So this is truly going to become a universal Docker API for developers to base their applications on."
While Unikernel's efforts initially will be infrastructure focused, the goal is to allow the business logic within the application developers are compiling to become accessible, Madhavapeddy said. "So once we cross the chasm and move the infrastructure, just because we're accessible, I see no reason why every developer, coding in F# or C# shouldn't be able to gain the same benefits as well."
While unikernels will give Docker-based containers and micro services intelligent, software-defined infrastructure, it should be at a low level, Madhavapeddy said. "Our goal is that
unikernels are invisible -- developers should never know they're using them," he said. "They will just become another option in the build pipeline whenever a system is being constructed. So if they never hear about it we've been successful."
Posted by Jeffrey Schwartz on 01/21/2016 at 2:27 PM