Linux containers, Docker, Flocker vs. server virtualization

In the past if your goal was to isolate applications (from a memory, disk I/O, network I/O resource and security perspective) on a physical server you had one choice – run your application over a guest OS over a hypervisor. Each VM had a unique guest OS on top of which you had binaries/libraries and on top of these your applications. The flip side of this solution is that if you ran 50 applications on a physical server you needed 50 VMs over the hypervisor with 50 instances of guest OS. Fortunately for developers, Linux containers had a recent resurgence and offer you another alternative. If you are an application developer and want to package your source code in Linux containers with the goal of being able to run it on any bare metal server or on any cloud provider, Docker (a startup with less than 50 employees) offers you a way to make a Linux container easy to create and manage.

Benefits of Docker container technology:

No need for many different guest operating systems on the same server. Instead you run a Docker engine over a Linux kernel (v3.8 or higher) on a 64-bit server and run your apps on binaries/libraries running over the Docker engine. This allows you to do away with the relatively expensive VMware licensing per server.

This is ideally suited for apps that are stateless and do not write data to a file system. At a high level, Docker containers make it easy to package and deploy applications over Linux. Think of a container as a virtual sandbox which relies on the Linux OS on the host server without the need for a guest OS. When an application moves from a container in host A to a container in host B the only requirement is that both hosts must have the same version of the Linux kernel.

You may ask, how do containers differ from virtual machines? Containers and virtual machines (VM) both isolate workloads on a shared host. Some would argue that containers don’t provide the levels of security one could have with using a VM. VMs also allow you to run a Windows app on a Linux kernel something which is not possible with Docker containers. Container technology is actively used by Google so much so that Google released Kubernetes into the open source community to help manage containers.

Rather than follow the model of the taxi industry which bitterly attacked ride sharing startup Uber, VMware is taking the high ground and embracing Linux containers and its proponent Docker – perhaps recalling Nietzsche’s words “That which does not kill us makes us stronger.”

You may wonder – why aren’t enterprises embracing containers and Docker? One issue with Linux containers is that if your application in the container needs access to data, the database hosting that data has to be housed elsewhere. This means the enterprise has to manage two silos – the container itself and the database for the container. This problem could be solved by giving every application running in a container its very own data volume where the database could be housed. ClusterHQ, an innovative startup offers “Flocker” – a free and open source volume and container manager for Docker which aims to make data volumes in Direct Attached Storage (DAS) portable. ClusterHQ’s future roadmap includes continuous replication, container migration and Distributed Resource Scheduler (DRS) like services – which sound eerily similar to the capabilities offered by VMware vMotion or DRS – causing VMware to put the brakes on an all-out embrace of the Docker ecosystem. Perhaps VMware strategists recalled Billy Livesay’s song “Love can go only so far”