Wirtualizacja to grupa technologii programowych, które umożliwiają abstrakcję między warstwami systemu. Pozwala to na separację między logicznymi warstwami systemu, zapewniając izolację, elastyczność i / lub możliwość uruchamiania więcej niż jednej na raz. Różni się to od większości tradycyjnych systemów, w których różne warstwy są ze sobą powiązane.