DevOps Engineering

Fall 2022

This course introduces concepts and tools used to implement DevOps as a method for delivering systems to the enterprise with increased quality and velocity. This course identifies common issues in the development processes of systems and presents techniques to improve these processes through cross-organizational collaboration, shared responsibility, automated builds, testing automation, continuous delivery and deployment, operations including infrastructure as code, validation, monitoring, and security. It offers students the opportunity to get hands-on experience with common tools used in the industry to bridge the gap between abstract concepts and practical skills.

Prerequisites. SE 401.

 

News  

  • 06/3/2022: The website is up!


Lectures:
 S T
 10:00 - 11:40am

Instructor:
 Mamdouh Alenezi
 malenezi@psu.edu.sa
 Office Hours:
   S M T 9-10 am
 (Email me for an appointment)

Learning Outcomes  

This course has six learning outcomes:

  • CLO 1: Recognize DevOps principles, methods, and practices
  • CLO 2: Appraise DevOps principles and practices including integration, delivery, and testing
  • CLO 3: Illustrate how to apply DevOps tools used for monitoring, alerting, and reporting
  • CLO 4: Apply DevOps concepts in an enterprise environment by automating processes using tools
  • CLO 5: Select the best strategy to deploy software applications utilizing CI/CD pipelines
  • CLO 6: Apply the principles of DevOps to a software development project

Assessment  

This course involves occasional assignments, labs and a semester-long project. The assignments and labs offers a chance for students to reinforce understanding of material from class. The project has small student groups building a DevOps pipeline for an open-source project by applying techniques and tools learned in class.

Final course grades will be based on the following.

Activity Grade Details
Assignments and Labs 20%
  • There will be 3 assignments and 9 Labs.
  • All assignments and labs are indvidual.
Presentations 5%
  • Each Student will present a 15 min. presentation. Evaluation criteria:
    • Content Quality: 40%
    • Delivery: 20%
    • Time Management: 10%
    • Presentation Design: 10%
    • Q and A: 20%
Midterm 15%
  • There will be 1 Midterm.
  • The Midterm will be on Week 8.
  • The Midterm will cover the materials finished by Week 7.
Course Project 20%
  • Students will work in groups to complete the course project.
  • We will discuss group sizes and possible projects in class early in the semester.
  • The project is going to done on phases.
  • Project phases reports must be submitted by the due date.
  • The final submission should be a comprehsnice report that includes all phases.
  • Project grade will be based on the work done and on the quality of the submitted reports:
    • Phase One - Week 9
    • Phase Two - Week 12
    • Phase Three - Week 14
    • Project Presentation - Week 15
Final Exam 40% The Final Exam is a comprehensive exam covering the first 5 CLOs.

 

Tentative Schedule  





Chapter Topic Notes Assignments/Activities/Templates
1
DevOps Overview
Cloud Computing

DevOps Overview
DevOps In 5 Minutes
What is DevOps?
DevOps Principles: The Three Ways
5 Essential DevOps Pipeline Stages

Assignment 1

2
Version Control Systems
Version Control Systems Types of Version Control Systems
Version Control System - Learn Git, GitHub

Assignment 2
Lab 1 Version Control Systems
Lab 2 More Git Operations
Lab 3 GitHub

3
Continuous Integration
Continuous Integration Continuous Integration and Delivery              Jenkins - PHP CI/CD Pipeline with GitHub, Apache
Jenkins - Node JS and React Pipeline
How to start a CI pipeline with Actions

CI/CD deployment pipeline using Jenkins (Demo)
CI/CD Pipeline Using Jenkins For .NET Application Build a CI/CD pipeline with GitHub Actions

Assignment 3
Lab 4 Jenkins
Lab 5 Integration of Jenkins with Git


4
Containerization
Containerization DevOps with Docker (Containers for Beginners)
Getting Started with Docker
Cloud Computing and Containerization
Basics of Virtualization and Containerization
Docker Containers As Build Agents for Jenkins

Dockerfile
Lab 6 Docker
Lab 7 Docker Commands
5
Containers Orchestration
Containers Orchestration What is Container Orchestration?
What is Kubernetes ?

Lab 8 Installation of Kubernetes
Lab 9 Exploring KubeCTL

6
Configuration Management
Configuration Management 1

Configuration Management 2

What is Configuration Management?
What is Ansible?
What is Puppet?


7
Continuous Monitoring
Continuous Monitoring Setup Application Monitoring for Your AWS Workloads

8
DevOps Metrics
DevOps Metrics

DevOps Certifications Guide
DevOps DORA Metrics

9
DevSecOps
DevSecOps

Scaling DevSecOps at Comcast
DevSecOps explained in 8 Mins
What is DevSecOps?
10
Case Study
DevOps at Netflix

 

Course Resources  

Course Administration

  • Announcements will be posted on this web page and LMS. Check the news section regularly for updates.
  • We are using both this website and Moodle (LMS).

Textbook

There is no required textbook for this course. However, students who wish to read more about the topics that we discuss in class may consult the folowing books:
  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations .
  • The DevOps Adoption Playbook: A Guide to Adopting DevOps in a Multi-Speed IT Enterprise by Sanjeev Sharma .
  • Engineering DevOps: From Chaos to Continuous Improvement... and Beyond by Marc Hornbeek .
  • DevOps Automation Cookbook by Michael Duffy .
  • Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale by Jennifer Davis and Ryn Daniels .
  • Learning Devops by Mikael Krief .
  • A State Of DevOps Tools A Primer .

More Sources

Project

Simple DevOps Project
DevOps: CI/CD using git, Jenkins, Docker, Kubernetes
This word file has all the details about the course project.
 

General Resources  

Academic Integrity

Students are expected to know and abide by PSU's policies on academic integrity. Academic integrity violations will be prosecuted aggressively. If you are not sure what constitutes an academic integrity violation, please ask.