VPS vs Shared Webhosting vs Dedicated Server
If you are considering hosting a website on the Internet you have an option between a VPS, shared webhosting or a dedicated server. All will allow you to create and run a website. Many successful websites use one or the other. However, there are some significant differences you should understand.
A shared webhost has a single operating system set up by the hosting company. The hosting company then creates a bunch of accounts on top of that single operating system, allowing for multiple websites to be hosted on that one platform. These accounts all share the server's resources.
Because shared webhosting accounts share the resources of a server, the hosting company is able to place more accounts on a single server, making shared hosting a cheaper option than a VPS. At the same time, because the resources are shared, a single site on the server can affect the performance of other all the other accounts. If a single account gets greedy and starts using all the resources of that server, then all the other websites on that server slow down.
A shared webhosting account is great if you are not comfortable installing and managing your own server. If you are not terribly familiar with the command line and do not know how to secure a server a shared webhosting account might be right for you. Most VPS accounts require you to administer the virtual server yourself. Dedicated servers can be managed or root, but the managed ones do cost a bit more. Because shared webhosting accounts have the operating system already installed and configured by the hosting company, all you have to worry about is the content of your site. All the administrative details are taken care of for you.
You can think of shared webhosting as being similar to a dorm living situation. Many different people live inside of a single dorm, all sharing resources. If someone is using all the hot water, then everyone else is affected. Dorms come with all the furniture already there but residents are all affected by one another.
Virtual Private Server
A virtual private server (VPS) is like a virtual computer. You can think of it as your own server, hosted in the cloud. VPS server generally allocates a specific amount of resources to each account. A VPS customer is guaranteed X amount of RAM, Y amount of disk space, and Z amount of bandwidth. A a single account can only use as much as is allocated to the account because the resources are not shared between all accounts. This is generally more expensive for a hosting provider because they cannot cram as many accounts onto a server as they would be able to with a shared webhosting account. However, there are some extremely cheap VPS options out there if you do not need a ton of resources.
A VPS comes with a bare operating system installed, but all the configuration and security are your own responsibility. This means you will have to perform updates and do all the other system administration work. At the same time, because a VPS is largely under your control, you can use it for many things other than webhosting. In fact you do not need to use a VPS for webhosting at all. It can be a game server, or email server or a place where you keep backups. Because you have most of the control, you decide what the VPS does and how efficiently is does it. This makes a VPS a great option for learning systems administration.
While there is a clear division of resources on a VPS, there is still a chance that a bad neighbor will influence the performance of a VPS. For example, if someone on the same server is being DDOS attacked, all sites will be affected. There is still only a single Internet connection to the physical server, so even though the VPS resources are separate on the server, the server itself only has a single connection which can be saturated by an attack on a different account.
Following the living situation analogy, a VPS is akin to an apartment. Residents provide all the furniture and they also have a living area which is totally separate. There are walls between each apartment, allowing for privacy, but a noisy neighbor can still be a nuisance.
A dedicated server is a whole computer which you are renting out from a hosting company. While a VPS is a virtual server within a larger server, a dedicated server is physically a whole server. This means you have all the resources of the server to yourself. No one else is going to affect the performance of your site or your server.
There are two types of dedicated servers; root dedicated and managed servers. A root dedicated server is one where the customer has root access and is responsible for all the system administration tasks. This is similar to a VPS where the customer is responsible for configuring, updating and securing the system.
A managed server on the other hand is one where the hosting company manages the operating system the security and all the other system administration tasks. The customer only has to focus on the website. In that sense it is similar to a shared webhosting account.
Dedicated servers are the most pricey of the three webhosting options listed here, but there is good reason for that. If a site requires high uptime and reliability, a dedicated server may be the best option.
A dedicated server can be thought of as living in a house. No neighbors to affect one's living situation. It is more expensive, and may come furnished (managed server) or unfurnished (root dedicated).