Wirtualizacja oznacza „z usuniętymi granicami lub ograniczeniami” lub „symulowane”. Rozwiązania odnoszą się do produktów i usług, które dotyczą konkretnych problemów lub sytuacji. Rozwiązania wirtualizacji odnoszą się do sposobów rozwiązywania problemów obliczeniowych poprzez usuwanie granic lub ograniczeń i/lub poprzez wykorzystanie symulacji.
Rozwiązania do wirtualizacji można podzielić na trzy typy: wirtualizacja sprzętu, wirtualizacja sieci i pamięci masowej oraz wirtualizacja aplikacji. Wirtualizacja sprzętu to inny termin na wirtualizację serwerów. Odnosi się do trzech sposobów partycjonowania komputera w celu utworzenia na nim wirtualnych serwerów. W zależności od użytej metody serwery wirtualne mogą obsługiwać różne systemy operacyjne. W każdym razie aplikacje na osobnych serwerach nie będą ze sobą współdziałać ani powodować problemów, a redundancja staje się łatwo możliwa.
Jeśli chodzi o rozwiązania wirtualizacyjne obejmujące sieci i pamięć masową, nieco odwrotne podejście przyjmuje się w przypadku wirtualizacji serwerów, polegającej na gromadzeniu elementów razem, a nie rozdzielaniu jednego elementu na wiele. W przypadku wirtualizacji sieci oznacza to, że wiele urządzeń w sieci jest skonsolidowanych, aby można było nimi sterować i zarządzać nimi z jednej konsoli administratora. Wirtualizacja sieci często obejmuje wirtualizację pamięci masowej, która umożliwia dostęp do różnych — czasem licznych i zupełnie różnych — urządzeń pamięci masowej w podobny sposób.
Rozwiązania wirtualizacji obejmujące aplikacje są co najmniej pięciu typów. Przesyłanie strumieniowe aplikacji to proces, w którym aplikacja nie jest faktycznie instalowana na każdym komputerze w sieci, ale jest dostarczana w razie potrzeby. Jest to jeden ze sposobów zapewnienia korzystania z najbardziej aktualnego oprogramowania, a także śledzenia czasu użytkowania każdej osoby. Innym sposobem, w jaki odbywa się wirtualizacja aplikacji, jest sytuacja, w której komputery użytkowników są terminalami lub działają jako terminale serwera. W takim przypadku wszystkie aplikacje i dane znajdują się na serwerze.
Sprzęt do partycjonowania to jedno z rozwiązań wirtualizacji, które odbywa się na komputerze indywidualnego użytkownika. Firma Apple niedawno zaprojektowała swoje komputery Mac tak, aby można było na nich partycjonować i uruchamiać oprogramowanie Windows. Nazywa się to wirtualizacją pulpitu.
Dwa pozostałe rodzaje wirtualizacji aplikacji różnią się znacznie od pierwszych trzech. Jednym z przykładów jest oprogramowanie Java Virtual Machine (JVM), które umożliwia uruchamianie programów napisanych w Javie lub skompilowanych do kodu bajtowego Javy na dowolnym komputerze, na którym jest zainstalowane. Mówi się, że JVM wirtualizuje oprogramowanie, rozszerzając granice możliwości jego uruchomienia. Dynamiczne przydzielanie aplikacji to podejście, które traktuje grupę serwerów jako spójną pulę zasobów, które można przypisywać w czasie rzeczywistym, wirtualizując aplikacje poprzez uruchamianie ich na dowolnym serwerze w zależności od potrzeb.