Class Curriculum
Introduction to DevOps
Duration: 72 classes - 36 weeks (2 sessions per week)
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 0: DevOps Concepts and Tools
Week 1: Introduction to DevOps
Class overview, lectors introduction, and expectations
Overview of DevOps Concepts and Agile Principles
DevOps Tools and Technologies
Environments
Open Source and Community
Module 1: Introduction to Linux
Weeks 2-6: 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 7-8: 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 9-10: 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 11-14: 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 15: 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 16: 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 17-18: 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 19: 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 20-22: 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 23-25: 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 26-28: 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 29-30: 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 30-35: 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 36: 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