The Age of Containers
With Docker leading the charge with its partnership with Microsoft, it's time for IT to seriously plan for containers in the enterprise.
If you've been... well, anywhere on the Internet, basically, or in the pages of this magazine or its Web site, you know that containers are the hot new thing. Docker, in particular, is what all the cool kids are doing these days. So what's it mean to an IT pro?
First, containerization is basically just a more efficient, higher-density way of doing virtualization. Docker -- and other tools like it -- makes use of a design element of the Linux kernel that lets the host OS isolate the application view of the environment, essentially creating sandboxes rather than emulating the hardware of a real machine. Removing that emulation massively improves efficiency of the host, not unlike the library OS projects (such as Microsoft Drawbridge) that I've written about in the past.
Here's a brief and oversimplified glance at Docker, beginning with the fact that it can't run Windows natively. What Docker can do is run a lightweight virtual machine (VM) inside a container, and then run Windows inside the VM. Similarly, Docker itself can't run natively on Windows, and must run in a VM. To sum that up, Docker is wholly a Linux thing unless you're dragging VMs into it, which partially defeats its purpose. What remains neat about Docker is that many applications have been "Dockerized," so you can plug and play those applications in a container. In fact, from that perspective Docker is vaguely like Redmond's own App-V technology. The focus is on applications rather than on the OS.
In late 2014, Microsoft announced plans to change some of those facts, and that's why Microsoft IT decision makers need to be paying attention to this space. Microsoft and Docker jointly announced the Docker engine would be open sourced, and that development of a native Windows Server-based Docker engine would commence. Microsoft committed to making the necessary OS- and kernel-level changes so that Docker needn't be a Linux-only thing.
But let's take Docker off the table for a moment and just discuss containers. Microsoft isn't new to containers with App-V as one example as noted. The goal of a container is to run applications in complete isolation from each other, such that the application is only minimally aware of its host OS, host hardware and so on. Like VMs, applications in a container can be migrated between hosts to provide load balancing, availability and so on. With the greater density offered by containers over traditional VMs, this is poised to be a big market. Huge. Like, "replace many of your hypervisor hosts with container hosts" huge, and just as transformative as server virtualization originally was.
With all that potential on the horizon, everyone is getting their hands into it. Microsoft is playing with Docker. Parallels has actually been in this space on Windows, forever. VMware has ThinApp. Microsoft has had App-V for a while now, including a server-specific variant. So this is a space under major development, with massive exploitation still ahead of us -- but when this goes big, it'll go big quickly.
Now, some reality. One of the problems Docker in particular solves is the hodgepodge of the Linux universe. An application developer never knows what distro an app will end up running on, what package prerequisites will be available, or even what package manager will be available. Docker helps abstract all that by making the entire container a predictable mini-OS. The mishmash of the Linux world isn't as much of a problem on Windows, where you only have one distribution of any given version. That's one reason why Docker-like containers on Windows -- which, again, have existed in the form of Parallels for a long time -- haven't skyrocketed.
But don't let that reality check be your excuse to ignore containerization -- although the eventual heavy hitter in the space may not end up being Docker. As datacenters focus more and more on app delivery and less on servers, per se, containerization is going to provide better density and better manageability. You're going to be doing this in your datacenter at some point, so it's worth keeping on top of this rapidly developing new paradigm.
About the Author
Don Jones is a multiple-year recipient of Microsoft’s MVP Award, and is an Author Evangelist for video training company Pluralsight. He’s the President of PowerShell.org, and specializes in the Microsoft business technology platform. Follow Don on Twitter at @ConcentratedDon.