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)