One of the products that has really captured attention recently is Docker, an open source project that packs, deploys, moves and runs applications within lightweight containers. While containerization is a well established approach towards application deployment, in a cloudy world it takes on a new life as an excellent technical approach to allow for easy application portability. Docker has really captured the attention of the community – it has grown rapidly and its impact is being seen across devops, PaaS and hybrid cloud environments. Five months after launching, Docker has been downloaded over 90,000 times, has received over 5,500 Github stars, and is receiving contributions from more than 150 community developers. In terms of actual usage, over 13,000 “Dockerized” applications are now available at the Docker public index.
That adoption looks set to accelerate even more with the announcement today that Red Hat and Docker parent company dotCloud have announced a technical collaboration that aims to combine the portability capabilities of Docker alongside Red Hat’s enterprise PaaS, OpenShift. OpenShift itself is built on top of Red Hat Enterprise Linux and already offers Linux Container-based multi-tenancy via Red Hat Enterprise Linux Gears. OpenShift supports a bunch of different languages and frameworks alongside various databases and associated peripheral services.
Both Docker and OpenShift share some basic architectural approaches – Linux kernel namespaces and resource management with Control Groups (cGroups). That commonality makes a partnership logical and specific initiaitves that the two will work on include:
- Packaging Docker for the Fedora Project, a Red Hat sponsored and community-supported open source collaboration. Red Hat and dotCloud are collaborating with members of the Fedora Project community to package Docker for Fedora, making Docker available for all Fedora users with upcoming releases, and also providing the initial packaging work that will ultimately enable Docker to more easily build and deploy on Red Hat Enterprise Linux.
- Collaboration on filesystem dependencies, specifically designed to remove Docker’s dependency on UnionFS filesystems to meet mission-critical requirements from enterprise customers. Together, Red Hat and dotCloud have developed a new approach to provisioning based on the device-mapper thin provisioning technology included in Fedora, Red Hat Enterprise Linux, and other distributions. This approach provides the same elegant user experience in a way that is more compatible with upstream kernel versions.
- Collaboration on container provisioning, resulting in Red Hat’s work to enable libvirt, the open source virtualization API project, as an option for creating containers within Docker, bringing enterprise-grade networking capabilities along with it. This approach will enable users to take full advantage of the robust networking capabilities of libvirt while maintaining the user experience of Docker provisioning.
- Collaboration on OpenShift to integrate Docker with OpenShift’s cartridge model for application orchestration. This integration will combine the power of Docker containers with OpenShift’s ability to describe and manage multi-container applications, enabling customers to build more sophisticated applications with enhanced portability.
First things first, the combination of a container product alongside PaaS is totally logical. As I discussed with Bechtel’s Christian Reilly recently, enterprises have a multitude of existing applications that they’re wishing to “cloudify” having to rewrite or re-architect those applications simply isn’t a viable proposition. A containerization approach lets enterprises “wrap” the entire application stack in a container that encapsulates all the discrete components the application needs to run, it is then a relatively simple operation to forklift the complete container from one environment to another.
But simply moving the application doesn’t provide the automation benefits that PaaS can bring – auto-scaling, load balancing and the like allow enterprises’ IT teams to have a relatively hands-off approach to operations – that’s the very value of PaaS and the reasons that many of us believe that PaaS will grow significantly in terms of enterprise adoption in the coming years. Put containerization together with PaaS and you have a compelling proposition.
I discussed this announcement with Luke Marsden, founder and CEO of HybridCluster (disclosure – I’m an adviser and investor) a company that is a one-stop-shop for a containerized, auto-scaling platform. HybridCluster is making it easy for traditional hosting companies to differentiate their product and sell new higher-value products. It aims to replace storage, hypervisor and the infrastructure control panel with something fundamentally different. In commenting on this news, Marsden supported the move and sees it as a validation of the containerization approach towards modern infrastructure. He did have some comments around the lack of containers on resilient distributed storage or container-based live migration – two areas in particular that HybridCluster sees as a point of differentiation for itself (for more see an in-depth interview with Marsden here).
This announcement is an excellent piece of news for anyone wrangling existing applications on legacy enterprise infrastructure – it gives these people some options to drive efficiency, reduce costs and improve their own focus – that’s a very positive developments – I’m looking forward to seeing the commercial success that Red Hat and Docker see.