5 Fundamental Steps to Deploying a Website

Oct 3 2010 by Mark Biegel | 17 Comments

5 Fundamental Steps to Deploying a Website

Something that is overlooked by a lot of web designers and developers is what is actually involved in the deployment of a website; the process when you’ve finished developing the site, tested to make sure it works, and are ready to push it to a live web server.

In a lot of cases, you will be dealing with clients who are getting their website for the first time, and there is nothing for you to really consider apart from the hosting solution to set them up on. As time goes on, you will start getting larger clients that may have existing websites already, or who have more complicated needs. You may find yourself in a scenario where the outcome could be a very unhappy client with data loss and a whole company’s worth of missing emails and site assets. Here are some basic steps that will ensure that you have covered all the bases for a smooth website deployment.

Step 1: Preparation

There are a few things to consider when you are finalizing a website, and they all depend on what type of deployment you will be completing.

The three general scenarios of a website deployment is:

  1. The client has nothing (i.e. this is their first website)
  2. The client already has hosting and you will be deploying the site on their server
  3. The client already has hosting but you will be moving to a new server

The first scenario is the most desired because you are starting with a blank slate. Scenarios 2 and 3 are a bit trickier and involve a more thoughtful deployment process.

Once you have worked out what your deployment scenario is, you will be able to better prepare yourself for everything you need to do in order to carry out a smooth transition from the old website to the new one.

If you are dealing with scenario 1, then all you need to do is register their domain name and purchase (or provide) web hosting. Simple and fast deployment.

Scenarios 2 and 3 require some information gathering. You need domain management credentials for the existing web host so that you can manage the DNS records (more on this in a bit). You will find that, in many cases, the client has no idea what these are or where to get them, so you will need to do as much as you can before you approach your client.

So let’s gather information on our own. We can use a tool like whois.domaintools.com to find out some information about the existing domain name.

5 Fundamental Steps to Deploying a Website

Type in the domain name and on the results page you will see the whois information. For those not familiar with the term, a whois (pronounced as "who is") is a query of information regarding an Internet resource, such as a domain name. For illustration purposes, here’s the whois information for Google.

5 Fundamental Steps to Deploying a Website

Take note of the various contact email addresses, especially the administrative and technical contact. If you know who they are, then you are all set because you will know who to talk to. If you don’t, just write down their contact details and ask your point-of-contact for the project about them.

Next, click on the Registration tab. You will see ICANN Registrar information (the first line), which you should take a note of. Also, note down the Name Servers listed.

5 Fundamental Steps to Deploying a Website

The ICANN Registrar is the company that registered the domain name. GoDaddy, Network Solutions, and Namecheap.com are examples of ICANN registrars.

If you have contact with the person listed as the domain’s administration or technical contact, either request the ability to manage the domain name yourself or ask them to modify the DNS records for you when your site is ready to be deployed.

If you don’t know the contact for the domain, then you will have to get your client to email or phone them for you.

At the very least, if you mention the ICANN Registrar’s name (e.g. "Hey, you registered your domain name on GoDaddy, does that ring a bell?"), then it might jog their memory and help them recall the information you need.

Step 2: Set Up DNS Records

If you are going to be setting up the website on a new host and you have access to the DNS management administration, then that’s great. Create yourself an A record (the address record that maps a domain name to the IP address of the server) or subdomain record for a live development site such as dev.domainname.com. Point this subdomain to the IP address of the new server.

If you don’t have DNS access but wish to have full control, I recommend using ZoneEdit.com, which is a free and easy, web-based domain manager. Be warned! Make sure you know what you’re doing with this tool; read their DNS basics and FAQ.

5 Fundamental Steps to Deploying a Website

If you don’t want to get this far into the technical side, you need access to their account on their domain name registration service, which will usually have GUIs to help you set up DNS records.

Step 3: Set Up a Live Testing Site

It’s now time to see if the site works on the live server environment.

A practice I recommend doing is setting up a subdomain URL prior to officially deploying the site. Something like dev.domainname.com which will eventually be on domainname.com.

Don’t create a subdomain on the host as this will set up a new directory and make local DNS changes. Set it so that dev.domainname.com acts as a totally separate website. What you want to do is make dev.domainname.com a domain alias (also known as a CNAME record).

So, for example, if you’ve set up an A record (the record that maps the IP address of the web server to the domain name) like so:

example.com.     A     192.0.2.1

You would set an alias for dev.example.com as such:

dev.example.com.     CNAME     example.com.

By doing this, you can set up the website in the same physical location that it will live. You want to be as accurate as possible here so that you can do your final tests as if the site was truly deployed (which, technically, it is).

You can set all folder permissions and other settings, and then run tests and benchmarks to see how the site performs on the server.

If you’re hosting on the same server as the old website, the best you can do is upload to a directory named dev and set up a subdomain DNS record for it while you test. This allows the existing site to function normally, while still allowing you to test the web server environment. You will have to move this when it is time to deploy.

Step 4: Set Up Email Accounts

Developers deploying a website often overlook email, but it will be a priority to the client. Does your client have mail hosted on their old server? Are you moving their email?

If their email is currently in the same hosting account as the old website, then you will probably be moving mail to the new server. If so, collect all email account addresses and set up the exact same accounts on the new server. In most cases, you then won’t need to change anything, it will just transition to the new mail server at the same time the website does.

If the client has an internal mail server or third-party mail hosting, then you will need to make sure that the MX records (the DNS records that deal with mail) are all correct.

If your client has no idea, then a quick test is to ping the mail server, and if it has a different IP address to the website, then it’s most likely hosted on a different server and you need to double-check the MX records and make sure whoever is managing the DNS is notified of what is happening.

MxToolbox will give you all the information you need about the domain; it will list information about a domain name’s MX records.

MxToolbox

The last thing you want to happen is for the client to lose email.

Step 5: Backup and Go Live

Even if you are hosting on a new server, take a full backup including any databases of the old website, as you never know when you might need something.

OK, all set to go live. If you have full control over DNS records then just change the A record for the domain name so that the IP address is set to the new web server and in about 20 minutes the new website will be live.

If anything is not right, just change it back to the old website and do some testing.

If you are changing Name Servers to point to the new host, then this can take anywhere up to 72 hours, so make sure you have the time to monitor and fix any errors as they happen on the new website. Because this is a change in name servers, you can’t just change it back quickly, so be prepared and give yourself enough time.

If you are hosting on the same server and removing the old website to make way for the new one, then do it at a time where you can monitor and fix anything live as it happens.

Give yourself enough time and try to go live in the business hours of the companies that you will need to contact if anything goes wrong.

All done. If you follow these steps, you should have a 100% smooth deployment of your new website and a happy client to spread the word of your business.

Website Deployment Checklist

  1. Have access to DNS record management or know the people to contact
  2. Set up the DNS records and make sure that all the settings are correct
  3. Set up and test the website on the production server (where it will live)
  4. Set up email
  5. Back up the old site (if applicable) and deploy the new one

Related Content

About the Author

Mark Biegel is a Web Designer and Programmer from Brisbane, Australia. Specializing in PHP, HTML, CSS, JavaScript, as well as design, he has been riding the highs and lows of the web industry for the last 10 years. You can find out more about Mark’s various projects at markbiegel.com and connect with him on Twitter.

17 Comments

Lorna

October 3rd, 2010

Thanks for this Mark, I recently went through this whole process and wish I’d read this before I did it- it would have been VERY helpful! I am sure it will be helpful to a lot of other people going through the process.

esills

October 3rd, 2010

Excellent post! Although I don’t handle the tech piece myself, your post clearly lays out steps I am now somewhat familiar with. It would be great edited for the client (minus all the how-to) so they could better understand the process, too.

Jake Rocheleau

October 3rd, 2010

Cool read. Interesting to get into the technical side of setting up a web application.

1skyliner

October 3rd, 2010

Thanks for this Mark, am so happy to have found this ,Thanks for the article. I liked reading it

Mark

October 3rd, 2010

@esills – this is a great idea :) As this is the step that clients think is just “flicking the switch” to go live, a documented example just for them would be a greed addition to any website plan.

Bill Sterzenbach

October 3rd, 2010

I’d add:

Setup a test dns record. Call it old.domain.com. This proves that you CAN make DNS changes and gives you a means by which to reach the old server to grab stuff you forgot

Setup a hosts entry in your /windows/system32/drivers/etc folder. This allows you to ‘fake’ the DNS so you can see what will really happen when the DNS is cut over – priceless step

Have a disaster failover plan. Ask – what will we do if this host totally fails? How will we migrate back to old server, etc

anil kukaidya

October 4th, 2010

was looking for article about steps for deploying website and at last found it.

Torstein

October 4th, 2010

I guess before actually launching you should also go through the checklist at http://lite.launchlist.net/

It is much more detailed, though not as much about actually deploying the new website as checking that it actually works.

John G

October 4th, 2010

I like the test server stuff especially. I’ve done it down and dirty by making a subdirectory on the live server and just blocking off the robots and other access to it, but this step makes a lot of sense.

Ronniewylers

October 4th, 2010

Good article. But you need also to discuss the characterictics of a webhosting. So we can check where to place our website

Mark

October 4th, 2010

@Ronniewylers True you need to know the web host spec, but this should all be planned/known a long time before any programming has begun, let alone deployment.

Sarah Jones

October 5th, 2010

The points that you have mentioned above are cent percent valuable. I will ask my designers to view this post.

Joan M

October 6th, 2010

Very interesting article. Thanks for sharing it.

As a personal note, I’d love to see a more detailed description of the whole live development set up.

A couple of other things that could have been nice additions would be to talk about some easy version control system and about how to deploy updates (in contrast to launching).

Permana Jayanta

October 7th, 2010

I like the technical stuff about setting up live testing site

Jonathan Goldford

December 11th, 2010

@Torstein, great link to that website launch checklist. I will definitely be using that in the future. Thanks.

Also, great article.

Raj

June 5th, 2011

Really like the image at the top of the post! did you make that yourself?

Leave a Comment

Subscribe to the comments on this article.