It’s arguable that we are entering an age of open cloud infrastructure and application portability. Docker is a symbol of this reality. It is built as open source by a community of contributors and users. But Docker is also a reminder that there is no single defining technology that supersedes them all. Docker needs a lot of support, just as any other important open source technology needs a supporting ecosystem in its early days.
Docker is the shell, hermetically sealing an app into a container that runs on Linux. But to make it flexible and useful, Docker needs to work across several hosts and be portable to any cloud environment.
The need for deeper Docker support is evident in new open-source projects such as Clocker, developed by Cloudsoft. Clocker creates Docker clouds that are orchestrated through Brooklyn, an Apache incubator project, which monitors and manages the Docker containers. Clocker is an open platform designed to manage distributed applications running on Docker hosts. Brooklyn serves as the central nervous system, managing the apps that run in the Docker containers. According to the Cloudsoft blog, the management is through application blueprints, which can be moved between clouds. The blueprints treat the Docker infrastructure as though it is a homogeneous set of virtual machines in a single location. This “Docker Cloud” can make intelligent decisions about container provisioning and placement to maximize resource usage and performance.
Clocker moves Docker from a single- to a multi-host capability, allowing any public or private cloud to be used as the underlying infrastructure. It means a DevOps engineer or systems administrator can use Clocker with Brooklyn to conduct, in addition, intelligent container placement, which in turn Cloudsoft executives maintain provides resilience, fault tolerance, scaling, optimized resource utilization of hosts and application performance. It further allows deployment of existing Brooklyn/CAMP (Cloud Application Management for Platforms) blueprints to Docker locations, without modification.
According to Cloudsoft, “Brooklyn uses Apache jclouds, a cloud API agnostic library, to provision and configure secure communications (SSH) with cloud virtual machines. The Docker architecture provides ‘containers’ on ‘host’ machines. Brooklyn provisions cloud machines using jclouds and uses them as Docker hosts.”
Cloudsoft has a pretty detailed post about the way Clocker works. It explains how to start a Docker Cloud using Clocker and Brooklyn. It discusses how Brooklyn uses a Dockerfile to make an SSH server available in each Docker container and how that container can be treated like any other virtual machine. It also explains how Brooklyn receives sensor data from the Docker Cloud to make changes to the app, the Docker host, the container and the software pieces that make up the app.
This is just one example of how Docker will increasingly need third-party services to offer the full functionality that Docker promises. Later this week, we’ll look at orchestration, a defining capability and potential differentiator for Docker third-party providers.
Since we published this story, Cloudsoft has become a sponsor of The New Stack.