Yes, you heard me. I bought components to start my own little homelab. 🎉 I must say, I'm pretty excited about it. But this post is not so much about the "how" or the "what", it's about the "why". So let's talk about my motivation to build a homelab.
Reason 1: Learning
If have been a C#/.NET/backend developer for many years. I've worked on "Windows Forms" applications (yes, I'm that old), "ASP.NET Web Forms" applications, a big enterprise CMS, and microservices (built on .NET 7) hosted on Kubernetes. After my .NET days I transitioned to mobile development and focused on iOS development with Swift, SwiftUI, and UIKit. In my side projects, which are mostly web-based applications, I also do the necessary frontend work with JS and CSS. So one could say that I've seen the good, the bad and the ugly of software development. 😄
But with my promotion to the "Head of Engineering" in June, I'm not just responsible for the development side of things, but also for the operations of our platform. And yes, I've used Kubernetes from a developer perspective, but installing, configuring and operating a production-scale Kubernetes cluster is a whole different story. So one of the challenges in my new position is to gain enough knowledge about all things related to platform operations. For me, it is essential to understand the challenges the teams are working on. Don't get me wrong. I don't want to be an expert in all fields to interfere in discussions and decisions. However, understanding the biggest tasks and problems is important to me because it makes it easier for my colleagues to work with me.
But what is a good way to gain knowledge in that field? Based on the title of this post, you already know what I am going for. 😉 But let me take another small step before I get to it. A good friend of mine has been "homelabbing" for quite some time now and I admire his knowledge about clusters, networking, storage, and everything related to homelabs and self-hosting. You can find his blog with a lot of homelab-related articles here: https://blog.mei-home.net/. Every once in a while during face-to-face discussions or reading through his blog posts I find myself thinking "Maybe I should start a homelab myself to build up this missing knowledge". The thought came up again very recently while I was reading a blog post that he boosted on Mastodon a few days ago. But this time it triggered something more. Long story short: I bought two Raspberry Pis, two SSDs (+cables), and two armor cases to start my own homelab.
Reason 2: Own your data
As you might know from my other posts, I'm a happy customer of Uberspace. I use their servers to run my personal projects. It's very easy to set up, configure and run services/applications on Uberspace. Everything is secure by default and they automated and simplified a lot of the things needed to run a secure web app.
But this comfort comes with downsides as well.
It contradicts my plan to learn the important part of hosting and operations of a production-ready platform because all the security-related things are abstracted away.
I don't really "own" my data. It's saved on "someone else's computer". Sure, I pay for it so I kind of own it. But I think you get what I mean.
I think it is a good idea to have full control over your data. But I'm also aware that it comes with a cost. If you run your own system, you have to maintain it. Software updates, OS updates, hardware failure, you name it. Self-hosting takes time and energy. And not everyone has the time (or is in the mood) to do that. In this case, using a hoster like Uberspace is great. And if you're looking for a good hoster, Uberspace is the "place to be". I can't stress that enough.
Reason 3: I have too much spare time
I have a wife, two kids, friends, a (sometimes more than) full-time job, a house with a small garden, and a lot of other stuff to do. 🙈
Reason 4: A playground
I think a homelab with a Kubernetes cluster can be a good playground for tools and services I want to test. Some of them could be tested locally on my laptop, but sometimes I want to play with services that should run for multiple days and, maybe it's just me, but I don't like to keep my laptop active for so long.
Now you know why I bought components for a homelab. Mission accomplished ✅
But I still have a few days left to plan my setup. Why? Look at the cover image. Can you spot the problem? I forgot to purchase power cables for the Pis 🙄.