Who needs test servers anyway?

Conventionally, you have a few spare servers at the datacenter for testing purposes. If you’re using OS X, the combination of OpenVPN and Parallels make them pretty redundant.

OpenVPN is something of an overlooked gem—a highly-portable, userspace (uses tun/tap drivers) VPN implementation that works well with NAT, firewalls and routers (unlike IPSec (usually used with L2TP) and PPTP), and uses the OpenSSL PKI for authentication. You can do all kinds of cool stuff like run the server on port 53/udp, which means your tunneled traffic looks like ordinary DNS traffic, and will consequently cause many paid wireless hotspots to allow the packets through. Tunnelblick is a neat client for OS X.

Parallels needs no introduction. While it’s most commonly used to get Windows apps to run on OS X, everything from Linux to OpenSolaris is supported. We have Parallels VMs that duplicate the environment of each machine at the datacenter (these VMs can be shared between different machines, of course). The VMs mean that development can continue unhindered even when disconnected from the internet (something that can otherwise become a problem as the server infrastructure starts acquiring any sort of complexity).

The addition of OpenVPN means that the Parallels VMs can integrate into the server environment as ordinary citizens on the network. (Want to test a new app server configuration without touching your load balancer or database server? No problem.)

The bottom line is that we end up paying less for rack space and bandwidth, and can continue developing when on the CalTrain/plane. Kudos to James Yonan (OpenVPN’s author) and the Parallels team for some sweet software.

In other news, I organised flights back to Ireland over the weekend. Brian Collins, a friend from the UK, is coming to hack with us in Limerick for a week. One of his cool hacks got to the top of reddit some time ago.