The Importance of the Environment

Something that strikes me as amazing is the almost universally consistent lack of environments for developers. As development becomes progressively more N-Tier and as N grows the task of development is becoming intertwined with that of hardware logistics.

I was speaking to a leading figure in Sales for Dell in Europe yesterday at IIBN and she told me me that these days Dell offer services as often as just ‘metal’ because businesses are finding the pain of managing their tens of thousands of computers unbearable. She also told me that the number of servers being sold is increasing rapidly and that virtualization is one of their hottest selling points.

I’ve experienced situations where getting a website running has required 27 different boxes, of 22 different types, running 4 different operating systems and connected via maelstrom of routing policies and protocols. Given this massive complexity having a Dev, Qa and Staging environment was a tall order. One that often wasn’t filled.

So why the profusion? Some of the answers are the same old cliches: legacy, turn-over, haste, etc. but what I really find interesting is that often the process of deploying an environment is manual. In this day and age to have the release of your software done manually is unforgivable not to mention time consuming.

Many of the giants of software; EBay, Amazon and Google are good examples, have mastered the art of hardware logistics[pdf]. Giving them a massive amount of substrate upon which to deploy their software. And I call it substrate because they have all taken the step of homogenizing their hardware. This means that you neither smart networks nor stupid networks, you have the best of both worlds with simple networks.

Amazon is actually taking steps to offer their substrate building prowess as a service via the Elastic Compute Cloud which lets you grow and shrink the size of your cluster with single WebService call. Much like their S3 infinite storage solution EC2 (as its called) is, in my opinion, the shape of things to come. Positive words from a man who still hasn’t got his beta invite!

So are we going to end up with just one computer for all? No; but we should strive for simplicity: less types of box, less types of connection and more rapid deployment. Developers are an expensive resource to have idle and good developers dislike being idle resulting in the best ones leaving.

Advertisements

One Response to The Importance of the Environment

  1. […] The Importance of the environment Jan is right about the manual nature of deployments being the source of all evil. I am not sure about his definition of simplicity though. I would prefer to focus on making the deployment easier through automation regardless of the number of different systems. (but I agree that less is more). […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: