I'm new to the field and come from a blue-collar background. I have a homelab with a Z820, 256 GB of RAM, 8 TB of HDD storage, 2 TB of SSD storage, and Proxmox.
My current experience includes beginner-to-intermediate Linux, Docker and Docker Compose, beginner Terraform and Ansible, basic networking, and beginner Kubernetes. I'm currently running K3s on one cluster and have enough capacity to build another cluster with kubeadm for CKA practice.
I'm deciding whether to use an AI assistant to help create a small metrics-logging or tracking application while I focus on the operations side, or to take an existing ecommerce application from a code repository and use it as a learning project. I don't have much programming experience, so I'm concerned about relying on generated code that I may not fully understand.
Which approach would be more useful for learning DevOps and Kubernetes? What topics, tools, and self-hosted applications would you recommend deploying in my cluster or homelab?
3 Answers
For a broader homelab environment, you could try AWX to manage Ansible jobs, FreeIPA for identity and DNS, cert-manager or another certificate authority for TLS, and HAProxy as a reverse proxy or load balancer. Keycloak can give you practice with centralized authentication, especially if you run more than one cluster. A self-hosted Git service is also useful for storing application, infrastructure, and Ansible code.
Don’t deploy everything at once. Add one service, write down why you need it, automate its deployment, monitor it, back it up, and test restoring it before moving on. That keeps the lab focused on repeatable operations instead of becoming a collection of unconnected applications.
I’d lean toward building a very small application rather than choosing a large, random ecommerce project. It could be a simple frontend, API, and database. The application itself is just a vehicle for learning the full lifecycle: writing a Dockerfile, creating manifests or Helm charts, deploying to Kubernetes, adding CI/CD, configuring ingress and TLS, managing secrets, monitoring, centralized logging, backups, upgrades, and disaster recovery.
An AI assistant can help generate starter code and explain unfamiliar sections, but treat it as a tutor rather than a source of code you blindly deploy. Keep the app simple enough that you can gradually understand each component. For the homelab, Prometheus and Grafana are good starting points for metrics, while Loki can help with logs. Argo CD is useful for learning GitOps, and Vault can come later once you’re comfortable with Kubernetes secrets.
You don’t need strong programming skills before starting. Use a small existing application or have an AI assistant generate one in a clear repository structure, then focus on understanding one piece at a time. A basic app with a database is enough to practice containers, configuration, networking, persistent storage, deployments, and troubleshooting.
A useful progression would be Linux and networking fundamentals first, then Docker, Terraform and Ansible, Kubernetes workloads and storage, and finally CI/CD and observability. Intentionally break deployments, certificates, DNS, and storage, then document how you recover them. That troubleshooting practice is often more valuable than simply installing more tools.

That makes sense. I don’t have much coding experience, so I can’t always guarantee that I understand everything an AI assistant generates. I’ll keep the application very small and use the project to learn the code as well as the operations side.