This article was first published in a slightly modified form on my blog.
As web developers we usually don’t have to care much about hosting or hosting plans. Quite paradox when you think about it. Your product is hosted somewhere but you don’t know how it works or what alternatives you have. Therefore, I think it’s important for web developers to also know about hosting.
There are different ways of hosting a website. In this article I’ll concentrate on the most common ones and explain them to you in simple terms. Since this is Interhyp, you will also learn how hosting and real estate have more in common than you might think. 🙂
This is the most basic option, and thus cheapest, when it comes to hosting. Shared hosting means you are sharing the resources, i.e. storage, CPU, bandwidth, with other websites.
Think of it like an apartment-sharing community: You live with your friends in an apartment. Everyone can use the kitchen, living room, bath, etc. This reduces costs but it can get crowded at times, when one of your friends is taking a little bit longer in bath in the morning than usual.
When to use shared hosting? Shared hosting is most often used for static websites, like a small hobby project, a blog or personal website, where you don’t expect much traffic, have a small budget or don’t want to care much about technical stuff. It’s low maintenance and thus more beginner friendly. But these benefits come with a cost. It usually has lower bandwidth. It can be error prone during high traffic. It can have more security risks if something goes rogue on another website hosted on the same server. Normally, you have limited access to the server, i.e. you can’t install additional software and the configuration on the server is very limited. Performance and reliability may not be steady as you share it with other websites.
VPS stands for Virtual Private Server. It emulates a dedicated server within a shared hosting environment through virtualization. You are still on a shared server with other applications, but you have dedicated resources for yourself, meaning certain resources are guaranteed to be available for you. This gives you more flexibility.
This is like to renting an apartment for yourself in a housing block. You have a kitchen, living room, bath, etc. all for yourself. This gives you more freedom as you aren’t constrained by the activity of others. But this comes with a certain price tag.
When to use VPS hosting? When you are serious about a larger project, e.g. a small business, a larger portfolio website, you are running an online store and want to grow your business. You have a big budget, because VPS hosting can get pricey. And you need to be a little bit more tech savvy and thus it is a little bit more complicated. But you get root access to your server, meaning you are allowed to install basically any software you want. It’s faster in comparison to shared hosting. Memory, CPU, and bandwidth are more reliable and scaleable.
Cloud hosting is the most reliable option out there. The host provides you with clusters of servers. Your files and resources are replicated on each of these servers. When one server is down, your traffic is automatically routed to another server in the cluster. Additional storage or CPU is allocated automatically for you. This option is not only most reliable but also most scalable. For you this means nearly zero downtime. Usually you have a Pay-as-you-go-pricing strategy. But this means it’s hard to estimate the cost in advance. In some cases, you don’t have root access.
This is most comparable to a vacation rental. The host owns apartments that are basically identical to each other. He provides to you an apartment with its own living room, kitchen, bath, etc. You are not affected by the actions of others. If something goes terribly wrong in your apartment you can either ask the host to repair or you can get another one instead (for some serious cases).
When would you want to use cloud hosting? When you are really serious about your project and expect high traffic. You want it to be always available and scale up once traffic peaks. This is usually used for commercial projects.
This is considered as the most comprehensive type of hosting. Here your website is hosted on a single server that belongs to you. Because it belongs to you, you have root access. You have the options to have the highest reliability and security. You also have full control over the server, i.e. you can install whatever you want, you can choose whatever operating system you want. But this means you must have high technical knowledge in order to leverage the breadth of configurations. Having the highest reliability or security options doesn’t make it more reliable or secure if you don’t know what you are doing. In worse case it can be just as unreliable or less secure than shared hosting. Owning the hardware also means you are responsible for maintenance, e.g. update, upkeep, etc. Also, this usually comes with higher costs.
It’s most comparable to owning a house. As a house owner you can basically do whatever you like, e.g. you can build as many floors as you want or chose the color of your kitchen sink. You name it. But this means you are responsible for the upkeep, like repairing the roof if the rain drops in, regularly mowing the lawn, etc.
When do you want to use dedicated hosting? When privacy and reliability is most important to you. For example, you want to have a website where you share your family pictures, videos etc. Because owning your own server means only you decide who is allowed to access them. Storing files on all the other options means that the provider can (theoretically) have access to all of your files because they are stored on their server. Storing files on your own server means only those have access to that you allow them to. But this also means you are responsible for everything else, e.g. electricity cost, update of software, security, etc. Maintenance is the highest here.
What has been your experience with hosting? What other ways of hosting do you know? Where are you hosting your projects and why did you choose that option?