I have always been a fan of running home servers. My first home server was a mini ITX computer running Windows in which I hosted an FTP server. I used this server to host all my local mp4 videos, that I would stream to the web browser on the devices I had throughout the house. Setting up my first Linux server is what I believe set me along the path to becoming a DevOps Engineer. So I admit I have a strong bias. However It wasn’t until I spoke to a childhood friend, who now works in cyber security that I came to truly appreciate the advantages I gained by managing my own home lab.
Networking
The greatest advantage by far of creating and managing your own home lab is network administration skills. Looking for advice on what skills my nephew should work on to get into cyber security, my friend remarked that the number one skill he wished new applicants should have are networking skills. He then later remarked how that was also the skill he found the most lacking within the majority of applicants that he interviews.
The majority of tutorials I see online for DevOps and cyber security focus on cloud solutions. The drawback of this focus is when setting up an environment on AWS or GCP the VPC is setup for you. When deploying an instance or database that requires access to the internet there is no need for a setup on the part of the engineer. This is a far cry from setting up your own homelab.
In order for the instances on my home lab to be accessible to the internet I first needed to setup port forwarding and a demilitarized zone on my home router. After some time I came to the realization that this setup was only sufficient if I had one server I wished to access. To manage access to a type one hypervisor with multiple virtual machines it is best to have a dedicated router for that purpose. A virtualized Pfsense instance was ultimately the solution. I then needed to setup static routes in order to access the vm’s in my homelab as they now exist on a different subnet.
Over time I expanded my lab to include a Netgate router to serve as the gateway to the modem and Truenas box to serve as my network storage solution. While I don’t expect most Engineers to go as far as I did. The skills I gained just from setting up a Pfsense vm to serve all my vm’s on my home lab was invaluable and has benefited me in my troubleshooting efforts on a near weekly basis.
Cost
I will confess that my home lab is far from the most economical solution. Comparing a free deployment like the one that is hosting this very site may help to refute my observation but stick with me. I think you will see my point.
My original home lab ran on the same computer that I ran my Windows server. This computer housed an Haswell I7-4770K with 8 gigs of ram. This computer cost me about $400 to make back in 2014 and has served me for 7 years. This chipset is powerful enough to meet most home lab needs today. That is why I gave it away to my nephew for his first homelab. Any old pc that is 5 years or younger is more than powerful enough to run a homelab and can be found for $200 or less.
However if you’re looking to future proof your setup, mini pc’s like the Aoostar NAS, Router, Mini PC all in one solution selling for $399 are pretty inticing. With a Ryzen 5 5500u, this device is significantly more powerful than the solution I original had. These solutions can easily provide you between 5 to 10 years of use. This breaks down to $20 to $80 dollars a year.
This may not appear to be an enticing proposition for anyone who only wants to practice deploying a couple vm’s. But when you look a the fact that the vm’s that are created can range from NAS’, Cloud storage, routers, streaming and entertainment boxes. Having an all in one home lab can greatly reduce the overall tech expense of your home should you be willing to put in the effort.
Conclusion
This is obviously not an extensive list of all the benefits to running a homelab and I will concede that all of the skills gained by running a homelab can also be gained by working on many of the cloud providers. However the goal of a cloud provider is to make the use of their services as easy as possible. When deploying to the cloud you can go quite far without every establishing the basics. But when deploying to a home lab you are confronted with the fundamentals immediately, which in my humble opinion can accelerate your learning and ability to become an excellent DevOps Engineer.