Part 1 of 2: Before You Sign Up
With e-commerce and corporate database driven web sites becoming more commonplace, many of us at some time in our careers may be faced with the challenge of finding a reliable host our for our web database.
In the first half of this two-part article, Jon Reade presents his twenty point plan to reliable database hosting, and goes through some of the considerations and decisions he recently had to make in choosing the right host for his database.
This article is about choosing a database host from my perspective as a SQL Server DBA. It looks at the issues faced by a DBA when choosing a good, reliable host, who can provide quality customer support and good response times. A web host provides IIS and SQL Server hosting solutions, which is different to an Internet Service Provider (ISP) who supplies access to the Internet (ISDN, ADSL, broadband). Whilst an ISP may offer some web hosting packages, they are often aimed at home users, amateurs and businesses taking their first steps into the world wide web. The focus of this article will be on web hosts offering hosting services, not Internet access.
I will cover issues such as narrowing down your choice of potential hosts, to choosing one that's right for your specific business needs. For more general articles and information about choosing a web host, please take a look at the web sites I make reference to.
When I recently embarked on the challenge of looking for a new host for my employer, I found there to be a huge number in existence. To cut down the potentials and create a short list of ten I targeted my research at business-only hosts, avoiding companies offering services to the home user. I wanted a host which understood my needs as a business customer and that issues such as bandwidth, up-time and user-access speed were imperative to the success of my company's web site and its users.
The first thing to do when selecting a new host is list your minimum requirements so that you can start looking for companies which offer those services within your budget. You will probably be liaising with your company's webmaster as their requirements will affect your choices, and they will probably have the final say in the choice of host.
You should be able to get exact, definitive answers to the following questions from a web host. Since everyone's needs are different, no weighting has been attached to them - a gaming site is going to have very different requirements to a mobile phone vendor. Pick and choose the ones that matter to you and use them accordingly.
SQL Server Connectivity
Does the host allow you to connect to your SQL Server through Enterprise Manager and Query Analyser? Most do, but you need to know this before you sign up as it may change your working practices unacceptably if they don't. Who is responsible for creating the web database at the moment, and who will be copying the database and stored procedures from the web development to live SQL Server? Make sure the web developers are catered for too.
Make sure your chosen host offers you a web console front end so you can manage your services. Many hosts now have large online management applications so you can do such things as add services, change your personal details, view web logs, how much bandwidth you have consumed, contact technical support and perform administrative tasks on your web site. And because many of these are automated, you can do things without having to wait for human intervention and have changes or new services available immediately.
It's rare that you can or would want to backup a remotely hosted database. After all, you need to do it regularly and you've got to squeeze the backup file through a small pipe back to your premises. Therefore you need to ascertain that the web host provides backups, preferably as part of a service level agreement (SLA). If they do backups (walk away if they don't), how often are they performed? Can you afford to loose 23.5 hours of database entries if the database server heads south just before the next full daily backup is due? Find out how often they back up.
Most custom e-commerce sites cannot be fully backed up, so you will need either regular transaction log or differential backups, which will probably cost you more, a dedicated server, or an outsourced e-commerce service.
Also consider using DTS from your remotely hosted database, backing up essential data over the net to your own database server. This can provide you with a simple, practical way to schedule a job to retrieve critical data from the web hosted database. There are a few simple questions you must ask yourself if you choose to do this. Is my data being transmitted in clear text over the Internet a problem? Will my incoming Internet pipe support the amount of data I want to move at the frequency at which I want to move it? Does the data which I have DTS'd out count against my host's monthly bandwidth allowance? Don't just think of the flow of data between the web pages and the database - think about the flow from the developers to the server and from the database back to you.
Ask yourself how much disk space you need right now and think about much it is likely to grow. 10GB is better than 50MB for the same price, but if you only need 5MB to support your site there may be no advantage. Work out how much you need and how much it is like to grow over the next two to three years. If you can't reliably answer that question, ask your host about the price of extra disk space - it's often much more pricey for database space than web space.
Enquire if the transaction log is included in the disk space allowance - a 100MB database package may mean a 50MB data file and a 50MB log file.
This is an important one. Do you have a limit on bandwidth, or is it classified as "unlimited"? The latter should be treated as a warning sign - every host has only a finite amount of bandwidth available to them. It is better that they specify a limit (eg 5GB a month), but state that if you go over the limit, they will either add a small charge for that month, or ask you to upgrade to the next plan if it happens on a regular basis.
Most so called "unlimited" hosts will throttle your website's bandwidth (which isn't good for customers when it gets busy), or are being economical with the truth. They have to pay for their bandwidth, so you're not going to get something for nothing. Ask them what happens if you have a particularly busy month. Do you have to upgrade to a more expensive package immediately? Or do you just get billed for the extra bandwidth used until you know you really need to move up to the next package?
As a DBA this can be particularly relevant as you may have to restore potentially large amounts of data. Liaise with your in-house webmaster to find out how much data they expect to be downloaded by users and look at your current web logs to set some estimated bandwidth figures. If you make downloads available to users, how big are they and approximately how many downloads do you foresee each day? Hosting even modest downloadable executables can mean your monthly bandwidth limits are soon exceeded (incidentally, this is a very good reason for small ISV's to migrate to .NET - your executable sizes will typically be much smaller, as you can provide a link to the .NET downloads on Microsoft's own site if the user needs to install them, which means they do not need to be a part of your own installation package).
Is your web site dependent upon features in a particular version of the OS or database? If so, make sure that the host supports it. Consider newer features that have been introduced with certain service packs. If your web site uses them, you may have to wait for your host to catch up before they are available to you.
Does your site code depend on calls to SQL Server features that you may be prohibited from using? These usually include DBCC commands, security statements and extended stored procedures. If your site uses these features, ask first.
Have you considered moving your web site and database to a foreign web host? Measure what you can get at home, compared with what you can get in another part of the world for the same price. Most businesses are not in the same city as their hosts, and most technical people are happy to work by email. So why not look at what other countries have to offer?
But before you jump in, remember to factor in issues such as the following:
Time Zones and Support Hours
One or two hours difference isn't going to make much difference, but three or more hours may create issues when there's a problem that needs to be resolved. Most serious web hosts have 24x7 support, but it's not going to be as good at midnight as midday. If the host only offers support during business hours, do they overlap with yours? If you have a major problem and you're wide awake because it's the start of the business day, what are the support team doing? If their time zone means they're still asleep in bed, you might be disappointing your customers if your site or database is unavailable to them and can't be fixed due to lack of available staff at your host's site.
Peak Times and Backups
If your site is established, you can easily calculate when its peak hours are from analyzing the web logs. Ask your host when backups take place and, particularly if hosting abroad, work out if this presents a potential performance problem for your web site's response time. If your users are mostly based in another country then consider hosting the web site and database in that country.
If your country's exchange rate is tied to that of your web host that's fine. If not, a sudden shift in rates could make an attractive offering no more expensive than what you can find at home. Look at historic rates and consider whether the exchange rate is likely to move in or against your favor over the long term.
If your business is based is Europe and your host is in North America, think about differences in currencies, time and date formats, measurement systems and even number formats. These problems are rarely insurmountable, but they may require an extensive review and re-write of parts of your web site, applications or even database code, depending on what you do with it.
You may need to assess the cost of doing this in man hours (including the cost of estimating it), and figure out if it's offset by the cost savings, how long it takes to recoup those costs, and if you can judge that you will be staying with that host long enough to justify the extra work involved. If you're only saving a few dollars a month, the answer is probably "no".
If your site depends on a non-default collation sequence, consider how you're going to handle it. Most hosts will only cater to default database installations unless you pay for a dedicated server. If you can't afford that, you need to cost out the time to re-code your site.
Never mind how good the offer, can you seriously deal with people who speak a different language to your primary one, even if they do speak yours? In a technical arena, it is very easy to introduce misunderstandings through language differences. Even if it's your own language, differences in accents and dialects between countries can create problems and misunderstandings, especially if your main technical people have strong regional accents. This is a somewhat intangible problem as it's not easy to measure, but can be the source of much frustration and lost time to your business.
Research their Customer Service Record
I always search the web for references to a company, whatever their line of business, before signing any contracts with them. Go to AllTheWeb or Google and search on +"[HostName]" +"web host" +review +service, for example. Spend some time looking at the results. If a web host is being heavily criticized for poor customer service then move on, however tempting the price.
Outage Times for SQL Server and IIS
With a good web host, SQL Server will be on a separate server to IIS. This is an obvious benefit to performance and security, however you have to expect greater outage times, as you will be dealing with the combined downtimes of two servers rather than one. If you can get outage times for their database servers then this is useful, but rarely published. It sounds obvious, but remember that SQL Server reliability can only be as good as that of the operating system it's running on. As a rule, the more recent the operating system version, the better.
No hosting package is absolutely perfect, but you have to work out what an acceptable uptime is for your site:
|Uptime per year (%)||Approximate downtime per year|
Look for independent measurements of web host services. I always start with a site such as Netcraft for objective measurements on host uptimes and reliability. Remember, you will always pay more for guaranteed higher uptimes. With a heavily hit business web site this may be costly enough to justify moving the whole hosting operation in-house.
Find out how long has the web host has been in business. Many hosts have been around since the mid 1990s. Be aware of placing your business with newer start-ups unless you know good things about them. They'll be less experienced, may still be suffering teething problems and may not give the support that a longer established host can offer. Web hosting is a cut-throat market and a company has to be either very cheap, or very good to survive. The mediocre tend to go to the wall unless they spend huge amounts of money on marketing. The latter tend to suffer from high customer 'churn', so they have to spend a lot of money on advertising to attract new customers - money that could be spent providing you with better services. Once again, search the Internet for customer reviews.
Windows or Unix?
Does the web host specialize just in Windows hosting, or do they offer Unix too? Because it's more expensive to license, many hosts only offer Windows hosting as an alternative to their basic Unix packages. If they have come from a Unix hosting background, they probably do not have as much support experience in the Windows arena. Worse still, they may only be paying lip service to it so as not to loose business. If your host offers both, then to be good at supporting both, they'll need more staff to be as good as a dedicated platform host. This may be reflected in higher hosting costs, or poorer service.
Finding a Host
One good way is to put together a selection of web sites you like and find out who their host is. You can ask them directly by contacting their webmaster or even possibly their DBA, but this information may be freely available on the Internet too - check out Netcraft as a starting point. (NB: Don't hassle the guys at SSC, they've got enough to do!) Ask your colleagues and friends in IT if they can make any recommendations, both good and bad. Look for recommendations from a host's own customers. Most hosts list some reference sites of satisfied customers. Judge for yourself how responsive you think a reference site is. If you think it's slow and you decide to host your site with the same company, there's a good chance your customers will think your site is slow too.
Search the web for reviews from other people. If you find a web host is being heavily criticized, there's probably a good reason for it. Check out sites like ISP Reviews.
Ask people who haven't got a vested interest in acquiring your business for a recommendation. Use your industry contacts to find out who they're hosted with and if they're happy with them. Be aware that a few unscrupulous web hosts are in the habit of encouraging their staff to praise their own employers on other sites and bulletin boards, giving a false impression to prospective customers of their abilities. Many review sites no longer allow users to make anonymous postings, but it's easy for them to find ways around it.
Look for references on the host's web site from satisfied customers. Customers are quick to complain, slow to praise. If they've bothered to say their host is good, check out their site, and double check that they are still with the same company. You can use one of the whois servers on the web to find a site's host, most registration sites have one.
Look for hosts who know their target market. Picking a host because it's got a full-color spread on the inside of ShinyNewGadgetsMonthly magazine is not a good way to choose. They are after the business of those who see their adverts in passing when they visit the news stand. Look for specialist hosts who market themselves on SQL Server and developer websites. You'll usually find a discussion about them there too - if not, start a new thread and ask!
Read the article about selecting a host at The ISP List - there's a lot of good, general advice here.
Can you pay for your service monthly, or are quarterly or yearly payments demanded? If the service level plummets, and the host's technical support people don't fix it, you may need to move your site quickly. Ask yourself how much you can afford to loose in hosting costs, how much notice you need to give to get a refund, and how much business your site could loose from a poorly performing database server. Do they offer a no-quibble 30-day money back guarantee? And find out what the notice period is if you want to terminate your contract quickly.
Host or Reseller?
Many hosts attract some of their sales through associates or resellers. Look for the hosts themselves as you'll probably save yourself money and have fewer contacts to deal with when setting up your site and database.
Is the domain name registered through the company hosting your site, or with an independent domain name vendor? The latter usually offer the ability to point your domain name at any DNS belonging to any other host. They own the domain's tags and usually allow you to point your URL to another IP address through an automated browser-based system which takes just a few minutes and is propagated around the Internet in 24-36 hours.
However, if your domain is registered through your host and you want to move to another host because of poor service, they may not be so co-operative in releasing the tags. I have experienced this before and suffered. This can take 5-6 weeks, with you stuck in the middle between your current and new host, each claiming the other is at fault, but it's usually the current one holding on to the tags to prevent you from moving your domain. And there's nothing you can do about it.
That completes part one of this article. In the final part I shall be looking at ways to judge whether your new web host is living up to the promises they made when you signed up.