Introduction
Module 1 introduces the foundational infrastructure concepts essential for deploying ML systems in production. You’ll learn how to containerize applications, orchestrate workloads with Kubernetes, and automate deployment pipelines using CI/CD.This module focuses on practical, hands-on experience with Docker, Kubernetes, and GitHub Actions—the core technologies used in modern ML infrastructure.
What You’ll Learn
Containerization with Docker
Build and manage Docker images for ML applications, understand multi-stage builds, and push images to container registries.
Kubernetes Orchestration
Deploy applications using Pods, Jobs, Deployments, and Services on a local Kubernetes cluster with kind.
CI/CD Automation
Create GitHub Actions workflows to automatically build, test, and deploy containerized applications.
Module Architecture
This module includes two sample applications that demonstrate containerization patterns:- app-ml: A simple ML training job that simulates model training and outputs metrics
- app-web: A basic web server for serving ML models or APIs
Learning Path
Follow this recommended sequence to get the most out of Module 1:- Docker Fundamentals - Start with containerization basics
- Kubernetes Deployment - Learn orchestration and scaling
- CI/CD with GitHub Actions - Automate your workflows
- Serverless Alternatives - Explore simpler deployment options
- Practice Exercise - Apply what you’ve learned
Prerequisites
Before starting this module, ensure you have:- Basic understanding of command-line interfaces
- Familiarity with Git and GitHub
- Docker installed locally (Docker Desktop)
- kubectl CLI tool
- A GitHub account for registry and CI/CD
Key Concepts
Containerization
Containers package your application and all its dependencies into a single, portable unit that runs consistently across different environments.Orchestration
Kubernetes orchestrates containers at scale, handling deployment, scaling, networking, and self-healing automatically.CI/CD
Continuous Integration and Continuous Delivery pipelines automate testing, building, and deploying your applications, reducing manual errors and accelerating development.Design Documentation
A good design document should address:- Models in production architecture
- Pros and cons of your approach
- Scalability considerations
- Usability and developer experience
- Cost analysis
- Evolution and maintenance plan
- ML Test Score assessment
Resources
Essential reading materials:- ML Design Docs by Eugene Yan
- Docker Introduction Tutorial
- Kubernetes Basics
- GitHub Actions Documentation
- Continuous Delivery for Machine Learning