The Importance of Being Testy

switch3 I’m surprised to find many in-house web shops which don’t maintain separate test and live environments. Given the importance of testing and the relative low cost of hardware, it’s interesting there are so many who don’t bother setting up a separate test network.

Why Another Network?
Well, you don’t really need a whole other network, but parallel web and/or database servers are important to have. Yes, I understand there is a cost involved, but here is what you get out of redundant systems:

  1. The ability to test new applications and functions under realistic conditions without the risk of crashing your “real” web site(s). This can be of particular benefit when doing large-scale upgrades or migrations.
  2. Insurance against primary hardware failure. If your main server crashes, you can grab your backed up data (you are making backups, right?) and throw it onto the test server and run it while you’re making repairs to or replacing the main server.
  3. A place where your content managers can preview the web sites and make adjustments without ruining the experience for your visitors.

How We Do It
For our network, we actually have three sets of servers in place for each of our public, B2B and Intranet web sites. We call them Deve, Test and Prod (there are other terms, these are the ones in use when I came on board):

  • Deve – Development: These servers are virtual servers hosted on one piece of hardware. There are web and database servers which parallel each of the physical servers in our “Production” environment. Virtual servers are great for this purpose because they are relatively easy to set up, cost less and are easily recreated if need be. When applications are being written, they are deployed to the virtual servers for initial testing by the development team.
  • Test: These are physical servers which also parallel each of the “Production” servers. In some cases these are re-purposed web servers and in some cases they are desktop PCs with extra RAM and hard disk space. In either case they are set up in the same network as the “Production” servers so we can test connectivity between servers as well as security settings when testing new and updated applications. These are the ones we might use if the main servers crash until repairs can be made.
  • Prod – Production: These are the “real” servers which run our web sites. This the final destination for all code once it’s gone through development and testing and has been deemed “ready for prime time.”

For these three sets of server, the hardware may not be identical, but the operating system and any other software is as close to identical as possible. This helps make sure there are no complications as we move through the development and deployment process.

Is Our System The Best?
Perhaps it’s not, but it does work well for us. If you’re not already doing something like this, I recommend you look into having at least two redundant setups. The piece of mind it can bring in the form of thorough testing and backup hardware is worth the cost and effort of setting it up.

What kind of ideas do you have for for separated development, test and production environments. Please feel free to share in the comments.

—–

Creative Commons License photo credit: dariorug

Tags: , , ,

TwitterFacebookGoogleDeliciousDiggTechnoratiRedditStumbleUponRSSLinkedIn

Comments are closed.

Search the Crossing

2009 PubCon Vegas

Previously on The Crossing …