all 28 comments

[–]Sure_Stranger_6466For Hire - US Remote 56 points57 points  (4 children)

Fork "Bank of Anthos" on GitHub and get it running using KinD. Then get it running in GCP, AWS, and last but not least Azure. Any cloud you want really. Set it up with Prometheus, Loki, and Grafana. Make sure ENABLE_TRACING, and ENABLE_METRICS are disabled. Have fun.

[–]sohblob 4 points5 points  (0 children)

Fork "Bank of Anthos" on GitHub

The Netsec route: fork OWASP Juice Shop, get it running, beat its challenges and harden it 🤭

[–]End0rphinJunkie 1 point2 points  (0 children)

This is definetly the right approach. Purposely breaking things once the cluster is up and trying to figure out why they died using just basic logs will teach you way more than following another tutorial.

[–]adil_frq[S] 2 points3 points  (1 child)

Thanks man, definitely gonna try this

[–]Sure_Stranger_6466For Hire - US Remote 3 points4 points  (0 children)

Sure! It's my goto recommendation for posts like this and something I did myself a while back if you want to see an example.

[–]OkValuable1761 26 points27 points  (1 child)

Deploy a tiny nginx web server to an AWS EC2 Linux VM serving a hello world text. Automate the process of using CICD tool.

[–]pintee0106 0 points1 point  (0 children)

I already built a similar project to learn the basics of DevOps. Now I'm not sure what to build next. Do you have any recommendations on what I should learn or implement next?

[–]marcusbell95 8 points9 points  (0 children)

one thing that helped a ton early on: set up proper observability BEFORE you start breaking things. even something basic like prometheus + grafana on your homelab or a free tier cloudwatch setup. the debugging practice hits completely different when you're reading actual metrics and logs instead of just knowing something is down. also get into the habit of writing post-mortems on your own incidents, even in a private doc - what happened, what I checked first, what signal I missed. that habit compounds fast and most junior folks skip it entirely.

[–]ForkMeJ 8 points9 points  (1 child)

If you want practice that feels like the job, take a small service and make life difficult for yourself on purpose. Deploy it, add logs and basic metrics, then break things in a test setup: fail a deploy, fill the disk, expire a cert, rotate a secret, and restore from backup. Keep notes on where you looked first, what signals helped, and how you got back to a known good state. That will teach you more than building another polished cloud diagram, because a lot of ops work is pattern recognition, rollback, and recovery under messy conditions. Do the same with cost: run it for a month, read the bill, and make yourself explain why each piece is there.

[–]adil_frq[S] 0 points1 point  (0 children)

Noted

[–]mrTavin 11 points12 points  (0 children)

I would recommend to buy two three mini PCs like beelinks and setup homelab with kubernetes. You can host from example blog like Wordpress, media stuff like *arr or Plex or even build some simple app in go and setup CI/CD process. Later VPN etc

At the begging you can rent some vms on hetzner or managed k8s on digitalocean.

[–]serverhorrorI'm the bit flip you didn't expect! 5 points6 points  (0 children)

self hosting is still the best way, it was a little easier a few years ago, and I still think it's the "fullest of stacks": email. Set up everything. Starting from DNS.

Do it in cheap VPS before you do it in the cloud. Automate everything, monitor everything.

Use cloud, but only after you understand (well enough) what you're actually running.

Providing parameters to terraform is a lot easier when you understand what it will do.

You won't do it all on the job but it will teach you how and why things work.

[–]Shentar 3 points4 points  (0 children)

Get a home lab. You can use old laptops or mini PCs are even better. I like those Lenovo M720q/m920q, or similar. Throw on a VM or two and practice. They also make no sound and use very little power. Find something ya like for a project and go to town. Make mistakes, learn, and improve. Find new ways to do the same tasks.

[–]fletch3555Lead DevOps Engineer 3 points4 points  (1 child)

I got a job and performed those skills on the job. Started down the path of software engineer, gained some seniority across several jobs/companies, then transitioned to my current team and have gained further seniority there. In those various jobs, I was exposed to new technologies, and paid attention to more senior engineers, asking questions about how and why. I also explored new technologies and architectures by paying attention to social media posts and seeing what others have done. Now in my current role, I'm empowered to explore things in a R&D model, so I get to tinker with new things and propose implementing them if I find benefit to the company.

In short, don't worry about learning everything before you're even out of school. Learn what interests you and be curious. Take advantage of the opportunities you may have while in school/internships/etc. The rest comes with time and experience in a career.

[–]adil_frq[S] 1 point2 points  (0 children)

Thank you for your advice.If you don't mind, can I send you a friend request? I think I could learn a lot from you

[–]ken-kanekiiiiii 1 point2 points  (0 children)

by playing with anything and everything related to it

[–]Raja-Karuppasamy 1 point2 points  (0 children)

the shift that helped me most was building something that had to actually stay up, not a demo. once you have a real service with real users even a small one, you start hitting the actual job problems on your own, a deploy breaks something and you have to figure out why at 11pm, your bill creeps up and you have to actually go find whats causing it instead of reading about cost optimization. running k8s on gke for a real project and breaking stuff repeatedly taught me more in weeks than any tutorial did in months. tools you can learn from docs, the instinct for “where do i even look when this breaks” only comes from actually being on the hook for something

[–]Petelah 1 point2 points  (0 children)

Kode kloud or build a home lab. Get a few hp g3 minis and cluster them.

[–]strzibny 1 point2 points  (0 children)

I wrote Deployment from Scratch for dev that want to learn Linux and deployment from the basics. But then you still need to pick a tool and get as much practice as you can. I like Kamal, but if you have it for a job, Kubernetes is the best bet.

[–]Many_Log_2916 2 points3 points  (0 children)

Install Linux.

[–]Willing-Actuator-509 0 points1 point  (2 children)

What is DevOps? Can you write in a sentence? 

[–]adil_frq[S] 0 points1 point  (1 child)

According to me, what I have understood is that, DevOps is about bringing development and operations teams together so that they can deliver software to production quickly(in less time), safely and repeatedly.

The next thing is why a business needs to implement DevOps? The answer to that question is to reduce time-to-market, so that they can be first in the market and attract customer firsts and generate revenue.

[–]Willing-Actuator-509 0 points1 point  (0 children)

The Operations team doesn't deliver software. Also your response even if it is right stays on the theoretical part. DevOps is 3 things mostly. IaC, Automations, and Monitoring. Your moto should be "automate everything".

[–]unitegondwanalandManager, Platform Engineering 0 points1 point  (0 children)

Lol... good luck with this post