-
Notifications
You must be signed in to change notification settings - Fork 0
Assignment 3
Nawaz Hussain K edited this page Dec 9, 2018
·
1 revision
- We have used docker swarm to achieve fault tolerance, load balancing, elasticity, and high availability.
- View our scaled up cluster: http://149.165.170.239:8080
- Fault Tolerance
- High Availability
- Load balancing, service discovery achieved in the older releases.
- We have specified the on-failure: restart as the policy for each container. When our container is deployed in the swarm, and it faces an issue or crashes due to the error, it is restarted and added to the swarm by docker swarm.
- Docker swarm uses a round-robin approach to balance the traffic between the all the replicas. As of this writing, we have three replicas of each microservice running on two nodes.
- Below mentioned diagrams show our throughput and efficiency.
- AutoScaling is not attained here as all the replicas created and run by docker. Therefore all the containers are always up and running. This makes the system highly available, but if the demands overflows the processing power of the replicas, our setup cannot scale itself up yet.
- Our application is highly available for the end user. As each microservice has multiple replicas running on two nodes, our system can handle 4000 simultaneous requests before breaking.
- Our current system
- Throughput: login and retrieve all attributes does not break at 4000 samples.
- Throughput: Search feature breaks at 4000 samples.
- Throughput: Front End feature faces some lag at 4000 samples.
Will be updated periodically