Skip to content

LearningNewTechnology/oreilly-mlops-bootcamp

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 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

Languages

  • Python 74.0%
  • Jupyter Notebook 23.9%
  • Dockerfile 2.1%