To me, a home lab is an important piece of my ongoing education. It’s one thing to watch videos and take classes but getting some time to build, configure or run solutions in your own setting is an invaluable resource. In my life, I’ve never learned anything REALLY well until I’ve had to operate and troubleshoot it. Having a mission critical system crash and having to learn how to fix it is a great way to learn things very quickly but also pretty painful. So to me, a home lab is critical.

So what goes in my home lab?

Hardware

Networking

Storage

vSphere Storage Array: Synology DS1815+ 8 TB available of spinning disks with dual 256 GB SSD for Caching

Synology DS1815+ File Storage and Backup Array: Synology DS1513+ 3.6 TB available of spinning Disk

Synology DS1513+

Compute

ESXi Hosts: Five ESXi hosts

Automation

OK, I’m an automation freak so some of my hardware obviously has to be related to automation too right? I’m not sure you’d call this lab equipment, but you know you can write code for this automation too, don’t you? OK Fine! This isn’t really for learning stuff, but more for playing around with the house and turning stuff on with my voice or phone. Are you happy now!?

9Lights, TV, Thermostats etc are mostly controlled through Amazon Echo or through the IFTTT.com service.

Architecture

I’ve got wireless networks setup for my home devices for laptops, ipads and guests with a firewall between them and the lab core switches. My perimeter firewall is connected with Azure VNets and AWS VPCs.

Solutions

The hardware is fun to mull over, but the real value is what sits on the hardware. As you might know I do a decent bit of work on vRealize Automation and cloud. Cloud is a pretty easy one since it doesn’t even have to run on my hardware. If this is your desired path you can even get away with not having a lab at all since you can just swipe a credit card.

For me, though I do a lot of Hybrid cloud work, which requires several different solutions all ready to go whenever I need to test something else out.

vRealize Automation: My Cloud Management Portal where new resources are deployed. vRA can deploy across my VPN tunnels to both AWS and Azure. My instance includes vRealize Business. vRealize Orchestrator and vRealize Code Stream as well for chargeback and code pipeline testing. I’ve written a Guide for vRealize Automation here on the blog.

My Cloud Management Portal where new resources are deployed. vRA can deploy across my VPN tunnels to both AWS and Azure. My instance includes vRealize Business. vRealize Orchestrator and vRealize Code Stream as well for chargeback and code pipeline testing. I’ve written a Guide for vRealize Automation here on the blog. Cisco UCS Director : Cisco UCS Director is another popular cloud management platform. I’ve written a guide to getting started on Cisco UCS Director as well.

: Cisco UCS Director is another popular cloud management platform. I’ve written a guide to getting started on Cisco UCS Director as well. Ansible: Sometimes you need to do some basic configuration management. Ansible is a simple tool to get up and running and gives me a free configuration management tool.

Sometimes you need to do some basic configuration management. Ansible is a simple tool to get up and running and gives me a free configuration management tool. Server 2016 Domain Controllers: The infrastructure needs a domain to run on. Server 2016 is the latest Windows OS so that’s what I’m running.

The infrastructure needs a domain to run on. Server 2016 is the latest Windows OS so that’s what I’m running. Bitbucket: Git is a requirement for anything stored as code these days. I like to have my own Git server so I can store some bad code with passwords directly in my scripts. You shouldn’t do this, but it’s OK for me to do it.

Git is a requirement for anything stored as code these days. I like to have my own Git server so I can store some bad code with passwords directly in my scripts. You shouldn’t do this, but it’s OK for me to do it. Jenkins: Adding a CI/CD tool to you deployments is coming up more and more. All your code may need to go through a testing pipeline so Jenkins is a must. I’ve written a “Getting Started Guide” here on the blog.

Adding a CI/CD tool to you deployments is coming up more and more. All your code may need to go through a testing pipeline so Jenkins is a must. I’ve written a “Getting Started Guide” here on the blog. Houdini: The vRealize Code Stream for IT DevOps solutions to move blueprints around between instances.

The vRealize Code Stream for IT DevOps solutions to move blueprints around between instances. Certificate Authority: I have a Microsoft Certificate Authority that I can issue new certificates to all of my storage arrays, vRA instances and other vSphere solutions.

I have a Microsoft Certificate Authority that I can issue new certificates to all of my storage arrays, vRA instances and other vSphere solutions. Management Server: I’ve got Wireless APs that need a controller, someplace to deploy Windows Updates from and sometimes I need a jump host to install software on. This server does the job.

I’ve got Wireless APs that need a controller, someplace to deploy Windows Updates from and sometimes I need a jump host to install software on. This server does the job. Monitoring Server: Sometimes I want to monitor my bandwidth and install other monitoring tools. This server does that job for me.

Sometimes I want to monitor my bandwidth and install other monitoring tools. This server does that job for me. NSX: Software Defined Networking and dynamic firewalling is a common use case for cloud. NSX manager and controllers are installed in my management cluster, and the workload cluster can use these resources. I also have a series of post on setting up NSX with vRA 6.

Software Defined Networking and dynamic firewalling is a common use case for cloud. NSX manager and controllers are installed in my management cluster, and the workload cluster can use these resources. I also have a series of post on setting up NSX with vRA 6. SQL Server: You never know when you’ll need a database.

You never know when you’ll need a database. Emulators: UCS Platform Emulator, VNX Emulator and the list goes on. Having a cluster to deploy these emulators is pretty useful in a pinch.

UCS Platform Emulator, VNX Emulator and the list goes on. Having a cluster to deploy these emulators is pretty useful in a pinch. vCenter: I’ve got a vCenter server appliance running version 6.5

I’ve got a vCenter server appliance running version 6.5 VSAN: VMware’s virtual san solution is a pretty popular storage solution. My workload cluster is a 2 node VSAN cluster.

VMware’s virtual san solution is a pretty popular storage solution. My workload cluster is a 2 node VSAN cluster. vROps: Another part of the vRealize Suite. vROps plugins can be tried out here and my resources can be viewed.

Another part of the vRealize Suite. vROps plugins can be tried out here and my resources can be viewed. Veeam Server: Veeam server used to backup some of my solutions and used to write vRealize Orchestrator packages against the API.

Veeam server used to backup some of my solutions and used to write vRealize Orchestrator packages against the API. Kemp Load Balancer: Sometimes you need a load balancer to test things out and Kemp provides a free one for vExperts.

Any any given time new solutions could also be installed, tested, deleted, or upgraded. Recently I’ve installed other cloud management solutions, ServiceNow midservers, partner appliances and other servers. It’s a lab, this is what it’s for!

Code

Writing up some code to test things out is great. Code is so important anymore. But no matter how minor your code snippets, it is a good idea to store these in a GIT repo for recall later. I don’t know how many times I’ve gone back to look for a single line of code in a different module. It saves a lot of time and prevents googling.

Summary

The home lab is my place for learning, testing and building solutions before I need to do them in a production environment. It’s some work to keep maintained and certainly some money involved in ensuring I can run the things I need to run in it but I feel like it pays for itself with the marketable skills gained from training.