This project demonstrates a web application consisting of a login page and a home page, highlighting the benefits of using Docker for deploying a full-stack application. The application is designed to showcase high performance, high load, and high availability.
- Docker Integration: The project utilizes Docker containers to deploy the frontend, backend, MySQL, and Redis, enabling efficient testing and management of different service nodes.
- Load Balancing with Nginx: Nginx is used to distribute traffic across multiple server nodes, enhancing the app's responsiveness and reliability.
- High Availability with Keepalived: Implementing Keepalived ensures that if one server node fails, another node can seamlessly take over, providing continuous service without interruption.
- Clustering for Performance and Reliability:
- Multiple database clusters are deployed to handle a high volume of requests, significantly improving speed.
- In case of a node failure, other nodes in the cluster are readily available to take over, ensuring uninterrupted operation.
Testing the application involves pausing a few nodes within the Docker environment to simulate real-world scenarios.
-
Database Cluster: With 5 nodes, pausing 2 demonstrates continued functionality.

-
Redis Cluster: Out of 6 nodes, pausing 2 showcases resilience.

-
Backend Services: Pausing 1 out of 3 nodes tests backend reliability.

-
Frontend Services: Testing by pausing 1 out of 3 nodes for frontend responsiveness.

Even with several nodes paused, the application maintains its functionality, allowing users to reload the home page and log in successfully. This resilience is due to the effective use of clustering, ensuring that other available nodes can compensate for any downtime, thus demonstrating the robustness of high performance, high load, and high availability in this application.


