Week 1: Docker, Kubernetes & Infrastructure as Code
Master containerization with Docker, orchestration with Kubernetes, CI/CD pipelines, and modern cloud infrastructure-as-code practices for AI systems.
- Containerize AI applications with Docker and Docker Compose
- Deploy and scale services on Kubernetes
- Write infrastructure as code with Terraform or Pulumi
- Build CI/CD pipelines for AI model deployment
This first lecture establishes the foundational framework for Cloud Computing & DevOps. By the end of this session, you will have the conceptual grounding and practical starting point needed for the rest of the course.
Key Concepts
The lecture introduces the four main pillars of this course: Docker: Images, Containers & Compose, Kubernetes: Pods, Services & Deployments, Infrastructure as Code: Terraform, CI/CD for AI: GitHub Actions & ArgoCD. Each will be explored in depth over the 14-week curriculum, with hands-on projects reinforcing theory at every stage.
This Week's Focus
Focus on mastering: Docker: Images, Containers & Compose and Kubernetes: Pods, Services & Deployments. These are the prerequisites for everything in Week 2. The concepts build on each other — do not skip the practice exercises.
AIE203 Project 1: Containerized AI Service Deployment
Containerize an ML inference service with Docker, deploy it on a local Kubernetes cluster (minikube or kind), and build a full CI/CD pipeline that automatically retrains and redeploys on new data.
- Dockerfile and docker-compose for inference service
- Kubernetes manifests (Deployment, Service, HPA)
- CI/CD pipeline with automated tests and deployment
- Load test results demonstrating autoscaling
These represent the style and difficulty of questions you'll see on the midterm and final. Start thinking about them now.
What is the difference between a Docker image and a container? Explain image layering.
Describe the Kubernetes Pod restart policy. When does Kubernetes restart a failed pod?
Write a GitHub Actions workflow that builds a Docker image, runs tests, and pushes to DockerHub.