SaltStack orchestration for Docker containers at scale

October 8, 2014 - Rhett Glauser

SaltStack orchestration for Docker containers at scale

A few weeks ago we announced our DockerCon contest asking SaltStack users to share how they use SaltStack to orchestrate, manage or deploy Docker containers at scale. The winning submission receives a complimentary pass to DockerCon Europe. We received excellent responses, a couple of which are summarized below, including the winning entry from Love Nyberg who is a DevOps engineer for Bloglovin.

LOVE NYBERG, BLOGLOVIN DEVOPS ENGINEER AND WINNER OF THE SALTSTACK DOCKERCON EUROPE COMPETITION

Rolling Docker deployments
The Bloglovin engineering team has been using SaltStack for a few months now to create cloud instances in AWS and Google Compute Engine, to automate all kinds of things in their Stockholm data center, and for configuration management of the application stacks running on these infrastructures. They are moving new services to SaltStatck everyday.

Love is using SaltStack to do rolling Docker deployments and documented the process in a blog post titled, “Using SaltStack to manage and deploy Docker containers.” The Bloglovin team is deploying containers and rolling out updates to internal APIs and a couple of front-end services. SaltStack is currently used to manage approximately ten bare-metal servers and ten cloud instances running more than 300 containers. They are also using the SaltStack Reactor to do configuration updates and to trigger deploys from their deploy application.[/vc_column_text][/vc_column][/vc_row]

Use @SaltStackInc to manage and deploy @docker containers http://t.co/KIileRhQYA#configmanagement#containers — Love Nyberg (@jacksoncage) October 1, 2014

ED LANE, VERIO SOFTWARE DEVELOPER
6174918_7669″>Docker-based minion swarm
Ed Lane, a software developer for Verio, had the idea to use SaltStack to create a minionswarm-docker.py Salt Runner similar in function to minionswarm.py. The purpose is to deploy SaltStack minions across a Salt node group using Docker instead of just a single machine.

With the appropriate commands, this script performs the following functions:
create the salt node group
create the docker containers across the node group
provision the minions
startup the minions
stop the minions
remove the docker containers

This would create a high-density, Salt super cluster of Docker-based minions across a Salt node group on which to run any other demo. For example:
“salt —nodegroup docker_swarm test.ping”

Salt Helium
And now, the new Salt Helium release has more and better Docker support. The Docker API is now completely exposed to SaltStack command and control and SaltStack now ships with Docker data tracking systems which make automating Docker deployments even easier.