MPCS 56550 Introduction to DevOps (Winter 2026)

Section 1
Instructor(s) Almhana, Rafi (ralmhana)
Location Crerar 298
Meeting Times Wednesday 2:30pm - 5:20pm
Fulfills Elective Specialization - Software Engineering (SE-2)

Syllabus

This course provides an in-depth introduction to DevOps principles, practices, and tools for modern software development and operations. Students will learn how to integrate development (Dev) and operations (Ops) to enhance software delivery, automation, and scalability. The course covers continuous integration (CI), continuous deployment (CD), infrastructure as code (IaC), monitoring, cloud-native applications, and security. By the end of this course, students will have hands-on experience with tools like Docker, Kubernetes, Terraform, Jenkins, GitHub Actions, Prometheus, and AWS/Azure/GCP.

Learning Objectives

By the end of this course, students will be able to:

  • Understand the core principles of DevOps and its impact on software development and operations.
  • Implement version control and collaboration workflows using Git and GitHub/GitLab.
  • Create and manage CI/CD pipelines with Jenkins, GitHub Actions, or GitLab CI.
  • Use containerization technologies like Docker and container orchestration with Kubernetes.
  • Apply Infrastructure as Code (IaC) using Terraform or Ansible.
  • Monitor applications and infrastructure using Prometheus, Grafana, and ELK Stack.
  • Implement cloud-based DevOps solutions using AWS, Azure, or GCP.
  • Enhance security practices within DevOps, including secrets management, vulnerability scanning, and compliance.
  • Understand site reliability engineering (SRE) principles and incident response best practices.
  • Implement a real-world DevOps project integrating multiple DevOps tools and concepts.

Course Outline

Module 1: Introduction to DevOps & Culture

  • What is DevOps?
  • DevOps vs. Traditional IT
  • DevOps lifecycle
  • DevOps principles

Module 2: Version Control & Git Workflows

  • Git basics and branching strategies
  • GitHub/GitLab workflows (Forking, Branching, Merging, Pull Requests)
  • Managing repositories with Git

Module 3: Continuous Integration & Continuous Deployment (CI/CD)

  • What is CI/CD?
  • Setting up Jenkins, GitHub Actions, GitLab CI/CD
  • Building CI/CD pipelines
  • Deployment strategies

Module 4: Containerization & Orchestration

  • Introduction to Docker and containerization
  • Building and managing Docker containers
  • Introduction to Kubernetes
  • Kubernetes architecture & deployment strategies

Module 5: Infrastructure as Code (IaC)

  • What is IaC and why it matters?
  • Introduction to Terraform, Ansible, and CloudFormation
  • Provisioning infrastructure with Terraform
  • Managing configurations with Ansible

Module 6: Cloud Computing & DevOps

  • DevOps in the cloud (AWS, Azure, GCP)
  • Cloud-native DevOps tools
  • Serverless computing basics

Module 7: Monitoring & Logging

  • Observability and logging in DevOps
  • Introduction to Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana)
  • Setting up monitoring and alerts

Module 8: Security & Compliance in DevOps

  • DevSecOps and security best practices
  • Secrets management (Vault, AWS Secrets Manager)
  • Vulnerability scanning (Trivy, SonarQube)
  • Compliance and auditing in DevOps

Module 9: Site Reliability Engineering (SRE) & Incident Management

  • Introduction to SRE principles
  • Error budgets and SLIs/SLOs/SLAs
  • Incident response and on-call strategies
  • Chaos engineering basics

Grading & Assessment

Assignments

40%

Topic Presentation

10%

Final Project

40%

Participation & Engagement

10%

Tools & Technologies

  • Version Control: Git, GitHub/GitLab
  • CI/CD: Jenkins, GitHub Actions, GitLab CI/CD
  • Containerization: Docker, Kubernetes
  • Infrastructure as Code (IaC): Terraform, Ansible
  • Cloud Services: AWS, Azure, GCP
  • Monitoring & Logging: Prometheus, Grafana, ELK Stack
  • Security: HashiCorp Vault, Trivy, SonarQube

Course Prerequisites

Must have completed MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming.

Other Prerequisites

• Basic knowledge of Linux/Unix systems
• Familiarity with Git version control
• Knowledge of scripting languages (Python, Bash, etc.)

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 52060-1 -- Parallel Programming

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science