At VMworld we spoke with Docker, an open software platform designed to simplify the building, shipping and running of distributed applications. Similar to the way VMware virtualizes the hardware, Docker essentially virtualizes the operating system. This results in greater standardization of the infrastructure, improved isolation of the application and a more efficient development process.
Condense Software Stack
By sharing the hardware resources like CPU, memory, networking etc., server virtualization products like VMware have consolidated compute hardware and greatly simplified the data center. Docker uses this same concept to allow applications to share kernel functions, binaries and libraries, without actually running a separate OS. This essentially enables the software stack to be condensed, the way VMware did to hardware. The only stipulation is that the platform must run on a modern Linux distribution. The company says Windows is on the roadmap.
Applications used to be monolithic and deployed to a handful of nodes, with a complex software stack supporting each application. This complexity often caused applications to break when they were moved between steps in the development process, such as from development to test or from QA to production. Now applications are distributed and deployed on 1000s of nodes, making this complexity an impediment to a faster, more efficient application development.
Taking its name from a cargo shipping analogy, Docker creates standardized containers that hold applications, like the intermodal containers used in the shipping industry. Each container can be easily moved between hardware platforms running the Docker engine, without impacting the application, eliminating the need to create complex software stacks on each platform.
The result is dramatically less complexity and a standardization of the entire software stack. This produces a reduction in cycle times and an improvement in the entire development process. It also improves isolation of the application, keeping apps developers from getting involved in kernel level issues.
The system also includes the Docker Hub, a collection of cloud-based platform services for distributed applications. The Hub simplifies movement of apps through the stages of development and further improves cycle times. According to the company there are currently over 30,000 applications that have been developed for the Docker platform.
VMware revolutionized the data center by consolidating compute hardware. It virtualized resources allowing better asset utilization and better infrastructure flexibility. Docker has taken this concept to the next level. It virtualizes the OS and standardizes the infrastructure so that application containers can interoperate with any hardware running the Docker platform. This increases resource efficiency but also makes applications truly portable, improving the interactions between developers, testing and IT departments, and minimizing development times.