🎉 DevOps Interview Prep Bundle is live — 1000+ Q&A across 20 topicsGet it →
All Articles

How to Build a 90-Day DevOps Learning Plan That Actually Works

Most DevOps learning plans fail because they're too theoretical. Here's a practical 90-day plan focused on building real projects and getting hands-on practice from day one.

DevOpsBoysJun 3, 20264 min read
Share:Tweet

You want to learn DevOps in 90 days. You search for a roadmap, find a list of 50 tools, get overwhelmed, and quit after week 2.

Here's a plan that actually works — focused on building things, not just watching courses.


The Core Principle

Build something every week. Not just watch videos. Not just read docs. Build.

Every week ends with something you can show — a running cluster, a working pipeline, a deployed app. This keeps you motivated and builds portfolio projects simultaneously.


What You'll Have After 90 Days

  • ✅ Docker: containers for 3 different app types
  • ✅ Kubernetes: cluster with 5 deployed apps, autoscaling, monitoring
  • ✅ CI/CD: GitHub Actions pipeline deploying to K8s
  • ✅ IaC: EKS cluster provisioned with Terraform
  • ✅ Monitoring: Prometheus + Grafana + AlertManager stack
  • ✅ 2 cloud certifications (AWS Cloud Practitioner + CKA)

Month 1: Foundation (Linux + Docker + Git)

Week 1: Linux CLI Fundamentals

Learn:

  • File system navigation, permissions, processes
  • Text manipulation: grep, awk, sed, cut
  • Shell scripting basics

Build: Write a bash script that monitors disk usage and sends an alert when > 80%

bash
#!/bin/bash
THRESHOLD=80
USAGE=$(df -h / | awk 'NR==2{print $5}' | tr -d '%')
if [ $USAGE -gt $THRESHOLD ]; then
  echo "Disk usage critical: ${USAGE}% on $(hostname)" | mail -s "Disk Alert" you@example.com
fi

Resource: Linux for DevOps on KodeKloud — free tier has bash scripting labs

Week 2: Docker Fundamentals

Learn: Dockerfile, images, containers, volumes, networking, Docker Compose

Build: Dockerize 3 apps:

  1. Node.js Express API
  2. Python Flask app with PostgreSQL (docker-compose)
  3. Static website served by Nginx
dockerfile
# Week 2 project: Node.js app
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
USER node
EXPOSE 3000
CMD ["node", "server.js"]

Week 3: Git + GitHub

Learn: Branching strategies, PRs, merge vs rebase, GitFlow vs trunk-based

Build: Set up a GitHub repo for all your DevOps projects. Practice:

  • Create feature branches
  • Write meaningful commit messages
  • Set up branch protection rules

Week 4: Cloud Basics (AWS)

Learn: EC2, S3, VPC basics, IAM

Build: Deploy your Dockerized app on an EC2 instance. Set up S3 bucket for static files.

Milestone: Get AWS Cloud Practitioner certified — 40 hours of study, $100, foundational.


Month 2: Core DevOps (Kubernetes + CI/CD + IaC)

Week 5: Kubernetes Fundamentals

Learn: Pods, Deployments, Services, ConfigMaps, Secrets, Namespaces

Build: Deploy your Docker app to Kubernetes locally (minikube or kind)

bash
# Week 5: Your first Kubernetes app
kubectl create deployment my-app --image=your-dockerhub/my-app:v1
kubectl expose deployment my-app --port=80 --type=LoadBalancer
kubectl scale deployment my-app --replicas=3

Week 6: Kubernetes Intermediate

Learn: Ingress, PersistentVolumes, RBAC, HPA, resource limits

Build: Full Kubernetes deployment with:

  • Nginx Ingress Controller
  • TLS via cert-manager
  • HPA configured
  • Resource limits on all pods

Week 7: GitHub Actions CI/CD

Learn: Workflow syntax, triggers, jobs, secrets, matrix builds

Build: Pipeline that:

  1. Builds Docker image on every PR
  2. Runs tests
  3. Pushes to Docker Hub on merge to main
  4. Deploys to Kubernetes automatically
yaml
name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build and push
        run: |
          docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/myapp:${{ github.sha }} .
          docker push ${{ secrets.DOCKERHUB_USERNAME }}/myapp:${{ github.sha }}
      - name: Deploy to K8s
        run: kubectl set image deployment/myapp app=myapp:${{ github.sha }}

Week 8: Terraform

Learn: Providers, resources, variables, outputs, state, modules

Build: Terraform code that creates:

  • VPC with public/private subnets
  • EKS cluster
  • S3 bucket + DynamoDB for state backend

Month 3: Advanced (Monitoring + Security + Real Projects)

Week 9: Monitoring Stack

Build: Prometheus + Grafana + AlertManager on Kubernetes

bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring --create-namespace

Create dashboards for your apps. Set up at least 3 alerts.

Week 10: ArgoCD + GitOps

Build: GitOps pipeline where:

  • Git repo is source of truth
  • ArgoCD syncs changes automatically
  • Rollback = git revert

Week 11: Security Basics

Learn: K8s RBAC, Network Policies, Secrets management, Trivy scanning

Build: Add security scanning to your CI pipeline:

yaml
- name: Scan image
  run: |
    trivy image --exit-code 1 --severity CRITICAL myapp:latest

Week 12: Capstone Project

Build a complete DevOps platform:

  • Terraform provisions EKS + RDS + S3
  • GitHub Actions builds and tests
  • ArgoCD deploys
  • Prometheus monitors
  • Alerts fire to Slack

This is your portfolio piece.


Daily Schedule (1.5 hours/day)

45 min: Hands-on lab (KodeKloud, Katacoda, or your own cluster)
30 min: Documentation reading or course video
15 min: Write notes / update GitHub README

Weekends: 3-hour project sessions to build weekly deliverable.


Tools You'll Need

ToolCostUsed For
KodeKloudFree-₹499/moHands-on labs
Docker DesktopFreeLocal containers
minikube/kindFreeLocal Kubernetes
GitHubFreeCode + Actions
AWS free tierFree (limits)Cloud practice
Lens IDEFreeK8s UI

The 90-day plan works because it's output-focused. By the end, you have a portfolio of real projects, hands-on skills, and two certifications. That's what gets you hired — not just "I completed 10 courses."

Start your hands-on DevOps journey at KodeKloud — the playground model means you practice on real infrastructure, not simulations.

🔧

Today I Fixed

Short real fixes from production — posted daily

Browse fixes
Newsletter

Stay ahead of the curve

Get the latest DevOps, Kubernetes, AWS, and AI/ML guides delivered straight to your inbox. No spam — just practical engineering content.

Related Articles

Comments