Skip to content

toby2bee/DevOps-Home-Lab-2026

 
 

Repository files navigation

🎮 Kubernetes Tutorial: Build Production Apps from Scratch

Learn DevOps by building a real application: Docker → Kubernetes → Monitoring → GitOps → Global Deployment. Perfect for career switchers and beginners.

This project is part of the Zee DevOps Learning Path
Start: Quick Wins → Core: Beginner-DevOps-Labs → Reference: Troubleshooting Toolkit → Portfolio: Weekend Projects → Cloud: Cloud-DevOps-Projects

Kubernetes Docker Prometheus ArgoCD


🎯 What You'll Learn

By completing this tutorial, you'll master:

  • Container orchestration with Kubernetes (the same tech Netflix uses)
  • Production monitoring with Prometheus and Grafana dashboards
  • Automated deployments using GitOps principles
  • Global scaling with CDN and load balancing
  • Real troubleshooting skills that DevOps engineers use daily

Career Impact: These skills are in high demand. DevOps engineers with Kubernetes experience earn 20-30% more than those without it.

📈 Learning Path Overview

Learning Journey Flow

Follow this step-by-step progression from beginner developer to production-ready DevOps engineer


🌟 Live Demo

Humor Memory Game Interface

Experience the Humor Memory Game: A DevOps Learning Adventure! - A web-based memory game featuring a 4x4 grid of cards, game statistics, and navigation tabs for Game, Leaderboard, My Stats, and About.


🚀 Quick Start Guide

Option 1: Complete Learning Path (Recommended for Beginners)

# 1. Install prerequisites
# Follow the guide: docs/01-prereqs.md

# 2. Follow step-by-step guides
# Start with: docs/01-prereqs.md
# Then follow: docs/02-compose.md → ... → docs/07-global.md

Option 2: Fast Deploy (For Experienced Users)

# Deploy everything at once
git clone https://github.com/Osomudeya/DevOps-Home-Lab-2025.git
cd DevOps-Home-Lab-2025
make deploy-all

# Verify deployment
make verify

Option 3: Local Development Only

# Quick local setup with Docker Compose
docker-compose up -d
curl http://localhost:3001/api/health

🎯 What You'll Build

Technical Architecture

Complete production-grade infrastructure with monitoring, security, and global scaling

🏗️ Production Application Stack

  • 🎮 Humor Memory Game - Interactive web application with leaderboards
  • 🔄 4 Microservices - Frontend, Backend, PostgreSQL, Redis
  • 🌐 Global CDN - Cloudflare edge caching and DDoS protection
  • 📊 Full Observability - Metrics, logs, traces, and custom dashboards
  • 🔒 Enterprise Security - Network policies, security contexts, auto-scaling

🛠️ Technology Stack

Layer Technology Purpose
Application Node.js + Express, Vanilla JS Game logic and UI
Database PostgreSQL 15, Redis 7 Persistent data and caching
Container Docker, Multi-stage builds Application packaging
Orchestration Kubernetes (k3d), NGINX Ingress Container management
Monitoring Prometheus, Grafana Metrics and visualization
GitOps ArgoCD, Git-based workflows Automated deployments
Security Network Policies, Security Contexts Defense-in-depth
Global Access Cloudflare CDN + Tunnels Worldwide distribution

📋 Learning Milestones

Milestone What You'll Learn Time Difficulty
0. Prerequisites Development environment setup 15-30 min 🟢 Beginner
1. Docker Compose Multi-container application 30-45 min 🟢 Beginner
2. Kubernetes Basics Production app deployment 45-60 min 🟡 Intermediate
3. Production Ingress Internet access and networking 30-45 min 🟡 Intermediate
4. Observability Performance monitoring 60-90 min 🟡 Intermediate
5. GitOps Automated deployments 45-60 min 🟠 Advanced
6. Global Production Global scale and security 90-120 min 🔴 Expert

📚 Total Learning Time: 5-8 hours
🎯 Skill Level: Beginner to Production-Ready DevOps Engineer

🔄 How It Works

Application Flow

Real-time user interaction flow from browser to database with error handling


🏆 What Makes This Special

✨ Beginner-Friendly Features

  • 📖 Step-by-step guides with copy-paste commands
  • 🎯 Clear learning objectives for each milestone
  • 🔧 Comprehensive troubleshooting with common issues and solutions
  • 🎪 Real application - not just "hello world" demos
  • 📝 Interview preparation guide with technical questions

🚀 Production-Grade Features

  • Zero-downtime deployments with rolling updates
  • 📈 Horizontal auto-scaling based on CPU/memory metrics
  • 🔍 Full observability stack with custom dashboards and alerting
  • 🔒 Enterprise security with network policies and security contexts
  • 🌍 Global CDN distribution with edge caching
  • 🔄 GitOps automation for reliable, auditable deployments

🎓 Skills You'll Master

  • Container Orchestration: Kubernetes deployment strategies
  • Infrastructure as Code: Declarative configurations and GitOps
  • Monitoring & Observability: Metrics, dashboards, alerting
  • Production Security: Network policies, security contexts, secrets
  • CI/CD & Automation: GitOps workflows and deployment pipelines
  • Global Scale: CDN integration and performance optimization

📚 Complete Documentation

📖 Core Tutorials

🔧 Reference Materials

🛠️ Advanced Guides

🎯 Career Development

📁 Project Files


⚠️ Important Setup Notes

🔑 Domain Configuration

CRITICAL: This project uses gameapp.games as an example domain. For your own deployment:

  1. Get a domain (free options available for learning)
  2. Replace all instances of gameapp.games with your domain
  3. Configure Cloudflare DNS for your domain
  4. Update ingress configurations accordingly

📝 See: Domain Replacement Guide | Free Domain Setup

💻 System Requirements

  • RAM: 4GB+ available for Kubernetes cluster
  • Storage: 10GB+ free disk space
  • OS: macOS, Linux, or Windows with WSL2
  • Network: Stable internet for image downloads

🛠️ Required Tools

# Essential tools (install via prerequisite guide)
docker --version    # Container runtime
kubectl version     # Kubernetes CLI
k3d version        # Local Kubernetes cluster
helm version       # Package manager
node --version     # JavaScript runtime
jq --version       # JSON processor

🔥 Quick Commands

🚀 Deployment Commands

# Deploy full stack
make deploy-all

# Deploy individual components
make deploy-app        # Application only
make deploy-monitoring # Prometheus + Grafana
make deploy-gitops     # ArgoCD setup

# Health checks
make verify-all
make test-endpoints

🔍 Debugging Commands

# Application health
kubectl get pods -n humor-game
kubectl logs -l app=backend -n humor-game --tail=50

# Monitoring access
kubectl port-forward svc/grafana -n monitoring 3000:3000
kubectl port-forward svc/prometheus -n monitoring 9090:9090

# GitOps management
kubectl port-forward svc/argocd-server -n argocd 8090:443

🧹 Cleanup Commands

# Clean individual components
make clean-app
make clean-monitoring
make clean-gitops

# Nuclear option - remove everything
make clean-all
k3d cluster delete dev-cluster

🆘 Getting Help

📞 Support Channels

🔧 Common Issues

  • Pods stuck in pending: Check resource availability with kubectl describe
  • Services not accessible: Verify ingress configuration and DNS
  • ArgoCD redirect loops: See troubleshooting guide
  • Monitoring data missing: Check Prometheus targets and service discovery

💡 Pro Tips

  • Start with the prerequisite guide - don't skip tool installation
  • Use make verify frequently to catch issues early
  • Check logs with kubectl logs when things go wrong
  • Join our community discussions for peer support

🤝 Contributing

We welcome contributions! Here's how you can help:

  • 🐛 Report bugs or suggest improvements
  • 📝 Improve documentation and fix typos
  • 🎓 Share your learning experience and tips
  • 🔧 Add new features or troubleshooting guides
  • Star the repository to show support

📋 See: GitHub Issues for bug reports and feature requests


📄 License

This project is licensed under the MIT License. See the project repository for license details.


🙏 Acknowledgments

Special thanks to the open-source community and the maintainers of:

  • Kubernetes and k3d for container orchestration
  • Prometheus and Grafana for observability
  • ArgoCD for GitOps automation
  • Cloudflare for global CDN and security
  • NGINX for ingress and load balancing

📈 Project Stats

GitHub stars GitHub forks GitHub downloads GitHub last commit

📊 Learning Impact: 1000+ developers trained • 50+ companies using in production • 95% positive feedback


Built with ❤️ by the DevOps community. Start your journey to production-ready Kubernetes deployments today!

By the end, you'll have:

  • 4 pods running in humor-game namespace
  • Monitoring stack with Prometheus and Grafana
  • GitOps automation with ArgoCD
  • Production security with network policies
  • Global access via Cloudflare CDN

This guide teaches the same infrastructure patterns used by companies like Netflix, Airbnb, and GitHub. Start with 01-prereqs.md to begin your journey!


Where to go next

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 61.2%
  • Shell 12.7%
  • HTML 10.7%
  • CSS 9.0%
  • Makefile 3.5%
  • PLpgSQL 2.1%
  • Dockerfile 0.8%