Virtualization allows for applications, operating systems, and networks to be operated in a logical “sandbox,” reducing the need for physical hardware. The host platform for virtualized resources can be located on-premises or provided by a cloud services operator, such as AWS, Microsoft Azure, or Google Cloud Platform.
These virtualized resources essentially function like physical resources, provided that they are provisioned with adequate CPU, RAM, storage, and networking resources to fit the intended use case. Some types of virtualized resources are known as containers which are virtualized applications which can be deployed in parallel to an operating system, allowing it to run multiple programs or services.
Virtualization enables the rapid provisioning of operating systems and applications, as well as superior fault tolerance and redundancy through the use of snapshots, which allow virtual systems to be restored to a prior working state. They can also be migrated between hosts (even while live) to better balance resource use or relocate virtual machines off an ailing host which needs maintenance work.
Virtual machines also permit IT professionals to test systems and programs with zero production impact, as temporary deployments allow for parallel infrastructure to be created for the duration of a test and destroyed immediately thereafter, without any impact on the operational production system.