Choosing a host for your new website or application
I regularly advise clients as to which hosting provider to utilize for their new website or web application. The choice is wide and varied, and there is no “one-size-fits-all” solution that I point to every time. If you are currently considering your hosting options, or are looking for a place to start your research, you may well find this brief guide helpful. I’ll start off with a definition of terms, then detail a small checklist of questions you will need to answer, and then finish up with a brief summary of my preferred hosting providers.
The Trade Lingo
VPS – Virtual Private Server: This is a common term for a hosting server that actually lives on a shared physical server. The server acts like a ‘real’ server, but is actually sharing the underlying physical hardware with several other virtual servers using virtualization technology. Not surprisingly, this economical use of physical hardware translates into cheaper rental rates for the customer. However, using a VPS brings the increased risk of sharing the hardware with a ‘noisy neighbor’. That is, you need to be sure that you are not sharing the physical server with another virtual server that is resource hungry and prevents your server from getting to the CPU or other physical resources in a timely manner. Clearly, when choosing a VPS-based solution, the fine details of the offering should be examined to ensure there is fair and equitable provisioning of server resources among virtual nodes.
Dev Ops or Sys Admin: Technical resources who can deploy and manage the website on the hosting provider. Sometimes these are in-house experts at your organization, or you may utilize hired resources provided at extra cost by the hosting provider. More commonly, the web developer who built the application for you is forced to serve as an ad hoc Sys Admin. This is not a good route to follow as development of a website and deployment of a website are separate disciplines with conflicting priorities.
PaaS – Platform-as-a-Service: Some hosting choices actually offer a complete Dev Ops function with them. That is, they have built the offering out to allow for auto-managed deployment of your application or site. Think of it, in very rough terms, as offering the ability to upload and deploy a site in much the same way as you would upload a batch of photographs from your local computer to an online photo browser. Sites running on a PaaS provider are often amazingly maintenance free, but PaaS does impose restrictions on what your application can or cannot do, and how often it can do it.
Elasticity , or Elastic Cloud Computing: Refers to a strategy of dynamically providing additional capacity to your hosted applications as they experience more demand. This is an approach popularized by Amazon Web Services and adopted by many others. This strategy allows you to avoid having to pay for redundant capacity, which is a traditional way of dealing with scaling issues. Elastic cloud computing is a brilliant concept, but one that only the world’s most popular and heavily trafficked sites need to consider.
Issues To Consider Up Front
Generally, the choice is narrowed down to a few options by answering these three questions first:
1. Do you have a Development Operations or Systems Admin group you can lean on?
2. What is your project’s technical ‘stack’?
Your website or application will be programmed in a specific language, and live on top of a specific set of complementing frameworks, such as a database and a web server. This combination of technologies is generally referred to as the ‘stack’. The choice of stack is important when choosing a hosting platform. Some hosts cater to a specific stack, whilst others are agnostic. For instance, Acquia is the dominant player for Drupal-based site hosting, whilst Heroku enjoys similar hegemony in the Rails world.
3. What kind of regulation and compliance restrictions are you subject to?
Recommended Hosting Providers
With these thoughts in mind, let’s move on to an assessment of the current market offerings with which I am familiar and often recommend to clients. I’ll break out the listing in to three segments: PaaS, VPS and ‘niche’ providers. I’ve also included some basic pricing information, as well as a information on which tech stack the solution is best suited to:
Pros : Supports a wide variety of technical stacks and features, and has a simple command-like deployment toolset that makes it trivially easy to get your application ‘live’.
Cons : Relatively new service that has not been exstensively road tested or endorsed by major brands.
Summary: Well worth serious consideration if you are looking to standardize on a PaaS offering across several projects and languages, and you have $100 or more a month to spend on hosting costs.
Pros: Has great support in the Ruby-on-Rails community, and is diversifying across other languages and frameworks very quickly. It is now part of large enterprise vendor (Salesforce.com). Offers a large ecosystem of plugins that allow developers to add specific services to their sites without having to manage those services directly (e.g. content caching to speed up site performance).
Cons: Static IP addresses are very expensive on this host, which can hamper your efforts to run a secure website or integrate with third-party systems. It also has suprisingly poor Salesforce.com integration considering they are the same company now.
Summary: Should be your go-to option if your primary development language is Ruby-on-Rails and you run small-to-medium sized sites. Not recommended for an e-commerce operation or something requiring heavy security. Should also be on the shortlist if you do Java-based web development. Will run about $50 a month for a basic site, but costs grow quickly as application requirements become more sophisticated (e.g. caching, monitoring, large data storage).
Pros: Free service tier; fairly mature offering; easy to get a very simple static site up on it.
Cons: Limited to Python language, only supports a subset of Java.
Summary: In general, very heavy on constraints and has a surprisingly limited auxilliary toolset (data import/export tools etc). Ideal for a light static website with limited or zero database interaction (for example, a small corporate website or a restaurant website) that you want to run for a next-to-nothing monthly cost.
Pros: De facto choice for deploying Drupal sites, with a very healthy portfolio of brands under their roof. Choose between a managed or independently managed instance.
Cons: You have to run with their Drupal stack (version, plugin library, etc.) rather than the particular flavor your team developed against.
Summary: Basic hosting with Acquia will cost at least $50 a month, but this is money well spent if you are building your sites on Drupal and have little or no in-house Dev-Ops support.
Pros: The marquee name in website hosting that offers a plethora of add-ons and secondary services to it’s core VPS instances.
Cons: Complicated to administer and complicated to price. Furthermore, elastic cloud features are not needed by most sites.
Summary: The go-to option for enterprise-grade website initiatives that have a need to develop an ecosystem of web ‘parts’ in the cloud. AWS has you covered for such auxilliary technologies as elasticity, caching, content-delivery-network, workflow engine, monitoring…and the list goes on, with new services in the pipeline all the time.
Pros: Offers a wide variety of hosting services for different budgets and different uses cases. Managed hosting is available, as is self-service VPS, or a hybrid model of both.
Cons: Rackspace is one of the biggest hosting providers in the world, with thousands of paying customers, so don’t expect detailed personal attention to your account or focussed customer service.
Summary: A very strong variety of offerings at competitive prices. Expect to pay $50 or below for a simple website, and $100 or so more a month if you want them to manage your server for you (hint, you probably want this option if you dont have a dedicated Dev Ops team).
Pros: Friendly yet professional boutique hosting provider that has some excellent rates on VPS and non-shared instances. Arguably the best customer service in the industry.
Cons: Despite great customer service, still primarily a do-it-yourself offering that will require some familiarity with working at the command line and managing a website in production.
Summary: If you are new to VPS hosting, and have a limited budget, Rimu is a great place to start. A typical WordPress-style website can be up and running for about $25 a month, with stellar technical support from the provider if you run in to problems.
Pros: Affordable service with wide choice of location hosts and a good set of self-service admin tools (such as back-up servers, clone servers, etc.). Can choose to which continent to deploy your website at no extra cost.
Cons: Doesn’t offer dedicated non-shared server instances. Limited technical support.
Summary: You can’t go too far wrong with these guys if you are looking to host a site or multiple sites for around $30 a month, and gain some light Dev Ops capability.
Pros: Offers a plethora of enhanced security options for full HIPAA compliance, such as encrypted file systems for protecting ‘at rest’ data. Ideal for healthcare and insurance providers who handle confidential medical records.
Cons: Expensive option that still leaves a lot of configuration details to the end user. You will need top-notch Sys Admin support to use this service.
Summary: This is a true niche option, that caters to that subset of corporations that want to store and protect medical records in the cloud.
Pros: Salesforce.com customers, and there are lot of them out there, can build out their own custom applications on the Salesforce.com platform. You may want to use this option to build out specific websites against your Salesforce.com data (for example, a custom marketing campaign microsite that harvests lead info and siphons it directly into Salesforce.com). You can also enjoy virtually zero Dev Ops overhead as this pure-platform play allows a developer to build out web applications directly on the servers that are managed by the Salesforce.com Dev Ops team.
Cons: Although simple sites are free on force.com, it will cost you to add users to your site, and this can get very costly. There are other usage constraints that should be thoroughly investigated before using this platform. Lastly, your web developer(s) will have to work with the force.com toolset, which although improving all the time, is not on a par with tools they would regularly use to build a website.
Summary: Good choice if you are committed to the Salesforce.com platform and want to build out additional public facing sites on top of your data there. Beware of hidden costs, however.
I hope this precis of the hosting providers I normally recommend has been useful to you if you are looking to choose a host yourself, or are working with a development team that is doing so on your behalf. To recap in brief; if you have a lot of definite bleeding-edge requirements and a very commited Dev Ops team, Amazon is a clear choice, but otherwise Rackspace is your best bet…at least for generic VPS hosting. If you are looking for a more personalized service, I heartily endorse Rimu, closely followed by Linode (especially if you plan to run your site out of various global locations). On the PaaS side of things, I am very excited about DotCloud. They have executed well so far on their vision to provide a seamless platform that web developers on the most popular stacks can easily deploy to without the need to specifically engage a Dev Ops team.
Thanks for reading, I welcome your comments on my suggestions!