After having a conversation with @iarora93, I have a decent understanding of the Docker-Swam cluster orchestration process. The idea of creating multiple masters ensuring maximum availability is a brilliant one since the system is more fault tolerant in case the master node fails.
But, the containers for each service could have been deployed on the same server instances as slaves, instead of independent server specific instance. They could have shared the slave IP addresses and could be hosted on different ports on the slave machine.
After having a conversation with @iarora93, I have a decent understanding of the Docker-Swam cluster orchestration process. The idea of creating multiple masters ensuring maximum availability is a brilliant one since the system is more fault tolerant in case the master node fails. But, the containers for each service could have been deployed on the same server instances as slaves, instead of independent server specific instance. They could have shared the slave IP addresses and could be hosted on different ports on the slave machine.