Downtime has now become such an important consideration in the Internet world that large companies are publicly ridiculed for their problems in this area; Amazon.com ‘s downtimes of as little of half-an-hour are now routinely recorded on Internet news sites.
When discussing downtime, companies usually use a percentage figure, such as 99% or 95% service availability. However, while obviously insane service figures such as 50% are easily spotted, it’s worthwhile doing the math on the higher figures: Given that there are 525,600 minutes in a year, 95% availability actually means you lose 26,280 minutes in a year, or 18 complete days. So, your 24/7 online retail operation is going to lose nearly three weeks simply because your ISP can’t do more than 95%. 99% does slightly better, losing you 3.6 days over the course of a complete year.
Usually ISPs will quote downtime as planned maintenance time. This time is usually given over to activities that improve the quality of service that you and your visitors will receive and you should always factor this in, mainly to ignore any ISP that claims 0% downtime. Any ISP that doesn’t bother to maintain, upgrade or otherwise enhance their internal operations will most likely experience a catastrophic failure that will firmly put that 0% figure into the realms of fiction.
You will experience some downtime during the operation of your company – the trick is to minimize its effect on your business by trying to schedule downtime during quiet periods. Foreign companies hosting in the US beware; a number of ISPs will perform maintenance on Thanksgiving when the US is quiet, but being the last Thursday in November, your UK business may well not be.
The bottom line is this: the support that your ISP provides to you will dictate how you handle downtime. A good ISP will e-mail you, perhaps a month in advance, indicating the exact 30-minute slot when you will lose your servers. This gives you time to plan, but it’s probably not worth warning your customers in advance, as the chances of them caring enough to remember are slim.
The other issue that you have to deal with is if your ISP experiences an unplanned fault. There are two things to think about here:
- Firstly, you have to know as quickly as possible that your server has gone down – there are a number of services that will constantly watch your site and let you know when it’s down, such as Red Alert.
- Secondly, you have to find out when the server will be up again – depending on the kind of failure, your ISP may be able to e-mail you and tell you about the problems, or post a message on their Web site (unless they’ve gone down completely!). Otherwise, you’ll have to phone into the ISP to find out what’s going on and when it will be remedied.
Your ISP will also issue a Service Level Agreement where the level of service you can expect is outlined; if they don’t live up to their end of the bargain, you may well be entitled to compensation.
Most ISPs will also allow you to manage your dedicated server or servers through a remote control package (examples being Compaq’s Carbon Copy or Symantec’s PC Anywhere). All of the server flavors of Windows 2000 will also feature the terminal services featured in the current Windows NT Server 4.0 Terminal Server Edition, so expect to see easier management of remote systems in the future.
Disaster Recovery and Fault Tolerance
Assuming the ISP you choose is sufficiently capable of providing a service, the only other things you have to worry about are the servers themselves. As everyone knows, computers are notoriously tricky things and will almost always crash when you’re least expecting it. That’s one of the reasons why it’s a good idea to invest in redundant technology, both on a macro level (such as having machines to take over when one goes wrong) and on a micro level.
The most common micro-level redundancy technology to watch for is RAID. RAID (or Redundant Array of Inexpensive, or Independent, Devices) is a hard disk management technology where a number of drives (an array) are treated as a single disk. RAID makes disks more tolerant to faults, and can automatically restore data should one of the drives in the array fail. RAID comes in many configurations, and in software and hardware implementations. For your database server, use the highest level possible – hardware controlled, hot-swappable, so-called RAID 5. This level provides the ability for system administrators to remove the offending drive, slot in a new one, and have the data on the failed drive be recovered all without bringing down the machine. Your ISP will be able to advise you on your options.
The best method for keeping a server alive goes under the maxim that prevention is better than cure. Your ISP should be able to constantly monitor the health of the servers that host your site and spot problems when they occur. Modern server hardware is able to analyze itself constantly and report back possible problems to the systems administrators through network management products (such as Hewlett-Packard’s Open View or Intel’s LAN Desk). A good ISP should be able to e-mail you when an alert comes in to indicate that one of the servers may be experiencing a problem and that it may have to be taken offline or restarted to fix the potential fault.
Backups are also a critically important element of your hosting scenario, although not in the way you might imagine. The VB components and ASP pages posted on the server will simply be copies of the versions on your development machines, and so you’ll always have a backed up copy of this development work available. Therefore, it’s not important to backup the code that runs the site. What is important to back up, however, is the SQL Server database. There are a number of ways you can do this:
- Configure the database to backup to a tape drive. Your ISP will have to handle swapping the tapes, as you are unlikely to have daily access to the server.
- Use Data Transformation Services, or Publications, to export the database to another SQL Server database on your network on a regular basis. As Jo’s Coffee is storing sensitive customer information in its database, it wouldn’t be wise to use the Internet to transfer this data as it could be intercepted on its way over to the other server. However, it’s neat to have a copy of the database off site, so consider using a dial-up connection to pull a Subscription off the server.
- Use SQL Server backup to backup the database to a file, and then use a Backup Service
Provider. These companies provide tape-based and online backup services by taking files sent to them over the Internet, encrypting them and holding them until you need to restore a backup.
There are also external factors that can affect your ISP’s ability to deliver quality service. For example, what happens to your ISP if the power to its building is turned off? What happens if it’s in an area of the country with an unusually high thirst for bandwidth (as happens in some areas of Silicon Valley)? What security measures are in place to stop someone breaking in and stealing all of the servers? It’s always wise to learn as much about your ISP as possible – another case where asking around and taking advice can help out. At least, armed with the information we’ve just given you, you’ll be in a position to ask the right questions and understand some of the answers.
OK, after we’ve found an appropriate ISP and they’ve set a server up for us, we now have to deploy our application.
Deploying the Site
Deployment of a site like Jo’s Coffee is a three-part operation involving:
- Creating and populating the SQL Server database at the ISP
- Copying over and installing the components
- Copying over the ASP pages
Throughout this section, we’ll be referring to the production server. A production server is a server that’s located at our host ISP and will be the one from which we actually run our online business (in contrast to the development servers which we’ve been using thus far to build our site).
Creating and Populating the Database
Thanks to the fact that SQL Server can be configured remotely using the management console, creating and copying the database is possibly the simplest part of the entire operation. The only thing you have to watch out for is the settings for the client connection. By default, this is set to be a Named Pipes connection, and this only operates over the NetBIOS protocol. To configure remote servers over the Internet, the client access protocol must be set to TCP/IP.