Skip to content

About

Hands-on DevOps projects from the roadmap.sh DevOps track, from shell scripts to service discovery, built and documented in one repo.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

🛠️ DevOps Roadmap Projects

Hands-on DevOps projects from the roadmap.sh DevOps track — from shell scripts to service discovery — plus a Kubernetes, GitOps & CI/CD track, built and documented in one monorepo.

Projects Beginner Intermediate Advanced Kubernetes track

📖 About

This repository tracks my journey through 44 practical DevOps projects: the 26 from the roadmap.sh DevOps track (Linux, Bash, networking, CI/CD, containers, Infrastructure as Code, configuration management, security and observability), plus an 18-project Kubernetes, GitOps & CI/CD track (Kubernetes, Helm, Argo CD, progressive delivery, policy as code, Jenkins and multi-cluster platforms).

Each project lives in its own folder with its own README.md documenting the goal, stack, how to run it, and what I learned.

🗂️ Repository structure

devops-roadmap-projects/
├── beginner/        # CLI tools, SSH, Nginx, DNS, systemd, Docker, AWS basics
│                    # + kind, kubectl, manifests, Helm, CI pipeline, first Argo CD app
├── intermediate/    # Ansible, Terraform, GitHub Actions, Compose, backups, security
│                    # + Kustomize envs, CI→GitOps, Gateway API/TLS, secrets, app-of-apps, observability, autoscaling, Jenkins CI
└── advanced/        # Blue-green, Prometheus/Grafana, multi-service, Consul
                     # + Argo Rollouts, Kyverno/cosign, Terraform+GitOps, multi-cluster, Kubernetes the Hard Way

📌 Projects

🟢 Beginner

# Project Topic Description Status Brief
01 Server Performance Stats CLI Write a script to analyse basic server performance stats. ✅ brief
02 Log Archive Tool CLI Build a tool to archive logs from the CLI with the date and time. ✅ brief
03 Nginx Log Analyser CLI Write a simple tool to analyze logs from the command line. ✅ brief
04 GitHub Pages Deployment CI/CD Write a simple GitHub Actions workflow to deploy a static website to GitHub Pages. ✅ brief
05 SSH Remote Server Setup SSH Set up a basic remote Linux server and configure it to allow SSH. 🟨 brief
06 Static Site Server Nginx Set up a basic Linux server and configure it to serve a static site. 🟨 brief
07 Basic DNS Setup DNS Purchase a custom domain and set up basic DNS records. 🟨 brief
08 Simple Monitoring Monitoring Set up a basic monitoring dashboard using Netdata. ✅ brief
09 Dummy Systemd Service Systemd Create a long-running systemd service that logs to a file. ✅ brief
10 Basic Dockerfile Docker Build a basic Dockerfile to create a Docker image. ✅ brief
11 EC2 Instance AWS Create an EC2 instance on AWS and connect to it using SSH. 🟨 brief

🟡 Intermediate

# Project Topic Description Status Brief
17 Pomodoro Timer Frameworks Create a pomodoro tracker application for productivity. ⬜ brief
18 Configuration Management Ansible Write an Ansible playbook to configure a Linux server. ⬜ brief
19 IaC on DigitalOcean Terraform Write Terraform code to create a Droplet on DigitalOcean. ⬜ brief
20 Node.js Service Deployment CI/CD Use GitHub Actions to deploy a Node.js service to a remote server. ⬜ brief
21 Dockerized Service Docker Use GitHub Actions to deploy a Dockerized Node.js service. ⬜ brief
22 Multi-Container Application Docker Compose Use Docker Compose to run a multi-container application. ⬜ brief
23 Automated DB Backups Backups Set up a scheduled workflow to back up a database every 12 hours. ⬜ brief
24 Bastion Host Networking Set up a bastion host for managing access to private infrastructure. ⬜ brief
25 File Integrity Checker Security Verify the integrity of application log files to detect tampering. ⬜ brief
26 Linux Server Setup Linux Learn to set up and secure a Linux server from scratch. 🟨 brief
27 VPN Server Setup VPN Set up a WireGuard or OpenVPN server to secure remote access. ⬜ brief

🔴 Advanced

# Project Topic Description Status Brief
36 Blue-Green Deployment DevOps Set up a blue-green deployment strategy for your application. ⬜ brief
37 Prometheus and Grafana Monitoring Set up monitoring using Prometheus and visualize metrics in Grafana. ⬜ brief
38 Multi-Service Application Docker Set up an optimized multi-service Docker implementation. ⬜ brief
39 Service Discovery DevOps Set up service discovery with dummy services and Consul. ⬜ brief

☸️ Kubernetes, GitOps & CI/CD track

A follow-up track (projects 12–16, 28–35 and 40–44) going from a local cluster to a multi-cluster GitOps platform, including CI with both GitHub Actions (15) and Jenkins (35). roadmap.sh has no project list for this, so these briefs are my own, based on current practice and the official docs. They live in the same beginner/, intermediate/ and advanced/ folders and use the same README format. Kubernetes projects through project 41 are designed to run on a local kind cluster; cloud-based project 42 may incur charges.

🟢 Beginner

# Project Topic Description Status Reference
12 Local Kubernetes Cluster Kubernetes Run a local multi-node cluster with kind and learn the kubectl basics. ✅ docs
13 Deploy an App with Manifests Kubernetes Deploy a real API + database with Deployments, Services, ConfigMaps, Secrets and probes. ⬜ docs
14 Package an App with Helm Helm Turn the manifests from project 13 into a reusable Helm chart with per-environment values. ⬜ docs
15 CI Pipeline: Build, Test, Scan, Push CI/CD A GitHub Actions pipeline that tests the app, builds an image, scans it and pushes it to GHCR. ⬜ docs
16 First GitOps Deployment with Argo CD GitOps Install Argo CD and let it deploy your app from Git — no more kubectl apply. ⬜ docs

🟡 Intermediate

# Project Topic Description Status Reference
28 Multi-Environment GitOps with Kustomize GitOps One base, three overlays (dev/staging/prod) and promotion by pull request. ⬜ docs
29 Full CI → GitOps CD Loop CI/CD Merge code → image built → config repo updated automatically → Argo CD deploys. ⬜ docs
30 Gateway API, TLS and DNS on Kubernetes Networking Expose apps with the Gateway API and automatic HTTPS certificates from cert-manager. ⬜ docs
31 GitOps Secrets Management Security Keep secrets out of Git (in plaintext) with Sealed Secrets or External Secrets Operator. ⬜ docs
32 App of Apps and ApplicationSets GitOps Bootstrap an entire cluster — add-ons and apps — from one root Application. ⬜ docs
33 Kubernetes Observability Stack Monitoring Metrics, logs and alerts for the cluster and your app — installed via GitOps. ⬜ docs
34 Autoscaling and Resilience Kubernetes Make the app scale with load and survive failures — then prove it with load tests. ⬜ docs
35 Jenkins CI Pipeline CI/CD Rebuild project 15's test, scan and image-publish pipeline in Jenkins, then compare it with GitHub Actions. ⬜ docs

🔴 Advanced

# Project Topic Description Status Reference
40 Progressive Delivery with Argo Rollouts GitOps Canary releases that analyse Prometheus metrics and roll back automatically. ⬜ docs
41 Policy as Code and Supply-Chain Security Security Sign images in CI, generate SBOMs and let Kyverno block anything unsigned or unsafe. ⬜ docs
42 Production Cluster: Terraform + GitOps Bootstrap IaC Provision a managed Kubernetes cluster with Terraform and hand it to Argo CD on day one. ⬜ docs
43 Multi-Cluster GitOps Platform Platform One Argo CD managing several clusters with ApplicationSets, RBAC and sync windows. ⬜ docs
44 Kubernetes the Hard Way Kubernetes Bootstrap a cluster by hand — certificates, etcd, control plane, kubelets — to truly understand it. ⬜ docs

Legend: ⬜ Not started · 🟨 Built — needs your server / domain / cloud account to run · ✅ Done

🧰 Tech covered

Bash Linux SSH Nginx DNS systemd Docker Docker Compose AWS EC2 DigitalOcean Terraform Ansible GitHub Actions WireGuard OpenVPN Netdata Prometheus Grafana Consul

Kubernetes, GitOps & CI/CD track

Kubernetes kind kubectl Helm Kustomize Argo CD ApplicationSets Argo Rollouts Gateway API cert-manager Sealed Secrets External Secrets kube-prometheus-stack Loki HPA k6 Jenkins Trivy Kyverno cosign Terraform DOKS / EKS

🔁 Workflow

  1. Pick the next project in the table.
  2. Work in its folder on a branch: git checkout -b feat/<project-name>.
  3. Fill in its README (goal, stack, how to run, lessons learned).
  4. Update the status in this table and merge.

⚠️ Security

Never commit secrets, keys, .tfstate or .env files — they are ignored via .gitignore. Use environment variables or a secrets manager instead.

👤 Author

Mohammed Saouab — @msaouab

📄 License

All rights reserved to Mohamed Saouab MIT

About

Hands-on DevOps projects from the roadmap.sh DevOps track, from shell scripts to service discovery, built and documented in one repo.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages