This article is a product of a couple of things, the first part comes from research I gathered during a masters course on Leading Change and Innovation and the second part is just my nerdy interest in computer technology, in particular VMware virtualization and Unix/Linux.
Trip down virtual memory lane
How quickly we forget what an undertaking this was to do for VMware’s founders. Sure virtualization had been around before, but only for mainframe systems and no one ever thought or even asked for virtualization for the cheaper x86 platforms. In the late 90s, PCs were manufactured by many different vendors, with different components. The task of virtualizing x86 was a complex problem and took a lot of work, and by 1999 we were introduced to VMware Workstation.
I remember, it was like magic and we were in awe of of VMware’s innovations with Workstation. It was novel and both system administrators and developers geeked out on what they could do with the the hosted system. I learned their VI3 (Virtual Infrastructure 3) technology in 2007 and lost my mind over it. vMotion was just about the sexiest thing I'd ever seen and I am happy to have been able to learn vmfs and the intracacies of virtual machine files and how everything worked across ESX hosts. It was a beautiful thing to me.
This is all ancient history today and virtualization for x86 is considered a commodity. There are tons of open source and hyper converged solutions, which is great for IT admins when it comes to cutting costs and designing a solution that takes the best of all these products. I got to witness one of our Enterprise customers proudly demo the performance increase he got by combining ESXi and Openstack into the same hyper-converged solution when I was still working at VMware. It was great to see how far things have come.
Virtualization has made a lot of cloud solutions possible, however, cloud service providers have been struggling with meeting the demand for resources and management in their offerings. One such PaaS (Platform as a Service) named dotCloud was no stranger to this customer demand and came up with an ingenious way to allow its customers to deliver applications and is now responsible for creating a solution based on LXC (Linux Containers).
dotCloud realized that its customers wanted choices and didn’t want to be bound to one stack, and had several different languages and operating systems that they wanted to be able to run and deploy applications to. It was unrealistic to think it could have such an all encompassing PaaS solution, so dotCloud explored a way to enable the environment of “choice” for its customers.
Docker is Born
have been around since 2003, and it had obscure languages and components that a user had to learn to get them to work. The concept of a container is marvelous though. When I read about LXC in my research I once again felt that magical excitement that VMware’s x86 virtualization technology gave me.
The concept is much like a virtual machine, but really reminded me of Solaris Zones, which was Sun’s version of a container. Using containers grants you the ability to separate applications’ run space from each other but you only need one kernel. This is possible through the use of Linux kernel namespaces, cgroups (chroots), seccomp policies, and profiles, etc. Are the hairs standing up on your neck yet?
dotCloud innovated containers
by taking the complexity of using them away, just like Linux innovated the SunOS kernel back in the day for x86, surpassing Unix in popularity with sysadmins. dotCloud knew it had achieved something amazing with their Docker containers. It gave their users what they wanted: better performance and the ability to easily install and develop applications in a container, then easily deploy to test environments and on to production, as long as you have the Docker engine present to receive and send containers.
Docker has a huge repository hub
of open source projects and APIs from all kinds of developers and in the past year large companies are “docking” on to the band wagon (Google, VMware and Microsoft just to name a few of the big ones) by introducing support for Docker containers. In late 2013 dotCloud changed its name to Docker, and has moved away from the PaaS (Platform as a Service) business to focus on its open source Docker container technology.
It’s pretty exciting, and even got me to try to test drive it, even though I’m not a developer; I just wanted to do some baby tests and feel a little nerdy. I checked to see if anyone had tried using Docker in VMware Fusion
and sure enough I found a blog mapping several ways to go. I selected Ubuntu and am in the process of getting my mini-docker environment running. I doubt I’ll get very far but we’ll see. All I know is this really made me want to geek out again, just like Solaris was my first Unix command line fascination (I was in awe of untarring a file in college and the rest is history), then VMware VI3 magic.