Hey folks! I'm diving into DevOps and I've got the theory down, but now I'm really eager for some hands-on experience. Rather than learning each tool in isolation, I'm looking for a single comprehensive DevOps project where I can see how everything fits together. I'm interested in a workflow that involves tools like Git, CI/CD (using GitLab or similar), Docker, Kubernetes, Terraform, and monitoring tools like Prometheus or Grafana on AWS. I'd appreciate any recommendations for resources like YouTube series, GitHub repositories, or blogs that cover this end-to-end process. My aim is to grasp the actual flow of DevOps, not just execute commands in silos. Thanks a bunch!
8 Answers
Here's how I tackled it without a tutorial: I started with a simple Python app, created a Docker image, built Kubernetes manifests, and used Terraform to set up a Kubernetes cluster. Once that was running, I added CI/CD through tools like GitLab and ArgoCD. This way, I developed the project structure step by step.
I suggest skipping Jenkins and focusing on more modern tools like GitLab CI/CD or GitHub Actions. If you're working with Kubernetes, consider using native Continuous Delivery tools like ArgoCD or FluxCD.
Just copy this question into ChatGPT, and you’ll get a ton of project ideas!
Put together all the components yourself if you're serious about learning. You already know what needs to be done, so find a method that works for you!
Instead of following a lengthy tutorial, try to build your own real project! Set up infrastructure on DigitalOcean, implement CI to build Docker images, and deploy those to Kubernetes using Terraform. Then, integrate monitoring. This approach will cover the full DevOps flow.
Check out the series by TechWorld with Nana—it covers most of the stack you're interested in. But honestly, you’ll probably learn the most by troubleshooting real-life problems, like when your Flask app crashes, instead of just following a tutorial.
Start as a developer first—build a hobby project, like an API or web app. After getting comfortable with that, dive into the DevOps side!
Start with a simple API in Go: write tests, run it locally, and then containerize it. Use version control, implement CI pipelines for lint checks and tests, and push the Docker image to a registry when merging to the main branch. Afterward, deploy it in a cloud service or a local Kubernetes cluster.

Yeah, Jenkins feels a bit outdated at this point!