Deploying Complex Apps with Clocker, the Docker Cloud Maker
At DockerCon Europe, Cloudsoft’s Andrew Kennedy did a demo of Clocker the Docker cloud maker. He showed how Apache Brooklyn, an incubator project, is used to simplify deploying complex apps to Docker across SoftLayer’s distributed infrastructure.
Clocker leverages Brooklyn’s blueprints so Dockerfiles and images do not have to be created from scratch. With the blueprints that use YAML files, Clocker creates the Dockerfiles automatically. In the example, Kennedy uses a blueprint for Riak, Basho’s NoSQL database, to show how it gets deployed.
In the demo, Kennedy shows how a YAML file describes a set of services: a Riak cluster and a web app cluster which is fronted by Nginx. It has three nodes which are JBOSS servers. The YAML file gets copied and sent to a Docker cloud, which is a set of virtual machines that Clocker is managing in SoftLayer, each of which is running a copy of Docker Engine.
Clocker runs the Docker infrastructure. Each Docker host is managed by Clocker. It shows CPU utilization, memory usage and other information. There is also an auto scaling policy to make sure the user has head room to scale out and create more containers. If the developer starts to run out, Clocker will create a virtual machine, deploy Docker Engine and set it up. In the set up, Weave is used as an overlay network to connect multiple hosts running Docker. It allows developers to run more complex apps without having to worry about such issues as port forwarding.
In the final deployment, the web address shows the app built from the different components. One of the management features is the ability to scale. For example, the Riak admin page shows the changes being staged and the nodes being added. Clocker is scaling out the Riak cluster with new Docker containers that are accessible through the web application.
Cloudsoft and Basho are both sponsors of The New Stack.
Feature image via Flickr Creative Commons.