Docker is fantastic for building a scalable infrastructure. Not only does it force you to isolate your application into reasonable chunks, but it also encourages you to build these pieces as stateless services. This is fantastic for high availability and scalability, but actually scaling out a pure Docker-based infrastructure can be difficult if done manually.
Docker Swarm and Compose are the “official” solutions to this problem– they allow for you to build a giant, elastic Docker cluster that appears as a single machine to your client. Additionally, Compose allows you to scale your application easily to multiple instances.
Despite this, these two components are lacking a couple critical features– cross-machine service discovery, as well as a built in load balancer that distributes traffic to your scaled Docker infrastructure.
Tutum is a service that adds these remaining components, and to great success. Though you can use your own nodes with Tutum, sometimes it’s desirable to use your own, self-hosted service.
Rancher is an open source Docker PaaS that includes features like service discovery and DNS, load balancing, multi-node support, cross-host networking, health checks, multi-tenancy, and more. Essentially, Rancher takes all the features of Tutum and packs it into a single Docker container that can be hosted on your own nodes so that you have complete control.
Even better, Rancher is extremely easy to install and often can be done in a matter of minutes.