Class Curriculum
Introduction to DevOps
Duration: 32 weeks (2 sessions per week - Tuesday & Thursday at 18:30 - 20:00)
Learning Objectives
Understand the fundamentals of DevOps, working in team, and associated tools.
Gain hands-on experience with Linux, programming, containers, cloud technologies, and CI/CD pipelines.
Develop a comprehensive DevOps project by integrating learned concepts and tools.
Module 1: Introduction to DevOps and Linux
Weeks 1-2: Introduction to DevOps and Linux
Learning Objectives:
Define DevOps and understand its principles and practices.
Gain foundational knowledge of Linux and its role in DevOps environments.
Content:
Overview of DevOps Concepts and Agile Principles
Environments: Development, Testing, Acceptance,and Production
Introduction to the Linux operating system
Basic Linux commands and file system navigation
Configuring Linux: permissions, users, and environment variables
Practical Examples:
Setting up a basic Linux environment on a virtual machine.
Hands-on with basic Linux commands (ls, cd, cp, mv, etc.).
Weeks 3-4: Shell Scripting
Learning Objectives:
Automate repetitive tasks using shell scripting.
Write and debug Bash scripts with control structures and functions.
Content:
Introduction to shell scripting
Bash scripting fundamentals
Control structures, loops, I/O, and functions
Writing and executing shell scripts
Practical Examples:
Automate a task to create and organize project directories.
Create a script to monitor disk usage and send alerts.
Weeks 5: Advanced Linux and Networking Basics
Learning Objectives:
Utilize advanced Linux commands for system administration.
Understand basic networking concepts and configure network settings.
Content:
Advanced Linux commands and scripting techniques
Linux system administration essentials
Introduction to networking concepts
Configuring network settings in Linux
Basic troubleshooting and network tools
Practical Examples:
Write a script to manage system logs.
Set up and troubleshoot a basic local network.
Module 2: Introduction to Programming: Python and Git
Weeks 6-8: Python for DevOps
Learning Objectives:
Understand Python basics and its application in DevOps workflows.
Develop scripts to automate tasks and processes.
Content:
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
Practical Examples:
Create a Python script to parse logs, scrape data,and generate reports.
Automate deployment tasks using Python scripts.
Weeks 9-10: Git and GitHub
Learning Objectives:
Master version control with Git and collaborate using GitHub.
Resolve conflicts and maintain a clean commit history.
Content:
Introduction to version control systems
Git basics: init, add, commit, status, log, diff
Branching, merging, and conflict resolution
Working with GitHub and remote repositories
Practical Examples:
Create and manage a project repository.
Collaborate with peers using Git branches.
Week 11: Introduction to DocOps
Learning Objectives:
Document processes effectively and integrate documentation into CI/CD workflows.
Content:
Overview of DocOps methodology
Technical documentation best practices
Managing documentation with Git and GitHub
Integrating documentation into CI/CD workflows
Practical Examples:
Create project documentation using Markdown.
Automate the deployment of documentation updates.
Weeks 12-14: GitHub Actions
Learning Objectives:
Automate CI/CD pipelines using GitHub Actions.
Integrate external tools into workflows for enhanced automation.
Content:
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
Practical Examples:
Create a GitHub Actions workflow for linting and testing code.
Deploy a simple application using GitHub Actions.
Week 15: Mid-term Project and Retrospective
Content:
Develop a CI Pipeline project using learned tools.
Reflect on challenges, successes, and areas for improvement.
Module 3: Containers: Docker and Kubernetes
Weeks 16-18: Docker and Containerization
Learning Objectives:
Learn the fundamentals of containerization and Docker.
Build and manage Docker-based applications.
Content:
Introduction to Docker and Containerization
Docker basics: images, containers, registries
Creating and managing Dockerfiles
Docker Compose and multi-container applications
Practical Examples:
Build and deploy a simple web application in a Docker container.
Create a Docker Compose file for a multi-container setup.
Weeks 19-22: Kubernetes and Container Orchestration
Learning Objectives:
Deploy and manage applications at scale using Kubernetes.
Understand Kubernetes architecture and resource management.
Content:
Introduction to Kubernetes
Kubernetes architecture and components
Deploying and managing applications with Kubernetes
Kubernetes services, deployments, and pods
Scaling, monitoring, and troubleshooting Kubernetes applications
Practical Examples:
Deploy a web application to a Kubernetes cluster.
Monitor and scale a Kubernetes deployment.
Weeks 23-24: Helm and Kubernetes Operators
Learning Objectives:
Simplify Kubernetes deployments using Helm and Operators.
Content:
Introduction to Helm
Creating and managing Helm charts
Helm templating and package management
Introduction to Kubernetes Operators
Practical Examples:
Package an application using Helm.
Use an Operator to manage a Kubernetes resource.
Module 4: Cloud Technologies
Weeks 25-26: Cloud Technologies
Learning Objectives:
Understand cloud computing basics and major cloud providers.
Content:
Introduction to cloud computing
Overview of major cloud providers (AWS, Azure, GCP)
Key cloud services and concepts
Deploying applications and infrastructure to the cloud
Practical Examples:
Deploy an application to AWS using EC2.
Use Azure Functions to create a simple cloud function.
Weeks 27-31: Infrastructure as Code with Terraform and Ansible
Learning Objectives:
Automate infrastructure deployment using Terraform and Ansible.
Content:
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
Practical Examples:
Provision infrastructure using Terraform and configure it with Ansible.
Write a playbook to install and configure an application.
Week 32: Advanced Cloud and Final Project
Content:
Advanced cloud services and automation
Introduction to cloud security and monitoring
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