macOS xterm-256color zsh 2204 views

Here is a quick ascii demo of a Docker scale-out Docker platform running on AWS. This cluster uses only EC2 resources, specifically three compute instances and one elastic load balancing instance. The sample app utilizes Redis as a backing store and a frontend Python app. The tooling in the platform includes:

  • A frontend Amazon Elastic Load Balancer configuration pointing to…
  • A single NGINX instance performing URI filtering, routing traffic matching “/nwi” to three Swarm nodes
  • A three node Docker Swarm cluster
  • A three node Consul cluster (for Swarm and service registration)
  • HAproxy reverse proxy on every node
  • Registrator for automatic (de)registration of instantiated Docker containers
  • Consul-template for creating HAproxy configuration files on the fly
  • All services instantiated as containers

A production implementation should have more nodes (at least 5) but shows the functionality to provide a scalable Docker platform, which does not require the additional complexity and overhead of overlay networking. This architecture supports not only robust networking models (like BGP) but also allows per-service launch HAproxy, consul-template, and a sidecar container for configuration data (stateless services)