Virtualization is the process of using software to abstract functionality from underlying physical infrastructure. It first appeared and went mainstream in the Intel-based server space. Products such as VMWare vSphere, Microsoft Hyper-V, and Citrix Xen Server provide software implementations of standard network interfaces, storage controllers, display adapters, and other hardware components found in Intel-based servers. These allow for virtual server instances running standard operating systems like Microsoft Windows Server and Linux to be deployed but not have direct access to the underlying host server infrastructure. This abstraction allows for the virtual machines to be moved between hosts without having to change the virtual machine configuration. Server virtualization like this is now the most popular way to deploy servers.
The use of virtualization has spread beyond its use in the server space, with Storage Virtualization becoming increasingly popular. In storage virtualization, high capacity and high-performance shared storage systems are used to supply virtual disks to virtual servers. The storage virtualization software layer controls the decision on where on the storage system the data is stored. There is no direct link between the servers and the virtual disk systems. This allows the data on the storage systems to be moved, replicated, archived, etc. without disrupting the servers using it.
Increasingly, network components are also being deployed via virtualization technologies. Software Defined Networking (SDN) and Network Function Virtualization (NFV) both describe networking components in software. This allows for standard infrastructure components used for virtual machines to be used to deliver functionality that formally required dedicated network hardware. Additionally, virtualization of network systems provides the same abstraction benefits seen for server virtualization.