This project simulates a microservices architecture to explore the dynamics of network traffic and resource utilization across multiple services. It's designed to test various scenarios involving CPU load, I/O bandwidth, and network traffic, providing insights into the behavior of loosely coupled systems under different operational conditions.
- Traffic Generator: Simulates various types of network traffic to test the microservices' responses to different loads.
- Resource Management: Monitors and manages CPU usage, memory, and I/O bandwidth to optimize performance.
- Agents: Implements dynamic response strategies to adjust resource allocation in real-time based on system load.
- Event Queue: Manages scheduled tasks and ensures that actions such as scaling and restarts occur at appropriate times.
- Load Balancer: Distributes incoming requests across available services to balance load and optimize resource utilization.
- Python 3.8 or later
- Redis server for caching simulation data
- Necessary Python libraries:
redis
,numpy
,matplotlib
(for plotting)
- Clone the repository:
git clone https://github.com/tejas7777/maestro.git
- Run KeyDB server
keydb-server
- Run the index file
python index.py
- Run the UI
cd ./visualization/UI/ python simulation_ui.py
Tejas Chendekar - psxtc5 University of Nottingham 🏰