remla24-team3 / operation

MIT License
1 stars 0 forks source link

Operation

Overview

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.

Related Repositories

Getting Started

Prerequisites

Running the Application

  1. Clone this repository to your local machine.
    git clone https://github.com/remla24-team3/operation.git
    cd operation

Download our model using DVC

  1. Install DVC
    pipx install dvc 

or

pip install dvc
  1. Pull the model and data from the remote storage
    dvc pull

Start Vagrant and Provision VMs

  1. Create and start the Vagrant VMs:

    vagrant destroy -f && vagrant up
  2. Launch the vagrant controller if necessary.

    vagrant ssh controller

This will build and start all the services defined in the compose.yaml, which include:

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

Access Kubernetes using kubectl

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

Configuration Files

Assignment Progress Log

Assignment A1

We implemented the subtasks:

Tag: https://github.com/jasperbruin/remla-ML-group3/releases/tag/a1

Assignment A2

Significant progress has been made across various repositories:

Tag: https://github.com/remla24-team3/operation/releases/tag/a2

Assignment A3

Setting up (Virtual) Infrastructure

Setting up Software Environment

Kubernetes Usage

App Monitoring

Grafana

Assignment A4

ML Testing

Assignment A5

Istio

Istio Use Case: Rate Limiting

  1. 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
  2. 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.

Analyzing the Results

Assignment A6

Operation

Model-training

Contact

For more information or support, please open an issue in this repository or contact one of the team members directly through GitHub.