Virtualization is technology that makes it possible to create multiple, distinct and secure environments based on one physical hardware system. Such environments are called Virtual Machines (VMs). Software called a hypervisor, which manages the allocation of resources such as CPU (Central Processing Unit or simply processor) memory, storage and others, allows you to split one physical machine into many virtual ones. The resources can be reallocated, if any need arises, e.g. if one VM needs more memory or CPU cycles. The physical hardware with installed hypervisor is called a host, whilst VMs are called guests.
Thanks to virtualization, it is possible to make the most use of computer hardware and thus increase the return on investment (ROI). Instead of having one server on one physical system, you can create many virtual servers (or virtual machines) and assign them necessary computing resources (CPU, memory, storage, etc.). Over-provisioning—assigning extra resources that can be used when needs arise—is a key term here. For example, over-provisioned memory can be used in running an application that is particularly resource-hungry and the VM has to cope with the demand.