We have a worldwide nonprofit organization which receives a modest amount of traffic (or at least I figure it's modest but I have little to compare against -- enter SF)
How do I determine what scale of service I need from a hosting/VM provider?
- What hard metrics work?
- Response time?
- CPU utilization?
- Requests being handled per hour?
- What is reasonable for me to expect a service to handle at different cost levels?
- Should there be limits to my expectations on uptime for a less expensive service?
- Do I need to do a rough calculation of my expected bandwidth and match it with t
- Should I inquire into the kind of internet connectivity is backing my service?
What are reasonable expectations at each cost level for a hosting provider? At what cost level can I get these expectations written as part of an SLA?
You're going to have to judge based on what resources your site is currently using, with CPU and bandwidth being the easiest to measure. Most providers talk about bandwidth in total data transfer per month - a small low traffic site might use only 30GB/mo where large sites will pull hundreds of GB/mo.
Small slices run by good quality operations are cheap, so don't settle for anything less than 3-nines (8hrs/yr) of downtime.
Most companies will offer an SLA of some sort even if it's just in their standard TOS.
The other thing that you're going to want to look at in a hosting provider is what kind of support response you need. Do you need 24x7 instant response? Or is a couple hours good enough (usually the time for an on-call sysadmin to drive to the datacenter)? Or is next-business-day good enough? (unlikely, but possible)
Wherever you go, try and get some good 3rd party references to help you with an idea of what you're getting into.
This will depend on the type of application you're running. The first thing to determine is how much infrastructure you need. How many concurrent visitors are you expecting? What sort of traffic spikes do you want to be able to handle? Is this a static HTML web site or a dynamic application requiring a back-end application server (PHP, ASP, ColdFusion, etc.) and a database? You should load-test your application in a development environment to determine how much load you can handle and whether or not it is above or below your anticipated traffic levels.
Once you know how much equipment you will need to handle your anticipated load, then look at various managed server providers such as SoftLayer. There are dozens of managed service providers who can give you various levels of service depending on what kind of hardware you need, how much of it, bandwidth requirements, etc. Certainly ask them about their connectivity, facilities, battery backup, generators, failure response times, etc. Many providers will not offer an SLA unless you ask for it and pay extra for it.
As for uptime, you get what you pay for. If you're at Joe's Managed Server Co. with a staff of three, don't expect much. Go with a reputable managed server provider that owns and builds out their own network with 24/7 support staff on-site.
Also, consider your future growth. Will the provider be able to upgrade your equipment quickly if needed? Can they provision additional bandwidth or servers within a few hours?
I would recommend contacting several managed service providers and reviewing your needs with them and comparing costs. They do this for a living and should be able to help you determine exactly what you need to meet your needs.