Learn the DevOps methodologies as closely as possible to real-world practices.
No fancy "learning environments", no endless "learning paths", no "hello world" labs that leave you with nothing at hands. Neither about, nor near.
Here you'll get real-world experience, work on outstanding projects as if you were already a DevOps engineer!
- 💯 High quality and updated tutorials with exercises and job-interview questions!
- 🧩 Dive into hands-on projects that paint the big picture of DevOps, with each project building upon the last to form your projects portfolio.
- 💪 Join a community of learners, help each other, get feedback from other students and professionals.
- 🏧 Free.
Getting started • Studying Guide • Contribution and contact
First, please complete the course Onboarding tutorial.
In order to be a good DevOps engineer, having a solid base of a programming language is essential. Python is the language used throughout our course, we'll use it to write automations, interact with Amazon Web Services (AWS), and build simple API backends.
If you are not already familiar with Python, we strongly encourage you to start practicing as early as possible, in parallel to progressing through the below studying table.
Below you'll find a content table created from years of experience teaching this material.
The content doesn't cover ALL DevOps topics. Instead, it provides a very solid baseline, equips you with the foundation needed to continue learning independently and confidently. We emphasize strong troubleshooting skills and production-oriented thinking.
Each tutorial is designed to be completed in approximately 1-1.5 hours of lesson time, followed by around 1-3 hours of exercises and job interview questions.
After progressing through several tutorials, there is a time-consuming project.
You are highly encouraged to complete the tutorials and projects by order, as each is built upon the preceding ones.
# | Topic | Tutorial | Resources | Project | ||
---|---|---|---|---|---|---|
1 | Intro | What is DevOps? | ||||
2 | Linux and Bash | Linux intro | ||||
3 | Linux and Bash | Linux file management | ||||
4 | Linux and Bash | IO redirection | ||||
5 | Linux and Bash | Processes | Linux mini project | |||
6 | Linux and Bash | Environment variables | ||||
7 | Linux and Bash | Package management | ||||
8 | Linux and Bash | Bash and other shells | ||||
9 | Linux and Bash | Bash commands techniques | ||||
10 | Linux and Bash | Bash variables | ||||
11 | Linux and Bash | Bash conditional statements | ||||
12 | Linux and Bash | Bash loops brief | Bash project | |||
13 | Networking | The OSI model | ||||
14 | Networking | Linux sockets | ||||
15 | Networking | Computer networks | ||||
16 | Networking | HTTP protocol | ||||
17 | Networking | Networks security | ||||
18 | Networking | SSH protocol | ||||
19 | Cloud (AWS) | Intro to cloud computing | Networking project | |||
20 | Cloud (AWS) | AWS Virtual Private Cloud (VPC) | ||||
21 | Networking | DNS protocol | ||||
22 | Cloud (AWS) | AWS DNS service - Route53 | ||||
📍 | Milestone | Simple app deployment | ||||
23 | Version control | Git basics | ||||
24 | Version control | Git branches | ||||
25 | Version control | Git remotes | Git project | |||
26 | Version control | Git workflows (slides only) | ||||
📍 | Milestone | GitHub Actions and the simple CI/CD pipeline | ||||
27 | Webservers | Nginx webserver | ||||
28 | IaC | Ansible brief | ||||
📍 | Milestone | Configuration as code with Ansible | ||||
🛃 The boundary for required knowledge in Python | ||||||
29 | Monitoring | Grafana and Prometheus | The PolybotService: Python project + Basic CI/CD project | |||
30 | Containers | Intro to containers | ||||
31 | Containers | Docker containers | ||||
32 | Containers | Docker images | ||||
33 | Containers | Docker networks | ||||
34 | Containers | Docker volumes | ||||
35 | Containers | Docker compose | ||||
📍 | Milestone | Containerize an app and run a Compose project | ||||
36 | Cloud (AWS) | Elastic Cloud Compute (EC2) and Elastic Block Storage (EBS) | ||||
37 | Cloud (AWS) | Simple Storage Service (S3) | The PolybotService: Docker project | |||
38 | Cloud (AWS) | DynamoDB | ||||
39 | Cloud (AWS) | Identity and Access Management (IAM) | ||||
40 | Cloud (AWS) | Elastic Load Balancer (ELB) and Auto Scaling Group (ASG) | ||||
📍 | Milestone | High availability (HA) and Autoscaling | ||||
41 | Cloud (AWS) | Lambda functions | ||||
42 | Cloud (AWS) | Simple Queue Service (SQS) and Simple Notifications Service (SNS) | The PolybotService: AWS project | |||
43 | IaC | Terraform basics | ||||
44 | IaC | Terraform variables | ||||
45 | IaC | Terraform modules | ||||
📍 | Milestone | Disaster recovery plan using IaC techniques | The PolybotService: Terraform project | |||
46 | Orchestration (K8S) | Kubernetes setup and intro | ||||
47 | Orchestration (K8S) | Kubernetes core objects | ||||
48 | Orchestration (K8S) | ArgoCD | ||||
49 | CI/CD | Jenkins setup and intro | ||||
50 | CI/CD | Build and deploy pipelines | ||||
51 | CI/CD | Test pipeline | ||||
52 | CI/CD | Nexus artifacts management | ||||
📍 | Milestone | Full CI/CD workflow | ||||
53 | Orchestration (K8S) | Kubernetes pod design | ||||
54 | Orchestration (K8S) | Kubernetes Statefulset and storage | ||||
55 | Orchestration (K8S) | Helm | ||||
56 | Orchestration (K8S) | Kubernetes cluster observability | ||||
57 | Orchestration (K8S) | AWS Elastic Kubernetes Service (EKS) | ||||
58 | Orchestration (K8S) | Kubernetes networking | The PolybotService: Kubernetes project | |||
59 | Cloud (AWS) | Relational Databases (RDS) | ||||
60 | Monitoring | Elasticsearch and Kibana |
If you have ideas, improvements, or find any issues, feel free to open an issue or submit a pull request.
Looking for innovative DevOps content and training?