An abstract layer between end user and set of physical computing nodes that allows creation and on the fly manipulation of virtual machines. Users gets to select the configuration of the virtual machine that is to be created.