How can I be successful in a world where it seems like things are changing on a daily basis? I don't know how many times this questions gets asked a day, but I would posit that it's not a small number of times. Working at a company like Google, this thought has encompassed much of my thinking over the past several years, and has greatly contributed towards the process of learning and development that I currently practice. A primary ambition of this blog is to share not only what I am learning, but how I am learning it, as I believe "learning how to learn" is much more effective in the longterm.
That's why, today, I'm starting a mini-series called The Home Lab where I will be sharing one of the most influential tools in my learning portfolio: my homelab.
What is a homelab?
It's a playground for technology where you can build, break, and fix to your hearts content at a minimal reoccurring cost. In it's most complex forms it can serve as an all-in-one cloud inside of your home without the prohibitively expensive cost of cloud providers like AWS, Azure, or Google Cloud. Even in budget forms, like a handful of Raspberry Pi's, it can still serve as an incredibly useful tool over the years.
Why a homelab?
Why go through the work of setting up your own private cloud?
- You will necessarily learn the fundamentals of IT: hardware, networking, virtualization, security, etc. All of the components that make up a modern IT system must be understood and practiced.
- You will greatly increase your ability to troubleshoot. It's just you and the internet - there's no corporate support teams or plans to hold your hand along the way. Through trial and error you will hone your ability to quickly troubleshoot even the most complex technical problems.
- You will learn how to learn. I hinted at this earlier, but after the 100th, "how do I do this?" question you're going to become exceptionally skilled at quickly picking up the required knowledge to accomplish something. You'll find the best learning platforms, Youtube authors, etc. as you routinely seek to acquire the required knowledge.
- You will become a technology evangelist. Having a personal cloud at your fingertips means you can, more or less, play with most modern software stacks to your hearts content.
- You will become an automation expert. You will quickly experience the toil and pain that comes with building a lab environment, and the first time you break it and have to rebuild it you're going to quickly understand the necessity of automation in this context. I can rebuild my entire lab infrastructure in less than an hour and most of that time is waiting for deployment scripts to complete.
I've only listed five compelling reasons and I suspect anyone reading this who has a homelab is probably listing all the ones I missed in their head. The point is, there are numerous benefits to a homelab, especially for an automation expert, and I have no issue attributing a large portion of my success in the industry to my homelab.
Will it work for me?
Perhaps I've sold you on the usefulness of a homelab, but now you're wondering, can I make it work for my situation? I'll admit, there are a few barriers to getting one started, but the good news is there's an amazing community out there which continues to innovate solutions under the most strictest of requirements (i.e. a poorly vented studio space).
The first and most obvious barrier is the financial cost. Starting from scratch, there are a few necessities that you'll want to invest in quickly in order to get an operational lab. At least one, if not two, servers, a business grade switch/router, and some form of storage are usually the base building blocks. The cost of these can fall across a huge range depending on your budget: homelabbers tend to be incredibly thrifty and there are all sorts of guides to finding discount hardware, like this great one on Reddit. The only reoccurring cost you'll come across is power, and depending on where you live and the equipment you use, it can become expensive over time. I'm mindful of the age and efficiency of the gear I run and my lab currently costs $8.40/month (I have an active calculation going). For comparison, this will get you a few weeks on a low-tier cloud VM, of which my lab could run dozens of them.
The next barrier that most people run into is space and air conditioning. If you've never seen a modern datacenter before, they tend to have massive cooling plants attached to them (we jokingly call the moisture that cooling towers produce "The Cloud"). This is because IT equipment is notorious for producing heat and it can quickly become a problem in a space not optimized to deal with it. On the bright side, most modern equipment can handle running in warm environments without much of a problem, and so even just a few considerations for heat removal in your homelab space can be sufficient. In my case, the room my equipment in has no modifications, and as a result tends to be a bit hotter than the rest of the house, but this doesn't bother me.
The final barrier that most people run into is noise. Our datacenter floors at Google are so loud we are required to wear hearing protection. This is because, like heat, IT equipment is also notoriously loud. This is even more impactful for homelab users because the enterprise equipment that you'll likely be accruing was not designed to be run in a home environment and will likely easily push 60 dBa in levels. Again, though, there's an amazing community that has often already done the work on not only documenting how loud a piece of hardware is but also tips on how to modify it to be quieter (this usually involves replacing the fans).
Where do I go from here?
This series of blog posts will not be exhaustive but I will do my best to start from the basics and build up from there. Most of my posts here, even ones not tagged homelab, will almost always be using my homelab in some way or another, and I'll be sure to call it out where it makes sense. In a future post I'll introduce you to my own lab as well as the processes and documentation surrounding it.
As I mentioned before, there's an incredible homelab community out there. I'll leave you with a few resources where you'll be able to engage and learn more: