A collection of end-to-end MLOps projects This repository demonstrates how to build, train, track, and deploy a models using DVC, MLflow, GitHub Actions, and AWS.
- Update
config.yaml - Update
secrets.yaml[Optional] - Update
params.yaml - Update the entity
- Update the configuration manager in
src/config - Update the components
- Update the pipeline
- Update the
main.py - Update the
dvc.yaml - Run
app.py
git clone https://github.com/Yusuf-Abol/endtoend-mlops.git
cd endtoend-mlops/projects/covid_chest_classifierconda create -n tubato_env python=3.11.13 -y
conda activate tubato_envpip install -r requirements.txtpython app.pyNow, open your local host and port in your browser.
Run MLflow locally:
mlflow uiOr connect with DagsHub:
export MLFLOW_TRACKING_URI=https://dagshub.com/<username>/<repo>.mlflow
export MLFLOW_TRACKING_USERNAME=<username>
export MLFLOW_TRACKING_PASSWORD=<token>dvc init
dvc repro
dvc dagMLflow
- Production grade experiment tracking
- Logs, tags, and manages models
DVC
- Lightweight for experiments & pipelines
- Orchestrates ML workflows
-
Access: EC2 + ECR
-
Policies:
AmazonEC2ContainerRegistryFullAccessAmazonEC2FullAccess
566373416292.dkr.ecr.us-east-1.amazonaws.com/chickenInstall Docker:
sudo apt-get update -y
sudo apt-get upgrade
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ubuntu
newgrp dockerGo to: Settings > Actions > Runner > New Self-Hosted Runner
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-east-1
AWS_ECR_LOGIN_URI=566373416292.dkr.ecr.ap-south-1.amazonaws.com
ECR_REPOSITORY_NAME=simple-app✅ With this, you now have:
- End-to-end pipeline with configs + DVC
- Experiment tracking with MLflow
- CI/CD pipeline with GitHub Actions
- Cloud deployment with AWS