Skip to main content

Course Intro

Welcome to the DevOps course!

In this course, you will get a basic understanding of DevOps principles, tools, and practices. We will explore how to streamline software development and delivery processes, enabling faster and more reliable deployments.

Prerequisites

Before you start this course, you will need a GitHub account and Docker installed on your computer. We recommend that you have a separate GitHub account for your studies, in case you are using your existing account for professional work.

note

As a student you can get free GitHub Pro account by registering to the GitHub Student Developer Pack. You can also get free access to a wide range of developer tools, services, and educational resources.

If you have difficulties installing Docker locally on your system, you can use online development environments such as GitHub Codespaces or remote virtual machines to run Docker. These options can be discussed in more detail at the beginning of the course.

It is also recommended that you have the following knowledge:

  • Basic understanding of Git version control system.

    If you are new to Git, check out Git Basics or GitHub's Git Handbook.

  • Basic understanding of GitHub.

    Learn the basics of GitHub with GitHub Docs.

  • Familiarity with command-line tools and basic shell commands.

    If you are unfamiliar with the command line, you can start with Command line crash course.

  • Knowledge of programming fundamentals (e.g., writing and understanding scripts).

  • Knowledge of software development lifecycle concepts.

    If this is new to you, consider reading SDLC Overview.

These resources can help you if you are unfamiliar with any of the topics.

TOC

1. Introduction to DevOps

  • What is DevOps?
  • DevOps principles and benefits
  • DevOps for developers
  • Stages of a modern CI/CD pipeline
  • Tools used in each stage

2. Version Control & Collaboration (Git & Github)

  • Collaborating with GitHub
  • Forks, branches, and feature workflows
  • Pull request
  • Code reviews and best practices
  • Managing repository permissions

3. Containerization

  • Introduction to Docker
  • Why use Docker in DevOps?
  • Creating and managing containers
  • Building Docker images
  • Publishing Docker images
  • Docker Compose for multi-container apps

4. Automating CI Workflows

  • Understanding GitHub Actions
  • Workflow structure: triggers, jobs, and steps...
  • Writing your first GitHub Actions workflow
  • Building CI Pipelines
  • Running automated linting & tests
  • Debugging failed workflows

5. Deployment & Delivery (CD)

  • Automated Deployments with GitHub Actions
  • Building CI/CD pipelines
  • Deploying to cloud providers
  • Kubernetes

6. Monitoring & Security

  • Secrets management
  • Scanning for vulnerabilities
  • Why monitoring is important
  • Tools overview

7. Final Project: End-to-End CI/CD Pipeline