Docker Inc. — the company spearheading the containerization trend that’s revolutionizing data centers — today announced its acquisition of a small firm called Unikernel Systems.
You won’t read about this too many other places, so I should explain right up front why this deal may be important to you.
It's About the Cost
What your organization spends each year to maintain its data centers, and to deploy and manage the software that runs on those data centers, depends in very large measure upon the extent of the skills necessary for its people to be qualified and knowledgeable.
When these processes can become automated, your company can spend less.
What’s more, your IT department has the opportunity to be retooled and re-dedicated to missions that are more in alignment with your business goals, rather than the whims and predilections of software vendors.
Consider how much your IT budget could shrink if the operating system upon which your software depends, were no longer an issue — literally, if there were no operating system on that layer of the data center anymore.
What Brought Us Here
Docker, as you may know, produces a deployment system for applications that involves a technology with the unexciting name “containers.”
Since last year, Docker Inc. has made small, smart “acquisitions” (really, more like group hires) of small, open source development firms with a handle on technological ideas with enormous potential, not just for “disruption” but for innovation.
Last March, it bought a firm called SocketPlane, whose key contribution is a radically new concept for orienting networking around workloads rather than machines; and last October, Docker bought Tutum, a group that built a way of deploying workloads as simply as one provisions services on Amazon.
Unikernel Systems has an interest in eliminating operating systems (most often Linux, sometimes Windows Server or some form of it) from virtual machines. An entire, principal component of the way software works — a component that has to be replicated thousands of times when workloads are scaled up and multiplied — would be replaced with something that consumes at least two orders of magnitude less space.
That something is called a unikernel — thus, the company’s name. (If your mind is playing Jerry Goldsmith fanfare here, it’s certainly appropriate.)
A Way to Standardize
The reason operating systems came into existence in the first place was to standardize the way applications communicated with the underlying hardware. An underappreciated genius named Gary Kildall came up with the idea that an operating system should also contain standardized resources that any application can use, so that developers wouldn’t have to reinvent the way their programs wrote data to the disk drive, or sent characters to the display.
(We owe the existence of the modern API industry to Gary Kildall, by the way.)
Ever since Kildall and CP/M, programs have relied on the operating system for all the resources they need to communicate with the computer. When virtualization came along decades later, both applications and their underlying operating systems were moved into virtual machines. Hypervisors took on the task of literally pretending to be the hardware of the computers hosting their operating systems, and for the most part, VMs still work that way today.
Today, all modern data centers utilize some form of virtualization. All cloud dynamics depends on virtualization.
But the operating system has become a redundant part. It now contains countless megabytes of resources that get replicated every time the cloud scales up a workload, even when about four-fifths of those resources are never used or required.
There are perhaps dozens of open source projects dedicated to an architecture that removes this impediment to progress, at least eight of which have attained some degree of prominence. Unikernel Systems is one of them.
Why a Unikernel?
The unikernel architecture takes Kildall’s original idea one step further: decomposing operating systems into libraries.
When Linux-based applications are installed in data centers, they’re rebuilt and recompiled from their source code. (That’s why open source is so important here; it gives implementers permission to adjust this code to improve it for their own purposes, and share the results with others.)
A library construct would enable a compiler, in this instance, to “check out” only the resources the application really needs, and then compile those resources directly into the application. Instead of an app and an OS, you’d have a single unit of code, custom-built for the system (physical or virtual) that runs it: a unikernel.
Theoretically, an orchestration system could manage unikernel programs unto themselves. But Unikernel Systems (whose abbreviation could either be UK or US, neither of which is really a good idea) believes that unikernels could benefit from existing automation tools, especially for continuous integration and continuous deployment (CI/CD), if they were packaged in Docker containers.
The firm’s concept was only demonstrated last November, at a Docker company conference in Barcelona. Now, Docker believes that it can implement unikernels as an option for deploying huge applications at massive scale, without changing the way its existing deployment tools work in any significant fashion.
The way your organization’s applications may be deployed on servers in your data center and in the cloud in the very near future (conceivably this year) may be less dependent upon, or completely independent of, any operating system at all. Not Linux, not Windows, not Unix or FreeBSD... nothing.
For More Information:
- Middleware Becomes Containerized: JBoss Adopts Docker
- What You Need to Know About Containerization
- How the Open Container Project Agreement Affects You