Most of the companies in the USV portfolio started out quite small. Some even with just a single server, many with a couple of web servers and a single DB server. At that stage testing is straightforward. In fact developers generally have a complete setup on their laptops and stuff that works there is highly likely to work in production.
Fast forward a year or two (in some cases only a few months) and the production setup includes master and slave DBs, dedicated servers for API and RSS, sophisticated load balancing, and so on. Developers can no longer have anything like the real deal on their laptops and code that looks fine locally may simply not work at all in production. Of course at this stage it becomes essential to have a separate testing environment and possibly an additional staging environment. With Virtualization this no longer necessarily means having lots of physical boxes around (although load for load testing that might help), but it still requires a lot of additional effort.
A cloud computing platform should eliminate this issue entirely. First, in a proper cloud platform, such as Google App Engine or 10gen, the code is completely isolated from the hardware and network topology. So if something works on the SDK on a developer’s machine, it will run on the cloud. Second, the testing, staging and production environments are all the same! They are simply different instances but all running on the same underlying cloud infrastructure. 10gen in fact has taken this to a level where you can simply flick a switch to cut over (and back should you need to).
The net result of this is that in a cloud computing world many of the current hurdles to proper testing simply evaporate. Can’t wait to get there!
Albert Wenger
Over 100 subscribers