Skip to content

Jbdu4493/oct23_cmlops_reco_films_helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Movieflix: Film Recommendation System Deployment on Local Kubernetes cluster

Introduction

This MLOps project combines the power of Helm and ArgoCD to deploy a film recommendation system into a Local Kubernetes environment. It is a part of the movie-recommander project created during the Datascientest training courses to obtain the diploma of Machine Learning Engineer. Leveraging Helm charts offers a streamlined and scalable approach to deploy and manage the film recommendation services.

Recofim architecture

Table of Contents

Installation

Prerequisites

# Install Helm
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
# Install Argo CD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# Install Argo CD CLI
curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64

# Access Argo CD API Server
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
kubectl port-forward svc/argocd-server -n argocd 80:443

Helm Chart Installation

  1. Clone the current oct23_cmlops_reco_films_helm repository.
  2. Navigate to the repository local directory on your computer.
  3. Deploy the movie recommender Helm chart to your Kubernetes cluster using:
helm install my-film-reco-films-DEV ./DEV/

ArgoCD Deployment

Navigate to the repository ../oct23_cmlops_reco_films_helm/DEV directory on your computer. With ArgoCD deploy Application, Airflow and MLflow Helm releases.

./install_app.sh

Use "admin" and auto-generated password to access to ArgoCD API Server.

Delete ArgoCD Deployment

Delete ArgoCD deployments of Application, Airflow and MLflow Helm releases.

./uninstall_app.sh

Usage

After successful deployment, the film recommendation application will be accessible via FastAPI, Streamlit, and other services hosted on a local Kubernetes cluster through a web browser:

ArgoCD - localhost:80 (admin - auto-generated password check the ./install.sh log)

FastApi Application* - localhost:8001/docs (test1 - testuser)

Airflow - localhost:8080 (admin - admin)

MLflow - localhost:5001

Streamlit - localhost:8504 (test1 - testuser)

Prometheus - localhost:9090

Grafana - localhost:3000 (admin - admin)

PostgreSQL - DBNAME=postgres, USER=postgres, PASSWORD=recommendation_films_oct_23_MLOPS, HOST=localhost, PORT=5431

* The api needs 10-15 mins to be started because of PostrgeSQL database init

Dependencies

  • Docker
  • Kubernetes
  • Helm
  • ArgoCD

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published