The state of clustering tools such as Kubernetes and Docker Swarm was very immature in early 2015, with only early alpha versions available. While tools such as Docker provide the actual containers, we also need tools to take care of things such as replication and failovers, as well as APIs to automate deployments to multiple machines. They make it much easier to package an application with its required infrastructure. I now believe containers are the deployment format of the future. Starting out with containers and container orchestration tools We have now been running Kubernetes in production for over a year. If you haven't bought in to the production readiness of Docker and Kubernetes yet, read about how my team became early adopters. The main issue was that there was no “unit-of-deployment,” and without one, there was a gap between development and operations. The containerization trend was clearly going to change that. The AWS-based setup had worked very well for deploying new releases over the years, but the deployment setup, with custom scripts and tooling to automate deployments, wasn’t very easy for teams outside of operations to use-especially small teams that didn’t have the resources to learn all of the details about these scripts and tools. In early 2015, after years of running deployments on Amazon EC2, my team at Luminis Technologies was tasked with building a new deployment platform for all our development teams.