Class Curriculum

Introduction to DevOps

Duration: 24 weeks (2 sessions per week - Tuesday & Thursday at 18:30 - 20:00)

Course Outline

Weeks 1-2: Introduction to DevOps and Linux

  • Overview of DevOps Concepts and Agile Principles

  • Environments

  • Introduction to the Linux operating system

  • Basic Linux commands and file system navigation

  • Configuring Linux

Week 3: Shell Scripting

  • Introduction to shell scripting

  • Bash scripting fundamentals

  • Control structures, loops, I/O, and functions

  • Writing and executing shell scripts

Weeks 4-6: Python for DevOps

  • Introduction to Python programming language

  • Python data types, variables, and operators

  • Control structures, functions, and classes

  • Python modules and libraries for DevOps

  • Automation scripts using invoke

  • Building, Testing, and Releasing Python

Weeks 7-8: Git and GitHub

  • Introduction to version control systems

  • Git basics: init, add, commit, status, log, diff

  • Branching, merging, and conflict resolution

  • Working with GitHub and remote repositories

Weeks 7.5-10: GitHub Actions

  • Introduction to GitHub Actions

  • Creating custom GitHub Actions workflows

  • Implementing continuous integration and deployment (CI/CD)

  • Code reusability using actions and workflow, environments

  • Integrating GitHub Actions with external tools

Weeks 11-12: Continuous Integration with Jenkins

  • Introduction to continuous integration (CI)

  • Setting up and configuring Jenkins

  • Creating and managing Jenkins jobs

  • Integrating Jenkins with Git and GitHub

Week 13: Introduction to DocOps

  • Overview of DocOps methodology

  • Technical documentation best practices

  • Managing documentation with Git and GitHub

  • Integrating documentation into CI/CD workflows

Week 14: Mid-term project and Retrospective

  • Developing a CI Pipeline project

Weeks 15-16: Docker and Containerization

  • Introduction to Docker and Containerization

  • Docker basics: images, containers, registries

  • Creating and managing Dockerfiles

  • Docker Compose and multi-container applications

Weeks 17-18: Kubernetes and Container Orchestration

  • Introduction to Kubernetes

  • Kubernetes architecture and components

  • Deploying and managing applications with Kubernetes

  • Kubernetes services, deployments, and pods

Weeks 19-20: Cloud Technologies - Azure

  • Introduction to cloud computing

  • Overview of major cloud providers (AWS, Azure, GCP)

  • Key cloud services and concepts

  • Deploying applications and infrastructure to the cloud

Weeks 21-23: Infrastructure as Code with Terraform and Ansible

  • Introduction to infrastructure as code (IaC) and configuration management

  • Terraform basics: providers, resources, modules

  • Writing and deploying Terraform configurations

  • Ansible basics: inventory, playbooks, roles, modules

  • Writing and executing Ansible playbooks

Weeks 24: Final Project and Course Wrap-up

  • Developing a comprehensive DevOps project using the skills acquired in the course

  • Project presentations and peer review

  • Course review and future learning resources

  • Q&A and course completion

Assessment

  • Weekly quizzes and assignments for each subject

  • Mid-term project (Week 13)

  • Final project (Week 24)