A distributed task scheduling system designed for efficient management and distribution of computational load in a multi-node environment. The project uses Docker to containerize services, Terraform for more flexible system management, Prometheus and Grafana for system state tracking and CI for automated testing.
- 📄 About the project: in this section you will find a brief description of the project.
- 🚀 Project features: in this section you will find the specifics of the project implementation.
- ⚙️ Requirements: in this section you will find the necessary resources that must be installed in order for the program to work.
- 💿 How to use the program: in this section you will find a description of how to start the server and how to start a client, as well as how to use additional features.
- 📊 How to monitor the system status
- 👨🏻💻 Authors: in this section you will find information about the students of this project
The project was created as part of an academic project activity in which students demonstrate their skills with terraform, docker, CI/CD, Grafana, and Prometheus.
- Possibility to start the project both via docker compose and terraform.
- The project is written in Go.
- The project works locally.
- The project solves lua code tasks.
- Go
- Terraform
- Docker
There are two ways to run the program:
(1) Launching the project via Docker Compose
(2) Launching the project via Terraform
Getting the project up using docker compose
- Download the project from github
git clone https://github.com/blxxdclxud/sna-project.git
cd sna-project- Start a docker and run the project
cd .\deployments\
docker compose -f docker-compose.yml up --build- Build a file for the client and send the task through it
go build cmd/client/main.go
./main -file lua-examples/factorial.luaThis way works only on Linux.
Getting the project up using Terraform
- Download the project from github
git clone https://github.com/blxxdclxud/sna-project.git- Start a docker and run a terraform
cd .\terraform-local\
terraform buildTo confirm the creation, you must enter "yes"
- To finish working with the system
terraform destroyTo confirm, you must enter "yes"
- To change the number of workers, do the following steps:
cd .\terraform-local\
nano terraform.tfvarsChange the value of the workers_count variable and save changes:
worker_count = 5
This part must be done if the “terraform build” command does not work.
Attention! VPN is required for this part since terraform doesn't work in Russia.
cd .\terraform-local\
terraform init- Build a file for the client and send the task through it
go build cmd/client/main.go
./main -file lua-examples/factorial.luaAfter starting the system with Docker Compose, open Grafana in your browser:
http://localhost:3000
- Username:
admin - Password:
admin(or set on first login)
You may be prompted to change the password on first login.
- Navigate to "Dashboards" and open the one named "DJS"
- Use the time picker in the top-right to adjust the time range (e.g., Last 15 minutes)
- Set a refresh interval (e.g., every 10s) for live updates
- Daniil Mayorov d.mayorov@innopolis.university
- Niyaz Gubaidullin n.gubaidullin@innopolis.university
- Ramazan Nazmiev r.nazmiev@innopolis.university