Layers of Web Development, Server Edition

New clients often ask why I don’t make changes directly to their websites. They are sometimes surprised when I ask them to log into a special location to view proposed changes to their sites.

Why so many sites?

Before I fully answer this question let me say I understand. Many small businesses may have initially hired someone who tinkered around on their site (or maybe even tinkered themselves). Sometimes things broke. Then things were fixed. I get that. Until recently it was expensive and difficult to have many of the features available to the larger enterprise customers. Some of those features are special places to work on and review websites before they go live.

Now it’s much easier.

It isn’t yet super simple, but before I get into some of the issues and ways to fix them (in another post) let me explain a common four layer architecture for web development.

Development. Testing. Staging. Production.

The part my clients are most familiar with is the production server. That’s the website! The one the world sees and interacts with. The one you want perfect and always working optimally.

The other layer that most understand is at the very beginning, the development server (or computer). This is where I do all the knitty gritty work on the site and figure out what works, what doesn’t, and how to technically meet the business goals for the project.

Once things have passed this first stage, the next ones are often new territory for many of my clients, owners of small yet growing businesses.

I prefer when both of the middle two environments exist but it doesn’t always happen. It’s ok.

I have a place where my clients can test their site, review features and approve changes. Sometimes this is the only step before we jump to production, but as prices become even more favourable to my clients’ budgets, more are able to grow into a staging area. This is a mirror of conditions on their real site so we can make sure there are no surprises due to differences in software versions between my server and theirs.

So why so many servers? Hopefully by having to clear three hurdles before we make it to production we can identify and fix bugs and not have the website break and go offline or work differently following an update.

In future posts I’ll talk about creating and working with these special environments.