When breaking into any field in technology, getting hands on experience is one of the most important techniques that can really change the way you approach complex problems. Designing a homelab that is right for you can be somewhat challenging but there are essentially three paths to take depending on your desire and technology interest.
A free open source hypervisor such as Oracle Virtual Box.
Virtual box is great for beginners – experts who want an easy way to get going and spin up virtual machines to do various tasks. Oracle Virtual Box was created to cater to the end user who wants to tinker and seems to be a direct competitor to VMware Workstation. That being said, all of VMware’s features from its’ workstation product are not available in Virtual Box. If you are wanting to get started with some VMs and mess around with Linux, this is the way to go.
A server based hypervisor.
While VMware ESXi for personal use does not come with all of the shiney features that are available in the enterprise editions, who needs them for home? A server based hypervisor will allow you to be more mobile and build some complex networks. Looking for experience with PFSense and network diagnostic tools in an always-on environment? Try taking a look at ESXi to get started. It has much of the same feel as when you would use VMware products in an enterprise setting and has the same feature sets as that of Virtual Box. There are plenty of guides on the internet as to how to set up whiteboxes for this type of thing.
A full out development lab at home.
While this is a more rare approach, it often can provide the most flexability when trying to acquire knowledge. This approach is also the most costly as it does require you to purchase equipment up front including switches, servers and maybe a SAN/NAS of some sort. Working in conjunction with a server hypervisor that can do clustering like Xen Server, you will be able to really start developing complex application networks at home while controlling the network infrastructure things are running on.
What is my setup?
I am currently some where in between options 1 and 2. Due to the nature of my desktop machine at home, I have the opportunity to have a large amount of memory in the system which allows me to build out the networks I need to do my testing in a sand box environment. This would be great for python and powershell script development and lets you have your local sandbox active directory environment to mess with so you don’t run things on your production boxes.
Need help in getting started? Let me know!