I’m fortunate to work with a large infrastructure that includes dev, test, cert and prod areas. There also is a separate vCert area dedicated to virtualization certification and a completely physically separated large lab for the engineering teams. I also have a home lab.
I’ve always had some equipment at home used for learning and testing, but recently the game got stepped up. My company has begun investigating putting together a home lab offering for employees and myself and three coworkers are putting together a potential design. I’ll be doing posts on the hardware, configuration and uses as this blogs goes on. What I want to talk about in this post is the why of having a home lab even with so much equipment available at work.
Number one reason, the equipment at work is for work. Regardless of the designation of the equipment as dev or lab etc, it’s a shared infrastructure. I may not effect production by changing or breaking something in those areas, but I will effect someone else’s productivity. I’ve been mid install in a lab and had AD, or storage go down for an upgrade for example and I’m out of business. I don’t like being that guy, so there are riskier tasks that I won’t do even in the most isolated lab that’s shared with others. In a home lab, where it’s just me, I have Carte Blanche. I have rebuilt and changed around my current home lab multiple times in the last few weeks. I’ve been able to delete the AD and start fresh with it because I didn’t like how it was acting for example.
Time, I feel time is our most precious resource and don’t like to waste it, especially other peoples time. In a shared infrastructure I can’t start an upgrade or other change and just walk away to come back to it later. A home lab, with just myself effected by what I do in it does not have that constraint. Having the equipment available at home to use when I can also allows me to make use of free time at home. Let’s face it, I’m a geek, messing with infrastructure and software is fun to me and in a way relaxing.
Breadth of learning, I find myself more willing to try tools and applications on my home lab that I either am reluctant to install on work equipment or don’t have time to do during the workday. At work I am the virtualization engineer. Other people take care of AD, DNS, Telecom, OS builds, automation, etc. On a home lab, I have to do all those things and learn or relearn skills around them. I feel this makes me a better engineer by understanding how my infrastructure design interacts with all of the apps and services running on it. This holds true for any engineering discipline, and for developers to understand better the infrastructure they are riding on.
Community, I believe that a company that provides and supports home labs for appropriate employees can foster a community between engineering and development. My team is developing a proposed offering for this and will be supporting it to some extent. The support I see as most valuable is community based support where the engineers and developers share what they are doing and help with fixes and design ideas for the labs with each other. I look forward to being able to pick the brains of developers on how they are using containers and other tools on the same equipment as I am using. In return engineers can share ideas about how best to serve up the infrastructure to make developers apps more efficient. Overall, like any community, I see this positively impacting communication and in the long run benefitting both employees and the company.
Next up on this category will be the hardware and base design for our home lab kit.