We are going to build a Django Web Application that stores its persistent data in MongoDB. We will containerize both of them using Docker. Build and run them using Docker Compose.
To show how our web app would scale in this context, we are going to run two instances of Django app. Also, to make this even more interesting, we will run MongoDB as a Replica Set with one primary node and two secondary nodes.
Given we have two instances of Django app, we will need a way to balance a load among those two instances, so we are going to use Fabio, a Consul aware load-balancer, to reach Django app instances.
How about setting up discoverable, configurable, and secure service mesh using a single tool?
What if we tell you this tool is platform-agnostic and cloud-ready?
And comes as a single binary download.
All this is true. The tool we are talking about is HashiCorp Consul.
Consul provides service discovery, health checks, load balancing, service graph, identity enforcement via TLS, and distributed service configuration management.
Let’s learn about Consul in details below and see how it solves these complex challenges and makes the life of a distributed system operator easy.