Skip to content

DevOps Learning Labs

Welcome to DevOps Learning Labs β€” a comprehensive, structured learning journey through the entire DevOps and Kubernetes ecosystem.

DevOps Games

https://devops.games/

K8s Games

https://k8sgames.com/

🎯 What This Project Is

A practical, open-source, teachable learning environment that takes you from Docker basics all the way through multi-region Kubernetes deployments with GitOps automation, observability, and advanced patterns.

πŸ“‹ Learning Path (Standard Track: ~1-2 weeks)

Phase 1: Containerization (Days 1-2)

  • Theory: DevOps fundamentals, Docker concepts
  • Labs: 00-01 (Docker basics, image building, pushing to registry)

Phase 2: Kubernetes Fundamentals (Days 3-4)

  • Theory: K8s architecture, workloads, networking
  • Labs: 02-05 (Pods, Deployments, Services, ConfigMaps, Secrets)

Phase 3: Helm & Packaging (Days 5-6)

  • Theory: Helm charts, templating, dependencies
  • Labs: 06 (Create and deploy Helm charts)

Phase 4: Multi-Region & Sidecars (Days 7-8)

  • Theory: Advanced patterns, multi-cluster architectures
  • Labs: 07-08 (2 Minikube clusters, inter-cluster networking, sidecars)

Phase 5: GitOps & Observability (Days 9-10)

  • Theory: GitOps principles, Flux, observability
  • Labs: 09-10 (Flux deployment, Prometheus, Grafana, Loki)

Phase 6: Troubleshooting & Integration (Days 11+)

  • Theory: Advanced debugging, security, performance
  • Lab: 11 (Hands-on troubleshooting scenarios)

πŸ› οΈ Technology Stack (All Open-Source)

Component Tool Why
Local Kubernetes Minikube + kind Lightweight, multi-cluster capable
Container Runtime Docker CE Industry standard
K8s Package Manager Helm De facto standard for K8s deployments
GitOps Automation Flux CD CNCF project, enterprise-ready
Metrics Prometheus Time-series DB, Kubernetes-native
Dashboards Grafana Open-source, powerful visualization
Logging Loki Lightweight log aggregation
Tracing Jaeger (optional) Distributed tracing
Container Registry Docker Hub / ghcr.io Free image hosting
K8s UI (Built-in) Minikube Dashboard Visual pod/service management
K8s Terminal UI k9s (optional) Real-time cluster monitoring
K8s IDE Lens (optional) Enterprise visual IDE for K8s

πŸŽ“Interview & Self-Assessment

πŸ”— Resources & References

  • Kubernetes Official Docs: https://kubernetes.io/docs/
  • Helm Documentation: https://helm.sh/docs/
  • Flux CD Documentation: https://fluxcd.io/flux/
  • Prometheus: https://prometheus.io/
  • Grafana: https://grafana.com/

First Time? β†’ Start with Setup Guide
Want Theory? β†’ Read Theory Modules
Ready to Code? β†’ Jump to Lab 00
Preparing for Interview? β†’ Check Interview Prep

updated plan

Blog Angles by Week

Week Item Angle
1 Real 3-node Standard GKE cluster (not Autopilot) "What Autopilot hides from you" β€” node pool sizing, machine types, real kubectl describe node output
1 GKE auth via Workload Identity vs static kubeconfig Practical writeup of the auth model most tutorials skip
2 Live HPA event under load (hey/k6) Capture before/during/after pod counts + latency β€” hard to make interesting on a toy cluster, easy on real infra
2 Helm chart templating decisions "Every values.yaml choice, defended" β€” good technical-depth post
3 Bad image tag pushed through GitLab CI pipeline "Here's what actually breaks" β€” rollout failure + automatic rollback, the stuff generic tutorials skip
3 GitLab CI β†’ GKE deploy pipeline Reconciliation model explained in your own words (Flux vs GitLab, same underlying idea)
4 Cost observability β€” GCP billing export β†’ Grafana panel "I hooked up cost monitoring to my own dashboard" β€” not on the original plan, differentiated content
4 Live diagnosis of a deliberately broken deployment Real troubleshooting narrative, not a staged tutorial

Here's a project that threads every concept from your plan into one continuous build β€” not isolated labs, but a single app you keep extending, so each new concept has to interact with everything before it (the way it actually would in a real role).

Project: "Orders API" β€” a small service you ship through the full real-world path

The shape of it: a tiny HTTP API (2-3 endpoints β€” could literally be /orders, /orders/:id, /health) that you deploy, expose, scale, break, fix, and monitor β€” on your real GKE cluster, through your real GitLab pipeline.

Stage What you add Concepts it forces you to actually use
1 Containerize it, deploy raw manifests to GKE Docker, Pod, Deployment, ClusterIP Service
2 Expose it properly NodePort β†’ LoadBalancer β†’ Ingress w/ a real hostname, TLS
3 Externalize config ConfigMap + Secret (e.g. a fake DB connection string)
4 Package it Helm chart β€” templatize everything above
5 Automate it GitLab CI/CD pipeline: build β†’ push to Artifact Registry β†’ Helm deploy to GKE on every push
6 Make it scale Add a CPU-heavy endpoint, load-test it, watch HPA react in real time
7 Make it observable Prometheus scraping custom metrics, Grafana dashboard, alert rule
8 Make it break (on purpose) Bad image tag through the pipeline β†’ failed rollout β†’ automatic rollback
9 Make it accountable GCP billing export β†’ cost panel in the same Grafana instance
10 Prove you own it Kill a pod mid-traffic, diagnose a deliberately misconfigured probe, explain the entire request path from your own memory