One thing that most IT professionals will often need to do in the modern IT era is have the ability to test things before we use them in the real world. The thought of deploying software for the first time into a production environment sends shivers down my spine and in my opinion should never be done.
Setting up a lab is easy, right?
Given the rise and rise of virtualisation, setting up some form of lab environment should be easy - shouldn’t it? All you do is get some form of virtualisation software (VMware Fusion/Workstation, VirtualBox etc.), install it on your own machine, and then deploy virtual machines to your hearts content, right? Err, no. Although it sounds like a good idea, once you start to run enough virtual servers for your base infrastructure (AD, DNS etc.), then deploy some solutions on top, you will probably find that your laptop starts to die a slow and painful death. Because, hey, we don’t all have monster MacBook Pro’s in the real world!
Another option is to take some old re-purposed servers/desktops and make these into a lab capable of running the latest and greatest software. Err, no. That isn’t going to fly either.
What's your budget?
Of course a lot of the decision making for your lab will be decided by your budget. If money is not a major concern, you can simply buy all the components required to make up your lab without a worry in the world. A couple of 10Gb switches, half a dozen servers nicely spec’d with plenty of CPU and RAM, and some form of shared storage. Or even go hyper-converged with some SSDs and spinning disks, with VSAN installed on top. That would be great wouldn’t it? Unfortunately, IT budgets are pretty tight these days, so that’s not always an option. You typically end up with a halfway blend of re-purposed hardware, with some new components, such as SSDs, to help give your lab a performance boost where its most needed.
Think about licencing
Then there’s the licencing. For those of us lucky enough to have access to VMware partner resources, keys are readily available for trial versions of most, if not all, VMware products. Once you have your base platform deployed then you'll probably need Microsoft keys for Windows Servers etc. Again, you probably need something like a MSDN subscription.
What else do you need on top?
Once you have all this in place you will need to deploy your vCenter server - using the appliance is a must, as it’s so much easier and there’s no Windows licence to worry about. Then you can throw in things like vRealize Operations, Log Insight, Runecast etc. The list is endless. You will of course want a jump host, because ideally this will all be ring fenced off from your production network to stop any ‘leakage’. I recommend using a virtual firewall like pfSense to isolate everything. It’s quite easy to setup once you get the hang of it, can be clustered for High Availability so you don’t lock your keys in the car as such, and can also provide essential services for your lab like DNS (please don’t think of deploying everything using IP addresses - you WILL have issues at some point), DHCP and NTP. Plus, you can customise the GUI with an awesome picture like I have!
VMware Hands-on Labs
But even these options are not available to everyone, so what else can you do? Another great choice is to use VMware’s own Hands-on Labs (HOL), this is a free online portal that gives you access to the latest VMware products in a tested and documented cloud-based environment, all from your browser of choice. This way there are no concerns about licensing, as everything is covered by VMware.
You simply sign up, login and browse through the large catalogue of labs available. There are over 50 labs on the latest VMware products, including vSphere with Operations Management, NSX, VSAN, vROps, PowerCLI, vRA, vCloud Air, Horizon Suite, AirWatch, and many more products. Once you find a lab you want, the environment is automatically spun up and off you go. There are some time restrictions of course, to ensure everyone gets to use it, so make sure you have some time set aside before you get started. The only downside to these is that everything is pre-canned and you have to follow the lab through or things might not work as expected. This is not ideal if you are trying to setup a very specific/unusual configuration, but it’s a great way to learn a product or get deeper insight into something, without destroying your production environment.
Consider a cloud environment
Another alternative is to make use of someone else’s cloud. Google Cloud Platform offer a free $300 credit over the first 60 days, or Azure offer $200 credit for you to provision up to 14 virtual machines, 40 SQL databases, or 8 TBs of storage for a month. These are both just what is available to Joe Bloggs member of the public. You may be able to get more depending on your relationship with your current cloud provider. These are great, but of course they don’t give you a permanent solution. However, you could continue to use them as and when the need occurs and just pay for the resources when needed of course - after all nothing is really for free these days.
There are plenty of options
In summary, there is of course no simple solution to this. There are many ‘it depends’ and ‘what ifs’, but I hope you’ve now got some good food for thought when you’re planning your next lab setup. It really does come down to how much time and money you have and what your requirements are. But one thing for sure is that there are many options out there, so deploying solutions straight into production should NEVER be your ‘go-to’ solution.
How do you setup your labs? Do you have any helpful tips or comments to add to the above?