A Virtual Private Server (VPS) is a simulation of hardware by a host operating system that allows another operating system to run on it. What that means for Web developers is that a Web hosting company can host multiple "Virtual" servers on one physical, or "host", server.
Each virtual server is isolated from the others (or "Private"), and access to hardware resources (RAM, CPU, Disk Space, Network throughput) is managed by the "host" server. So, for instance, a server may have 2GB RAM, 100GB of disk space, and 2 x 2GHz processors, with 10 VPSes on it. Depending on the VPS software that’s used on the host machine, each VPS can either share hardware resources, or have guaranteed access to 200MB RAM, a disk space limit of 10GB, and an effective CPU of 400Mhz. Now, this is a slight oversimplification, but it gives you an idea of a potential VPS scenario.
Most VPS plans are hosted on either Linux or FreeBSD, but they do also exist in the Windows world. My personal experience and preference is for the *nix side of things, and from my own research, I’ve found the costs of Windows VPS plans tend to be significantly more expensive than their *nix counterparts, but that’s not to say they’re not suitable in specific situations. For the purposes of this article, though, I’ll focus on the Linux VPS plans, as I’m familiar with them.
Is VPS Hosting Right for Me?
VPS hosting plans fill the gap between entry level Web hosting plans that offer specific services (such as PHP/MySQL, or Perl/CGI) with a limited amount of disk space on a shared server, and co-location, where you own and manage the hardware and simply rent "rack space" and an Internet connection from a data center. If you’re outgrowing a shared hosting plan, but aren’t ready for the financial commitment of co-location, a VPS hosting plan could be the ideal middle ground.
Another option to consider is dedicated (or managed) hosting, which is typically cheaper than co-locating, and is becoming more reasonably priced relative to other hosting options. While it’s likely to be more expensive than a VPS plan, dedicated hosting may still be a much more affordable option than you think. As the name suggests, this gives you a dedicated server: essentially, you "rent" the server from the hosting company, rather than renting rackspace for your own server, as you would for a co-located server.
VPS hosting plans offer the following key advantages:
- root access gives you the ability to install and configure any programs you want. Want to run PHP with PostgreSQL instead of MySQL? Go ahead: install it. Want to try out Zope/Plone? Knock yourself out.
- You can host an unlimited number of Websites through Apache’s Virtual Hosts.
- You can host other services, such as a mail server, an FTP server, or any type of server you want.
- You can use the server for backup, file storage, or anything you need.
However, VPS hosting plans have the following disadvantages:
- Since you’re in control of the server, you are also responsible for all installation, maintenance, security and updates. If you are inexperienced with administering a Linux Server, and are not willing to learn as you go, this may be a big drawback.
- While a VPS hosting plan gives you an entire operating system of your own to work with, you still share hardware resources (CPU, RAM, etc.) with other VPSes on the same host server. Therefore, if performance is key, or you’re running RAM-intensive programs, you may be better off with co-location.
How Does it Work?
A number of virtualization technologies make Virtual Private Servers possible: there are commercial companies, such as VMWare, and Microsoft’s own Virtual PC, Open Source offerings such as User Mode Linux, QEMU, and more recently XEN. This is a hot topic in the Linux world at the moment, with XEN, in particular, receiving a lot of press and support. There’s even the possibility that it may be bundled with upcoming distributions of Linux. This can only be a good thing for Web developers, as the more widespread the use of Virtualization and VPS is in Web hosting, the more freedom it will provide at a lower cost.
Getting to the Root
So what do you get with a VPS account? Well, the one thing you do get is root access to your server. As mentioned above, if you’re comfortable with administering a Linux server remotely, this is, of course, a great thing. It means you have complete control, can install any programs you want, and do anything you choose. However, it also places the responsibility for configuration and implementation in your hands. If you’re not comfortable with this, stay away from VPSes.
Does that mean you need to install the entire operating system from scratch? Probably not. Most VPS plans have a number of "disk images" to choose from, with different distributions (such as Debian or Fedora Core) in default configurations. You simply specify which disk image you want, and it will be configured on your VPS in a matter of minutes. Once you are set up with an account, you are then given root access via ssh, and can log in and customize your server, install new software, remove unwanted software and update existing software as needed.
Choosing a VPS Hosting Company
So how do you choose a VPS hosting company? Here are a points to look out for.
Know the details of your hardware resources:
- What are the specifications of the host server? (RAM, CPU, Network throughput, etc.)
- How many VPS instances are run on the host server that you’ll be on? This is important because you are effectively sharing the host server’s resources with these other VPSes.
- How is resource contention handled? In other words, what happens if all the other VPSes on your host server are running CPU/RAM-intensive processes? Do you have a dedicated minimum amount of RAM/CPU/Network usage? If so, how much?
Know the details of your Virtualization technology:
- What’s the underlying OS: Linux, FreeBSD, Windows? If Linux, what distros are offered?
- Are they using User Mode Linux, QEMU, or XEN? Why was that specific technology chosen?
- How are hardware upgrades handled? Let’s say you start out with a basic plan that offers 64MB dedicated RAM and 2GB disk space. Six months from now, you realize you need more RAM and more disk space. What are the additional costs and what is the procedure for allocating the additional resources?
Know the details of your Web hosting company. These are the more traditional questions that apply across the board when you’re choosing a Web host of any sort:
- What kind of support is offered (phone, email, IM, IRC – 24/7?)
- How long has the company been in business?
- What is the company’s client retention rate?
- How much downtime have they experienced in the last 12/24 months?
- What backup/redundancy measures do they have in place?
Prices range from $20 per month at the low end to more than $100 per month for higher end systems, but beware: price isn’t always an indication of more features or better service. If you’re still wondering whether a VPS hosting plan is right for you, it may be worth starting at the lower end (potentially a 64MB RAM with 2GB disk space VPS). You can always expand from there — just be sure to choose a hosting company that can accommodate the expansion you have in mind. If you need significantly more hardware resources, co-location is the way to go.
However, if you have a small budget but big ideas, a VPS may just be for you.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers