First, an introduction. Before we dig deeper into hosting options and environments, let’s define what hosting actually is. Website hosting is the service that allows the site you’ve had built to be visible to everyone on the internet. If your visitors are customers in a restaurant, the website hosting is the kitchen.
Without website hosting, nobody sees your website!
The main types of hosting
The top level choice you need to make when looking at hosting, is to decide what level of hosting is required for your site.
- What sort of performance do you need?
- Do you need a SLA (Service Level Agreement)?
- Included backups?
- Ability to host more exotic languages?
If you’re looking at basic no-frills hosting that’s as cost-effective as possible, then it’s going to be a shared hosting plan. This is by far the most common sort of website hosting. Essentially you upload your site, and it’s hosted / visible. There’s no additional work to do in terms of maintaining the environment, all you need to do is run your site.
This might sound appealing, and in many ways it is, however there are a few “gotchas” with shared hosting that might make in inappropriate for your use case.
- Variable performance, as the name suggests you share hosting resources with lots of other websites on the same server. How many is down to the actual hosting provider. It could be lots, it could be only a few. The takeaway is that there are rarely any guarantees with performance though, mileage may vary.
- Security, it’s down to the hosting provider to manage security on the server. You’re sharing a hosting environment with lots of other sites, security can be a concern. Again this will depend on the hosting provider, read reviews and check into their reputation for maintaining reliable hosting.
- Versatility, got a basic PHP website or something based on Wordpress? Great, just about any hosting package can run this for you. The problem arises when you need a specific tool or library as you won’t have the ability to install these on the server, you’re stuck with whatever the host provides. Generally speaking, forget about running modern SPAs (Single Page Applications) based on React, Angular or Vue in a shared environment.
- Backups, check into what is actually offered here. Generally only disaster recovery is provided. If you suddenly need a file you’ve deleted a week ago then the backup plans offered by shared hosting are unlikely to be very useful, unless explicitly offered.
This gives you actual dedicated server hardware at a data centre and represents the other end of the spectrum in terms of hosting environment. You’ve got actual physical hardware that’s rented from a hosting company which you can use as you see fit. No sharing of resources or bandwidth, you buy the resources you need from the outset.
For demanding users, this is often the go-to, there are a few considerations however. Dedicated hosting can be either managed or unmanaged, the difference being that the hosting company maintains the actual environment for you with a managed hosting plan, you don’t need to worry about software updates etc. An unmanaged environment is cheaper but you’re responsible for maintaining the environment, which requires some technical knowhow.
A dedicated server gives you:
- Huge flexibility, run any software or language you need. This could be anything from a complex website, content management system, CRM or gaming server.
- Dependable resources, no slowdowns at peak times – your resources are yours. No sharing with other users.
- Choice of location, generally you get to choose where the hardware is location. If you serve a UK website you can ensure the server is hosted in the UK for quick load times.
Additional considerations might be:
- Additional maintenance, if you go for an unmanaged plan you need to be prepared to put the effort into the platform and ensure you stay on top of things. You’ll need to monitor bandwidth, disk usage, memory usage etc. A managed platform is more “hands-off” but you’ll still require some knowledge of how the server is being maintained to use the resources effectively.
- Expense, vastly more expensive than a shared hosting plan. If you’re looking for a cost effective way to host your site then this isn’t it.
- Backups, ensure this is set up. You’ll normally be tasked with providing a suitable backup plan on the server. You can either do this on-server or preferably off-site in the event of hardware failure.
- Complexity, you’re kind of on your own if you can’t get your site to play ball. Having a dedicated server assumes you know how to work through version conflicts, incompatibilities or platform specific issues. If this doesn’t sound like your cup of tea, either go for a fully managed server or a different type of hosting.
VPS hosting (virtualised hosting)
This is a great middle ground between sharing hosting and a dedicated server. Essentially it gives you a dedicated virtual machine and guaranteed resources on a sharing hosting environment. You’ve not got the investment in actual physical hardware, but you do have the flexibility of doing whatever you need with the hosting and having guaranteed resources.
You need to know how to set the environment up have some technical knowhow, but often systems like cPanel or Plesk help with this. Great when:
- You’ve got a more complex site to run that’s not really suited to shared hosting. You can get this working on a VPS server and have a better standard of service.
- You depend on a site performing optimally 24/7 and want guaranteed resources for your service.
As with anything however, there are additional considerations you need to be aware of, a few of these are:
- Although you’ve got your own “virtual” server, it’s still technically shared hardware with other users. Most providers will have built-in redundancy, but you nee to check this. There will be other users sharing the same hardware even though it appears you’ve got your own server.
- Backups are nearly always an additional expense. Make sure you have something in place for this – preferably a cloud backup solution.
- The platform is yours to maintain, you need to know what you’re doing to get the best from it. There’s a bit more to it than connecting via FTP and uploading your website.
This is a fairly recent way of hosting a website or service. It does away with the more traditional server model and aims to offer a scalable service that fits your needs without any of the maintenance overheads and setup.
The most obvious example of this setup is AWS (Amazon Web Services) who host a huge number of the worlds websites.
The normal business model for cloud hosting is that you pay for the services you use, the more you use the more you pay. This can be billed in a number of ways, the most common being CPU time and bandwidth being charged for.
This is beneficial if you’re launching a website that you intend to scale and grow dramatically. You can start with a smaller hosting cost when you’ve got a smaller amount of visitors, but as the site grows your site will be given the resources it needs to run at a set performance level. The service will scale infinitely with the resources required, the hosting provider manages all this for you.
The deployment method can also differ, it’s possible to do the usual FTP setup, but you’ve got other options too, such as deploying from a version control system like Github.
- Totally hands-off approach, very convenient.
- As fast as you’ll ever need it to be, regardless of what you throw at it.
- Start small, build big – never have to change your hosting or upgrade.
No solution is perfect however. With the great convenience of cloud hosting come the costs associated with it. Be prepared to pay more for a comparable service overall, and be charged for each individual service you need. Additional costs can be incurred for each different facet of the plan, for example:
- Databases (MySQL, PostgreSQL, Mongo etc)
- Email hosting
- Image / CDN facilities
- Optimisation / compression tools
- Deployment facilities and builds
Which hosting is right for you?
There is no one-size fits all, it depends on what you need. In general the normal use cases can be typified to give you an idea of where you should be looking.
- Entry level user
- Basic websites
- Cost effective solutions
- Complex websites
- More technical users / power users
- E-commerce websites
- Enterprise solutions
- Web services / SaaS
- Anticipated high growth
- Corporate solutions
- Tech companies
- Hosting resellers
- Specific platform requirements
- Tech-savvy power users