This time we'll use a set of tools completely unrelated to Docker. It'll be Packer (https://www.packer.io/) and Terraform (https://www.terraform.io/). Both are coming from HashiCorp (https://www.hashicorp.com/). Packer allows us to create machine images. With Terraform we can create, change, and improve cluster infrastructure. Both tools support almost all the major providers.
They can be used with Amazon EC2, CloudStack, DigitalOcean, Google Compute Engine (GCE), Microsoft Azure, VMWare, VirtualBox, and quite a few others. The ability to be infrastructure agnostic allows us to avoid vendor lock-in. With a minimal change in configuration, we can easily transfer our cluster from one provider to another. Swarm is designed to work seamlessly no matter which hosting provider we use...