Last week I built a small but real DevOps project to practice end-to-end Kubernetes workflows — from code to cluster.
What’s the project?A simple Go web service that counts visits using Redis, deployed on a local Kubernetes cluster (MicroK8s) and packaged as a Helm chart.
🧩 What’s inside
- Go app with health & visit endpoints
- Redis for state (visitor counter)
- Docker image for the app
- Kubernetes manifests (initially)
- Helm chart (final state)
- Ingress to expose the app via a hostname👉 http://go-app.local/visits
⚙️ What I focused on (DevOps lessons)
- Turning raw YAML into a reusable Helm chart
- Adding liveness & readiness probes for safe deploys
- Using Ingress instead of NodePort hacks
- Debugging real issues: disk pressure, pod evictions, networking
- Making everything reproducible, not “works on my machine”
🔁 How you can reproduce it
- Clone the repo👉 https://github.com/Griffindeetox/go-redis-k8s-lab
- Start MicroK8s
- Install the app with one command: microk8s helm3 install go-redis-app ./helm/go-redis-app -n go-redis-app --create-namespace
- Add go-app.local to /etc/hosts
- Hit:curl http://go-app.local/visits
🧠 Why this matters
This isn’t about fancy tools — it’s about thinking like a DevOps engineer:
- automate
- observe
- debug
- package
- repeat
If you’re learning DevOps, start small but finish what you start.
Happy to answer questions or help anyone reproduce this 👊