Introduction to our Test Swarm - tooltwist/documentation GitHub Wiki
Introduction
Our Test Swarm allows the various Docker containers of an application to be run across multiple physical or virtual machines. We can use the Test Swarm to run many applications, and we can row or reduce the number of machines in the swarm as required. This gives us many benefits:
- Simplified administration.
- A consistent environment, from testing through to pre-stage.
- More efficient use of resources. Rather than having one virtual machine for each test or staging environment (each barely used) we can run these different parts on the same machine.
Key parts of the Architecture
- Docker Swarm allows a Docker installation to run across multiple machines (the "swarm").
- Docker Machine allows machines to be added or removed from the swarm.
- Docker Compose let's a user define the various Docker containers involved in an application.
- nginx is a reverse proxy that will route requests to the correct Docker containers, based upon the Domain name.
- nginx-gen watches for Docker containers starting and stopping, and updates the nginx configuration.
To add a new application to the swarm, a developer defines a docker-compose.yml
file, defining the docker containers required for the application, and also specifying the domain name for the application. The docker-compose
command is used to start the application on the remote swarm, from the user's own machine.