Docker is become an incredibly prevalent tool in the development and
operations realms in recent months. Its combination of developer friendly
configuration and simple operational management make it a very attractive
prospect for companies and teams looking to adopt CI and CD practices.
In most cases, you’ll see Docker used to deploy applications in much the
same way as a zip file or virtual machine image. This is certainly the
most common use case for Docker, but by no means the extent of its
In this post I’m going to discuss some of the more interesting problems
we’ve used Docker to solve and why it serves as a great solution to them.
Traefik is an application load balancer written in Go and designed to simplify
the task of serving HTTP(S) services whose configuration changes on the fly. Traefik v1.1.0
was recently released with support for Docker Swarm and it works excellently.
In this post, we’ll go through how one sets up their Swarm cluster to automatically expose
its services through Traefik.
Docker Swarm is one of those interesting new technologies which has succeeded in shaking up
people’s preconceptions around what it means to run a scaleable cluster. In an environment
where everyone seems to be building a cluster orchestrator, including some big names like
Google’s Kubernetes, HashiCorp’s Nomad and Mesosphere’s Marathon;
Swarm has managed to burst through as one of the most attractive orchestration frameworks out
As a result of all this hype, it can be difficult to make a decision around whether Swarm is
the right tool to use. As someone who has had extensive experience with running Swarm,
Kubernetes, DC/OS (Marathon) and Rancher in production
environments, I’ll try to give you an unbiased view on the reasons you’d choose Swarm
and some of the gotchas to be aware of.