This repository is part of the REMLA24-Team3 project and serves as the central hub for running and operating the URL Phishing detection application. It contains Docker Compose configurations to facilitate easy deployment and operation of the application.
git clone https://github.com/remla24-team3/operation.git
cd operation
pipx install dvc
or
pip install dvc
dvc pull
Create and start the Vagrant VMs:
vagrant destroy -f && vagrant up
Launch the vagrant controller if necessary.
vagrant ssh controller
This will build and start all the services defined in the compose.yaml
, which include:
model-service
: Backend service handling machine learning operations.app-frontend
: Frontend interface for interacting with the application.app-service
: Backend service that handles business logic and interacts with the model-service.The app-frontend
can be viewed application
The grafana-dashboard
can be accessed at grafana
The kubernetes
can be accessed at kubernetes
The prometheus
can be accessed at prometheus
The kiali
can be accessed at kiali
The jaeger
can be accessed at jaeger
After provisioning, the kubernetes configuration file k3s.yaml
will have been generated.
This file can be used to access the cluster using
kubectl [command] --kubeconfig ./k3s.yaml
.dvc/config
: Configuration for data version control, pointing to a Google Drive remote for large data and model files.compose.yaml
: Defines the services and their configuration necessary to run the application.We implemented the subtasks:
Tag: https://github.com/jasperbruin/remla-ML-group3/releases/tag/a1
Significant progress has been made across various repositories:
Tag: https://github.com/remla24-team3/operation/releases/tag/a2
Dashboard Configuration: The project includes a JSON definition for a basic Grafana dashboard. This dashboard can be imported to visualize app-specific metrics.
Documentation: The operations repository's README.md now contains instructions for manually installing the Grafana dashboard, ensuring users can set it up correctly.
Tag: https://github.com/remla24-team3/operation/releases/tag/a3
Pytest: Add Pytest in model training
Tests: Feature and Data, Model development and Model infrastructure
Tests: Memory and Performance
Tests: Mutamorphic
Tests: Non-determinism robustness and model capabilities through data slices
Frontend:Improvements in app
Tag: https://github.com/remla24-team3/operation/releases/tag/a4
Open a Shell in the Pod:
To execute the commands, first, you need to open a shell session inside your sleep
pod where you will run the curl requests. Use the following command to access the shell:
kubectl exec -it sleep-0 -n rate-limit -- sh
Execute the HTTP Requests:
Once inside the shell of the sleep
pod, run the following loop to execute 15 HTTP GET requests to the echoserver
. This step is crucial to test the rate limiting functionality. Each request will output the HTTP status code, helping you identify when rate limiting kicks in (typically indicated by 429 Too Many Requests
).
for i in $(seq 1 15); do
curl -s -o /dev/null -w "%{http_code}\n" http://echoserver.rate-limit.svc.cluster.local
done
This command will output the HTTP status code for each request, allowing you to verify whether and when the rate limiting rules apply.
HTTP 200: Indicates a successful response from the echoserver
.
HTTP 429: Indicates that the rate limiting has been enforced.
Tag: https://github.com/remla24-team3/operation/releases/tag/a5
Report: Created 80% version of the report
Tag: https://github.com/remla24-team3/operation/releases/tag/a6
Tests: Added metric reporting to the readme
Code quality Removed unused folders and files
Tag: https://github.com/remla24-team3/model-training/releases/tag/a6
For more information or support, please open an issue in this repository or contact one of the team members directly through GitHub.