Why do I need a hosting solution?

In order for yours or your company's product to be available for the targeted audience (customers), the developed product will have to be available to them.

The product might be web solution of any type, starting from a simple one page portfolio website or simple blogging platform to complex totally customized web application that consists of a lot of moving parts. Having that said, to explain the term "web hosting" using simple words, basically means that you are going to rent part of a very powerful computer located in one of the data centers of the hosting provider, to keep your files and serve your product.

Your hosting solution should always be up and running, otherwise your product is not going to be available for your customers.

Keep in mind that we may receive commissions when you click some of the links and make purchases. However, this does not impact our content, since the recommendations are based only on previous experience.

What type of hosting do I need?

There is no generic answer for this question. It always depends on what type of product do you have, how complex it is, how well it should scale, how much traffic and active users are expected, what is your budged etc. It is not good idea to get a super fast and expensive dedicated server for your personal portfolio and overpay for resources that are never used, or to get a slow and cheap shared hosting for your high-traffic web shop that should be fast and responsive.

Check out the types of hosting solutions explained below, and their best use cases in order to find your suitable hosting solution.

Types of hosting solutions

Please keep in mind that I am not getting too much technical into the hosting solution differences. Things like security, uptime, backups, DDoS Protection, bandwidth amount, hardware or location vary between providers. Most of the providers are stating this options as part of their pricing plans. The links that are shared as suggestions are from trusted and one of the best hosting providers.

Shared web hosting

As the name implies itself, choosing this shared web hosting solution means that you are literally sharing resources (storage, bandwidth, RAM and computing power) on one powerful physical server with other users of the provider.

Imagine this as renting a place where you can be visited by your customers in a really big hall, but you are sharing the cost with other users, that are also having customers visiting them in the same hall. The data should be secured, and not shared between the users that are paying for the shared place, but the traffic is shared, meaning if one of the users have a lot of visitors, it will also impact the other users. If we keep the example with the hall, if one user have big number of customers in the hall, that would leave less space or even slow down the other users paying for the same hall.

Shared hosting concept. Simple illustration showing how the traffic of the other users from the shared space are affecting your customers that are trying to reach your space. More customers for the other users means increased waiting time for your customers
Shared hosting concept. Simple illustration showing how the traffic of the other users from the shared space are affecting your customers that are trying to reach your space. More customers for the other users means increased waiting time for your customers

This is the cheapest solution and it doesn't give a lot of flexibilities in terms of customization. It is best suitable for small websites like blog, personal portfolio, static content that don't use a lot of bandwidth resources and you want to have it up and running quickly, then maybe this is a good way to start hosting your website.

This solutions are usually coming with a administration panel where you have admin access to your rented place, and configure the setup of your website. Some of them might even include a website builders, domains, emails or solutions like portal, CMS, blog, forums, e-commerce etc., where you can use their tools to create your website, and host it using the same provider.

Please note that, using this pre-built solutions might introduce difficulties if you decide to switch your hosting provider.

Virtual Private Server (VPS)

Similar to the shared hosting, renting virtual private server also means that you are sharing resources with other users on one powerful physical server, but the main difference is that you have dedicated resources (storage, bandwidth, RAM and computing power) only for yourself. Virtual private servers are also highly customizable and are usually giving you the option to select between Windows or Linux VPS. There are also managed VPS where the providers are giving you option to easily change and resize your instance, and put more or remove computing power with just a few clicks.

If we reuse the example from the shared hosting, the main difference will be that in the shared hall, you will have your own entrance for the customers, your own space where your customers can interact with you which is also limited with the package that you have chosen from your provider. This means that if any of the other users that share the same hall have more customers than usual, there will be no impact on the rest of the users, including yourself. The bottleneck is going to be the plan from your provider. So, simply put, VPS is a Virtual Machine (VM) on top of a physical server that hosts multiple VPS.

Virtual Private Server (VPS) concept. Simple illustration that shows how your space is separated from the other's space. Your customers are not sharing the same waiting line with the other's customers.
Virtual Private Server (VPS) concept. Simple illustration that shows how your space is separated from the other's space. Your customers are not sharing the same waiting line with the other's customers.

This solution is suitable for middle-sized web applications like, chat rooms, forums, e-shops or even if your shared hosting is having increased traffic which result to slow response time or even errors. Having VPS is great choice as upgrade from shared hosting. You are not limited with the tools and the options of the hosting, meaning you can install packages, libraries and services by your need, and not being limited by the shared hosting provider.

Please keep in mind that having a VPS might also require knowledge on server management if your provider doesn't offer any sort of control panel or dashboard that will help you with getting started.

Having an whole operating system in your hands available to the internet, it doesn't necessary means that you must use the VPS for hosting website. With a  really good bandwidth and being relatively cheap, they are also great option if you are looking for a solution to host, for example, a game server.

I also recommend VPS for beginners that are willing to learn more about this area. As the technology slowly but surely moves to the cloud, it is a great skillset to know about servers, what are they, how they work, what are the best practices etc. It is great starting point to just feel comfortable with the terminal. Make sure that your provider have a dashboard where you can easily reinstall your VPS and start over, if you make some mistake.

Dedicated Server

Simply put, dedicated server is a powerful physical server located in the provider's data center that is not shared with any other user, and you have full ownership of the server's resources (storage, bandwidth, RAM and computing power).

The example with renting space in a big hall is now really simple. In this case, you are renting the whole hall and you have the whole space in the rented hall only for yourself.

Dedicated servers are expensive and they are suitable for enterprise products like SaaS solutions, large e-shops, virtualization, high-traffic applications or hosting multiple websites. They are even more customizable than VPS, and are the next upgrade if your application is getting traffic increase and slower response times that might lead to errors. Some dedicated server providers even give you the ability to install your own custom operating system

Please keep in mind that having a Dedicated Server might also require knowledge on server management if your provider doesn't offer any sort of control panel or dashboard that will help you with getting started.

In addition to Dedicated Server, some providers also offer a cheaper solution for dedicated servers called Virtual Dedicated Server (VDS). Main difference between VDS and VPS is that VDS still provides dedicated server that is not shared with other customers, but it is managed like a VPS.

Managed cloud platforms

Despite the fact that managed cloud solutions are based on VPS and Dedicated Servers, they offer big flexibility and out of the box solutions. These providers have invested time and resources to build dashboards for their users that is allowing them to spin up servers of different types, databases, load balancers, configure networking, permissions, access etc. Even though it is mostly based on clicks on their dashboards, it is still required to have some general knowledge about what is going on and how your services are configured, to avoid having some security issues.

The main difference between VPS/Dedicated Server with managed cloud solution, is that when you buy a VPS/Dedicated Server, you are responsible for provisioning, deployment, managing and maintenance.

For example, you will need to upgrade your database engine manually, with no guarantee that everything will go as expected and it will be entirely your responsibility.

Another key point is scaling. In order to scale your application, you might need to buy more VPS, and have a load balancer in front of them, and distribute your traffic between your servers. It is another thing that requires maintenance. Most of the managed cloud solutions have their own infrastructure that they manage, and you are just paying for their services. So setting a database, scaling your application, logging, back ups, should be relatively easy to set up. Some of them even offer solutions to spin up new servers and deploy them if your product is having high-traffic spike, and turn them off to save cost after the spike is gone.

Most of there cloud platforms have their own eco system and include services like database, caching, AMQP, queues, web servers out of the box.

Worth mentioning here is also Terraform. This is a tool that has integration with hosting providers and is helping you or your team to have your infrastructure as code. By using Terraform, you will have fully automated infrastructure that can also be versioned.

Summary

In really depends on your needs, and what type of product are you trying to host. Each hosting type and provider are having their own pros and cons.

It is also good idea to try and select hosting provider that are flexible and giving you options to change the size of your server without doing any manual migrations for example. This is useful since if your initial choice is too big or too small server, you can at any time just click few buttons and change that, hopefully.