Design and Implementation of a Load-Balanced Elastic Cloud Infrastructure

This project focuses on the development of an elastic cloud management system with load balancing capabilities. The project consists of three milestones, each addressing different aspects of the cloud system. In the first milestone, a basic cloud management system is created to manage and monitor a cluster of machines (using Docker), enabling users to run interactive and non-interactive jobs. The second milestone introduces a load balancer (using HAProxy) to optimize resource utilization and response time for clients. The third milestone makes the cloud resource manager elastic, adjusting resource allocation based on user demands, and optionally implementing fault tolerance for resilience. Through these milestones, the project aims to build a robust and scalable cloud infrastructure that efficiently manages resources, provides load balancing, and adjusts resource allocation dynamically. Additionally, the project incorporates a live Cloud Dashboard that provides real-time insights into resource utilization, offering an overview of the state of all nodes and reflecting the live status of each node in the cloud. [Code].