Statement: Readify wants to provide Team Foundation Server hosting in the cloud. We significant amounts of operational TFS experience as well as an understanding of development team requirements.
Over the weekend I dropped the cash required to purchase my own personal dedicated server from a hosting provider in the US so that I could better understand the costs involved provisioning a TFS server which is accessible over the Internet. The server I procured had 4GB of RAM and a number of SATA II drives (popular with hosting providers). On to that machine I installed Virtual Server 2005 R2 and loaded up a number of Virtual Machines:
- Windows 2003 Server R2 with Active Directory
- Windows 2003 Server R2 with Team Foundation Server
- Windows 2003 Server R2 with Team Build (not built yet)
The first machine was allocated 512MB of RAM with a 16GB drive whilst the second was allocated 2GB of RAM with a 100GB drive. Performance is acceptable at this point in time. The whole experience has taught me a number of lessons about the best way to host TFS on the Internet:
- Don’t rely on the configuration of the physical box to be suitable for a TFS installation, hosting providers tend to put lots of stuff on those servers to make it easy to offer up web-sites which almost by definition makes it unsuitable for a successful TFS installation.
- Virtualisation is the only way to fly. Because of the above you really need to go virtual on top of the dedicated hardware so that you can have complete control over what is installed on the box.
- Virtualisation makes disaster recovery a snap. I kind of already knew this but it was reinforced to me yesterday evening when I spent three hours on a customer site attempting to repair a damanged TFS installation (WSS problem). They had virtualised their TFS server which meant we could easily rollback (unfortunately their SQL data files were on a SAN so we actually had to restore specific backups for them that we had taken previously – the moral of that story is that everything that you want to recover quickly should be on the VHD).
- Once the configuration has settled, use differencing disks. This kind of makes sense if you think about it. If you are backing up VHDs its going to take up a fair whack of space, but once your machine configuration has settled down create a differencing disk and just backup that (along with a stable base disk image). This will cut down your backup size significantly, and it is smarter than a changed files backup because as I understand it, its done at a block level, not the file level. The upshot is that you can store many more days worth of backups in the same amount of space.
On a final note, Readify is seriously considering pulling together a hosted TFS offering, the thing that we are missing at the moment is input from future customers and what their (realistic) price expectations are. If you are interested on getting onboard with a hosted TFS offering please shoot me an e-mail at email@example.com. If you can provide me some details like the number of developers you have, what kind of organisation you are (independent consultant/contractor, microISV/ISV, enterprise development team).
Oh – and what have been the costs involved so far provisioning this TFS infrastructure? Well, apart from licensing which is a whole other issue time and hosting probably works out to be about AUD$2600.00 and I’m not finished yet.