VMware vSphere is a Type 1 hypervisor that allows one to run multiple instances of entire operating systems and their application stacks on one server. Docker is a container that allows one to put all of the things that an application needs into it, run that container on any version of Linux, and run multiple different containers in one instance of a Linux OS.
So, at first blush VMware vSphere and Docker are competitive. They both allow you to run multiple instances of both similar and different applications on one physical server. This speaks to the server consolidation value proposition of vSphere, which is what fueled the original success of VMware. Google’s comment at Gigaom Structure indicating that it uses containers and not a hypervisor has fueled a number of comparisons of the density that can be achieved with Docker vs. with vSphere. Most of the comparisons focus on the fact that Docker does not require more than one copy of the OS to be run and therefore has an inherent efficiency and resource utilization advantage. There may or may not be an advantage with respect to vSphere, since vSphere has transparent page sharing, which allows for one copy of a code page to be loaded in memory if that same page is reused across multiple guests. Therefore, with vSphere, one does not have to allocate memory for each operating system in each guest, as most of the operating system comprises code pages that can be shared across guests.
Comparing Docker and VMware vSphere
However, as is almost always the case, what seems to be the situation at first blush is not really how it is. There are important differences between Docker and VMware vSphere that need to be recognized and that affect how each should be used:
- Docker is today a Linux-only solution. VMware supports various distributions and versions of Linux and various versions of Windows. More than fifty million VMware virtual machines are in use today, and 90% of them run Windows. Therefore, as long as Docker is a Linux-only solution, it pertains to only a tiny fraction of the VMware customer and installed base.
- At the Velocity conference last week, the presenter from Docker alluded to its support of additional operating systems in the future. Windows is such an obvious choice as the next OS for Docker to support that we should simply assume that Windows support is forthcoming.
- If Windows support materializes, it will give rise to debate about whether Docker is a replacement for vSphere (and other hypervisors) or whether it is a new and superior way to deploy and manage applications within a virtual machine. VMware would clearly prefer the latter. The intentions and desires of Docker are unknown on this front.
- However, even once Docker supports Windows, it is still missing huge chunks of functionality that make VMware vSphere the market-leading data center management suite that it is today.
- The single biggest missing chunk of functionality is vMotion and all that it enables on the vSphere platform. vMotion enables DRS, vSphere’s ability to automatically move workloads in order to balance resource utilization across hosts. vMotion enables HA, which allows vSphere to move workloads before a host dies or, if it in fact dies, to quickly start new ones in a remaining host. vMotion enables Site Recovery Manager, VMware’s offering giving customers the ability to withstand the failure of entire data centers. vMotion is a crucial capability for stateful applications, and stateful Windows applications constitute the majority of what is running in those forty-five million Windows virtual machines.
Thus, in order for Docker to compete with vSphere, Docker has to implement both Windows and “dMotion.” Then, Docker has to build all of the management functions that are needed to manage the operation of stateful workloads in an enterprise data center. Would Docker do such a thing? It seems unlikely, since this would prove to be an exercise in addressing the needs of a legacy installed base of applications instead of addressing the needs of new stateless application deployment in the cloud.
If Docker does not replicate all of the things that vSphere has to manage stateful legacy applications, this means two things for VMware. First, a potentially disruptive competitor is removed from the scene. But far more importantly, much of the management infrastructure that makes VMware so great at managing stateful applications in enterprise data centers is not really needed for new stateless applications in the cloud. In the end, this could turn out to be an even bigger problem for VMware than direct competition by Docker would have been.
Docker and VMware vSphere both allow the running of multiple applications on one physical server. However, the similarities end there. Docker is more likely to focus on meeting the emerging needs of the DevOps community than to go back and build all of the data center management pieces that make VMware the market-leading data center management platform.