The Ultimate Mobile Dev/Test Datacentre?
Colin Chaplin is a freelance Infrastructure Architect who helps large organisations transform Microsoft-based infrastructure.
Like many of you, I’m incredibly mobile and other than my home office, don’t actually have a fixed base. My work also encompasses a vast variety of technology, sometimes unexpectedly and sometimes tech that I’ve not touched for a few years (after all, if a client wants something new it’s a good chance they have something old to migrate from!). It’s therefore vital to be able to access test and training environments that are flexible and fast. So today I’m going to look at what an ideal test rig looks like, admittedly not with too much focus on cost.
Firstly, the hardware – a laptop is a given, and whilst a 17 inch laptop gives the most flexibility, it’s not mobile enough, and people beside me on the train won’t appreciate it. Main storage is SSD of course, but in my experience when running multiple VMs, having the virtual machines on different disks provides increased performance. So we’ll forgo the CD bay and replace it with another SSD in a CD caddy. Finally, many laptops support an M2 SATA slot, so if we choose right we can fill it with a third SSD. We’ve got the IOPS!
Screen resolution needs to be high, so when needed the consoles of multiple machines can be seen at once, so I’m looking for at least 1080p. Multiple monitor support is common, but I’m going to need a way to output to an ancient VGA projector.
Memory is a simple equation; lots of it, please. So a minimum of 16GB, but 32GB is available on some 15” machines. Finally, a quad-core processor completes the ensemble. Test VMs tend to be IO and Memory bound rather than demanding CPU, so if we have to compromise anywhere I’d be looking at the basic quad core CPU; Assigning at least two cores to each VM.
In terms of the host operating system, the purest and most performant answer would be Hyper-V server 2012 R2; however, in this scenario we may need to access guest Wi-Fi and Bluetooth so I’m going to choose a GUI-first operating system. Server 2012 R2 is the best virtualisation choice, but Windows 8.1 client Hyper-V provides almost all the same functionality, with limitations that are usually liveable. Plus I’ve noticed some vendors stop their drivers installing on server OSs which is a little annoying.
Finally we’re going to spend a lot of time developing a solution in a little plastic box that’s easily dropped, lost or stolen, so we need to consider backup. A large capacity USB3 drive, stored in a different location to the machine (with a calendar reminder to actually do a backup) should suffice.
As for the VMs, clearly these will be task-dependant, but there is a usually common theme. We’re going to need a Domain Controller; I would suggest two being helpful as there are lots of other technologies where AD sites and services play key roles. A tame machine running SQL server is likely necessary as many other server based technology makes use of that.
A small ‘servicing VM’ may come in useful. Patching is an interesting question, how do we (should we) do it? Our mobile datacentre test lab is pretty isolated from the rest of the world from a security point of view, but how valid would any tests be running service-pack-less Windows 7? So a machine running WSUS may be useful. We might also need a route out to the internet. Instead of fiddling with the VMs on a host-by-host basis to determine which network it’s connected to, stand up a small dual homed VM (one on the internal network, one or more on external network(s) with TMG server acting as a router/ proxy server. This in itself can also be useful to give the essence of reverse proxying. If we assume the same machine is always going to be live, having it also act as a file server can be useful to share tidbits between machines that might not be on at the same time. This machine could also run a DHCP server, though we need to be very careful what NIC we bind it to!
A Lync and Exchange deployment, sized to reflect your interest in that technology completes the infrastructure ‘must haves’. Some would include SCCM and SCOM in that list too.
We mustn’t forget clients – I find XP is still a necessary evil to test and understand how it operates, and having a number of Windows 7 and 8.1 clients to hand is vital. Using Disk2VHD on client machines and import them into this environment is not a perfect replica, but might be closer than a vanilla windows PC build. You may decide to build a mini VDI farm that will auto provision machines, or just stick with a simple snapshot and restore mechanism, perhaps disabling machine password changes via Group Policy.
Tying all this together should be a curated collection of PowerShell scripts to return machines to known-good settings and ‘before the demo’ type scenarios. Everyone knows the $DEITY of demonstrations ensures that practise goes perfect but demonstrations go disastrously, and having a simple command to run that resets is far better than a bunch of clicks at the last minute. The same setup also helps reproducing problems and testing ‘whatif’ scenarios accurately.
We’ve not mentioned Azure yet; this lends itself incredibly well to test and dev environments and I guess a common first route into Azure is standing up a test lab. Suitably sized and used, a pop-up lab in Azure is much cheaper than the hardware discussed here. Azure should definitely be part of the test environment arsenal, but doesn’t formally support workloads like Exchange and you wouldn’t want to build a laptop from an Azure hosted SCCM server. Plus, as good as it is, it’s no use to me right this second as I’m on a train with not even a GSM signal.
Our local VMS can readily be moved into Azure so it’s feasible to build an environment locally and move it to Azure when we want to collaborate. A full site-to-site VPN between our local VMs and Azure is difficult to achieve as we’ll rarely be able to meet the external IP requirements, but the point-to-site VPN feature can sometimes achieve the same ends.
So we’ve built an all-singing, all dancing test environment, that might also work as your only laptop; yes it is not going to be cheap, but the value in being able to spin up a few machines to answer a question in minutes is incredibly valuable; also you can’t be an expert in everything, but you can put yourself in a position to gain that expertise quickly, and this solution gives just that.