Technology attributes
Other attributes
A virtual private server (VPS) is an isolated virtual environment on a physical server owned and operated by a cloud or web hosting provider. A VPS hosts all of the software and data required to run a website or application. VPSs utilize virtualization technology to split a single physical machine into multiple private server environments sharing the overall resources of the machine; this is known as multi-tenant cloud hosting. One physical piece of hardware (server) functions like several separate servers. The service is private such that each user has a virtual server reserved just for them, they don't have to share resources (RAM, CPU, storage, etc.) with other users. A VPS delivers performance, flexibility, and control between those offered by shared and dedicated hosting. With dedicated resources (but not a dedicated server) for each user, VPSs provide greater control and customization compared to shared hosting, where users share the resources.
Hosting providers install a hypervisor, or virtual layer, on top of the physical server's operating system dividing it into virtual compartments. The virtual layer allows each compartment to run its own operating system and software, functioning independently from one another. Although multiple users are sharing a single physical server, each user is guaranteed the specific amount of resources they are paying for. These resources cannot be assigned to another user.
Beyond launching applications and websites, VPS use cases also include building test environments and acting as secondary storage. Users may choose to upgrade to a VPS from a shared hosting plan for a number of reasons, including the following:
- Handling more website traffic
- Customizing applications
- Reducing server errors
- Improving website performance
- Customizing software requirements
- Considering security concerns
Virtualization is the process of creating another, virtual computer on a physical computer. The virtual computer is usually called a virtual machine, a VPD, or a cloud instance. It has an assigned capacity of the original physical computer equating to a certain amount of RAM, CPU cores, hard disk, and other resources.
It is generally accepted that the concept of virtualization goes back to time-sharing research in the late 1960s at IBM. Time-sharing refers to the shared usage of computer resources across a group of users. It aims to increase efficiency for users and reduce the overall cost of utilizing computer resources. IBM's research represented a significant breakthrough in computing technology, reducing the cost of providing computing capacity to multiple organizations or even individuals.
The same motivation behind early time-sharing research drives virtualization today. The capacity of a single server is large, and it would be inefficient for a single user to acquire the resources of an entire server for themselves. To improve resource utilization and data center management, companies use virtualization to share the resources of a server among multiple users. Modern data centers use virtualization techniques to divide physical hardware, creating large aggregated pools of logical resources (CPUs, memory, disks, file storage, applications, networking, etc.) that they can offer to customers as virtual machines.
Originally, software virtualization created a new instance on the original operating system. This proved to be less effective, and more recently, virtualization is mostly hardware-based with resources allocated dynamically to any number of instances. The software responsible for distributing resources is called a hypervisor.
Hypervisors are pieces of software installed directly on the server hardware. It is similar to a hardware driver in the OS kernel that can very quickly communicate with the bare metal parts. Also called a Virtual Machine Monitor (VMM), the hypervisor creates a virtual platform on the host computer, which multiple operating systems can run on top of. There are two main types of hypervisors: type 1 (native or bare metal) and type 2 (hosted).
Type 1 or native hypervisors are software systems running directly on the host's hardware to control the hardware and monitor the guests' operating systems. The guest operating system runs on a separate level above the hypervisor. Type 2 or hosted hypervisors run within a traditional operating system. They add a distinct software layer on top of the host operating system with the guest operating system becoming a third software level above the hardware. Type 1 hypervisors communicate directly with the hardware, and type 2 require an operating system in between.
Both types are still in use; however, in commercial settings, type 1 hypervisors are usually deployed because they have a shorter response time. Type 2 hypervisors are suitable for individual users who want an additional operating system on top of their default operating system.
From a customer's perspective, a virtual machine behaves the same as a non-virtual computer. While virtual instances are located on the same physical server, the end users are not aware of their neighbors sharing the server's resources. Hardware capacity is constantly changing for each user, and hypervisors will assign just enough resources to cover the request of a particular virtual machine.
Examples of popular hypervisor software include the following:
- Xen—a pioneer in commercial virtualization, the Xen project was developed in the late 1990s at Cambridge University. The company was purchased by Citrix in 2007.
- VMware vSphere—the most popular hypervisor on the market providing a wide array of options for users.
- Hyper-V—an easy to implement solution from Microsoft that focuses on users relying on their wider ecosystem.
- Citrix—a lower-cost alternative for commercial projects.
- Kernal-based Virtual Machine (KVM)—open-source software built directly into the Linux operating system.
Shared hosting refers to multiple users sharing a single physical server and all of its resources. Therefore, a surge of activity from one user can affect another user's performance. Customers do not have access to each other's files, and they only share the server's compute resources. Shared hosting is the cheapest and most common form of web hosting. Compared to shared hosting, a VPS offers greater isolation, guaranteed performance, and more stability. Users get to select the resources they want to be dedicated to their website or application.
The greater isolation from VPSs also improves security. In shared hosting environments, websites share the same resources and can be affected by their vulnerabilities. VPS hosting also offers protection from resource-intensive attacks directed at other websites. For example, a denial of service (DDoS) attack on a website affects other websites sharing the same server as they share the same underlying resources.
Dedicated hosting means the user gets an entire physical server and all of its resources for their website or application. They have full control over everything, from hardware to the operating system and custom server software. No other users have any access to or share any of the resources on the dedicated server. Users can customize the server as much as they want to suit their needs. Dedicated hosting is more expensive than both shared and VPS hosting, but users get more customizability and more compute resources.
Unmanaged or self-managed hosting means the user has to oversee all of the server responsibilities and maintenance tasks. The hosting provider only manages the physical server and its availability. Users purchasing unmanaged VPS hosting require technical expertise or in-house teams with the expertise to manage server memory, operating systems, and other resources.
Fully managed VPS hosting removes the need for technical knowledge as the hosting provider takes care of all server-related responsibilities. This includes core updates, maintenance, and software installation.
Semi-managed VPS hosting occupies a middle ground between unmanaged and managed. The hosting provider offers the basic unmanaged option but with core software installation and support. Additional services they typically provide include those below:
- Operating system updates and patches
- Security enhancements
- Full web server support
- Server event monitoring
- Proactive response and restoration of server