Skip to content

AmmarMohanna/oreilly-mlops-bootcamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ MLOps Bootcamp: From Foundation to Production

A comprehensive, hands-on MLOps bootcamp that takes you from basic concepts to production-ready machine learning deployments. This repository contains 10+ practical lessons covering the entire MLOps lifecycle using real-world tools and datasets.

MLOps Pipeline Python Docker Kubernetes MLflow


🎯 What You'll Learn

This bootcamp covers the complete MLOps journey:

Day 1: MLOps Foundation

  • Version Control with Git for ML projects
  • Experiment Tracking with MLflow
  • Containerization with Docker
  • ML Pipelines with preprocessing, training, and deployment
  • CI/CD Automation with GitHub Actions

Day 2: Applied MLOps

  • Kubernetes Deployment for scalable ML services
  • Horizontal Pod Autoscaling (HPA) for dynamic scaling
  • A/B Testing for model comparison and traffic control
  • End-to-End MLOps with monitoring and observability

πŸ“š Repository Structure

oreilly-mlops-bootcamp/
β”œβ”€β”€ Day 1/                          # Foundation concepts
β”‚   β”œβ”€β”€ lesson-2-git/              # Version control with Git
β”‚   β”œβ”€β”€ lesson-3-mlflow/           # Experiment tracking
β”‚   β”œβ”€β”€ lesson-4-docker/           # Containerization
β”‚   β”œβ”€β”€ lesson-5-ml-pipeline/      # End-to-end ML pipeline
β”‚   └── lesson-6-ci-cd/            # CI/CD automation
β”‚
└── Day 2/                          # Production deployment
    β”œβ”€β”€ lesson-2-kubernetes-basics/ # Kubernetes fundamentals
    β”œβ”€β”€ lesson-5-kubernetes-hpa/    # Auto-scaling
    β”œβ”€β”€ lesson-7-ab-testing/        # A/B testing
    └── lesson-10-mlops-practices/  # Complete MLOps workflow

πŸ› οΈ Prerequisites

Core Requirements

  • Python 3.11 (required for MLflow compatibility)
  • Git - Version control system
  • Docker - Containerization platform
  • Kubectl - Kubernetes command-line tool
  • Kubernetes cluster (Docker Desktop with K8s enabled)

Python Packages

  • MLflow - Experiment tracking and model management
  • Flask/FastAPI - Web frameworks for API development
  • scikit-learn - Machine learning library
  • pandas - Data manipulation
  • pytest - Testing framework
  • prometheus-client - Monitoring metrics

Optional Tools

  • Jupyter Notebook - Interactive development
  • Postman - API testing
  • GitHub CLI - GitHub integration

πŸš€ Quick Start

1. Environment Setup

# Clone the repository
git clone https://github.com/AmmarMohanna/oreilly-mlops-bootcamp.git
cd oreilly-mlops-bootcamp

# Create conda environment with Python 3.11
conda create -n mlops-py311 python=3.11
conda activate mlops-py311

# Verify Python version
python --version  # Should show Python 3.11.x

2. Install Dependencies

# For each lesson, install requirements
cd Day\ 1/lesson-2-git/
pip install -r requirements.txt

# Repeat for other lessons as needed

3. Start Learning

Begin with Day 1 lessons in order:

  1. Git fundamentals β†’ Day 1/lesson-2-git/
  2. MLflow tracking β†’ Day 1/lesson-3-mlflow/
  3. Docker containerization β†’ Day 1/lesson-4-docker/
  4. ML pipelines β†’ Day 1/lesson-5-ml-pipeline/
  5. CI/CD automation β†’ Day 1/lesson-6-ci-cd/

Then progress to Day 2 for production deployment: 6. Kubernetes basics β†’ Day 2/lesson-2-kubernetes-basics/ 7. Auto-scaling β†’ Day 2/lesson-5-kubernetes-hpa/ 8. A/B testing β†’ Day 2/lesson-7-ab-testing/ 9. Complete MLOps β†’ Day 2/lesson-10-mlops-practices/


πŸ“– Detailed Lesson Overview

Day 1: Foundation

Lesson Focus Tools Dataset
Git Version control Git, GitHub Iris dataset
MLflow Experiment tracking MLflow UI Air quality data
Docker Containerization Docker, Flask Age detection model
ML Pipeline End-to-end workflow MLflow, Flask, Docker Adult income data
CI/CD Automation GitHub Actions Adult income data

Day 2: Production

Lesson Focus Tools Dataset
Kubernetes Container orchestration K8s, Docker Age detection model
HPA Auto-scaling K8s HPA, Prometheus Age detection model
A/B Testing Model comparison FastAPI, K8s Diabetes prediction
Complete MLOps Full workflow MLflow, Flask, K8s, Prometheus, Grafana Adult income data

πŸŽ“ Learning Path

Day 1: Foundation
β”œβ”€β”€ Git Version Control
β”œβ”€β”€ MLflow Experiment Tracking
β”œβ”€β”€ Docker Containerization
β”œβ”€β”€ ML Pipeline Development
└── CI/CD Automation
         ↓
Day 2: Production
β”œβ”€β”€ Kubernetes Deployment
β”œβ”€β”€ Auto-scaling (HPA)
β”œβ”€β”€ A/B Testing
└── Complete MLOps Workflow

πŸ”§ Troubleshooting

Common Issues

MLflow Compatibility

# Error: AttributeError: 'EntryPoints' object has no attribute 'get'
# Solution: Use Python 3.11
conda create -n mlops-py311 python=3.11
conda activate mlops-py311

Port Conflicts

# macOS AirPlay uses port 5000
# Solution: Use alternative ports
mlflow ui --port 5001
python -m mlflow server --port 5001 --host 0.0.0.0

Docker Issues

# Ensure Docker is running
docker --version
docker ps

Kubernetes Issues

# Check cluster status
kubectl cluster-info
kubectl get nodes

Getting Help

  • Check individual lesson README files for specific troubleshooting
  • Review error messages in terminal output
  • Ensure all prerequisites are properly installed
  • Verify Python version is 3.11 for MLflow compatibility

πŸ—οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Development   β”‚    β”‚   Experiment    β”‚    β”‚   Deployment    β”‚
β”‚                 β”‚    β”‚   Tracking      β”‚    β”‚                 β”‚
β”‚  β€’ Git         │───▢│  β€’ MLflow       │───▢│  β€’ Docker       β”‚
β”‚  β€’ Local Dev   β”‚    β”‚  β€’ Model Reg    β”‚    β”‚  β€’ Kubernetes   β”‚
β”‚  β€’ Testing     β”‚    β”‚  β€’ Metrics      β”‚    β”‚  β€’ Monitoring   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β–Ό                       β–Ό                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   CI/CD Pipelineβ”‚    β”‚   Model Serving β”‚    β”‚   Observability β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚  β€’ GitHub       β”‚    β”‚  β€’ Flask API    β”‚    β”‚  β€’ Prometheus   β”‚
β”‚  β€’ Actions      β”‚    β”‚  β€’ FastAPI      β”‚    β”‚  β€’ Grafana      β”‚
β”‚  β€’ Automation   β”‚    β”‚  β€’ A/B Testing  β”‚    β”‚  β€’ HPA          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🀝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Areas for Improvement

  • Additional datasets and use cases
  • More advanced Kubernetes configurations
  • Additional monitoring and observability tools
  • Performance optimization techniques
  • Security best practices

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • O'Reilly Media for the educational framework
  • MLflow team for the excellent experiment tracking tool
  • Kubernetes community for container orchestration
  • Open source contributors who made these tools possible

πŸ“ž Support


Ready to start your MLOps journey? πŸš€

Begin with Day 1: MLOps Foundation and work your way through to Day 2: Applied MLOps for a complete production-ready MLOps experience!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •