Gdy podłączamy urządzenie elektryczne do kontaktu nie obchodzi nas w jaki sposób prąd, niezbędny do uruchomienia tego urządzenia, jest wytwarzany i transportowany do gniazdka. Jest to możliwe dzięki temu, że to małe gniazdko dostarcza nam abstrakcję, która ukrywa przed nami potężne elektrownie, które ten prąd wytwarzają i całą skompilowaną sieć elektroenergetyczną, która jest odpowiedzialna za dostarczenie tego prądu do nas. Gdy podejdziemy do pojęcia abstrakcji bardziej ogólnie i rozszerzymy je, w naszym przypadku na sferę informatyczną, to możemy powiedzieć, że oznacza ono dostarczenie pewnych użytecznych funkcji i usług wraz z jednoczesnym ukryciem tego, jak one działają.
Technologie takie jak klastry komputerowe1, przetwarzanie siatkowe2 oraz przetwarzanie w chmurze3 mają na celu udostępnianie dużej ilości mocy obliczeniowej w sposób abstrakcyjny i w pełni zwirtualizowany zbierając i prezentując zasoby komputerowe w pojedynczym, spójnym widoku. Dodatkowo, bardzo ważnym celem tych technologii jest dostarczanie informatyki jako usługi, czyli realizacja założeń Utility Computing4.
Termin Cloud Computing został wymyślony jako ogólne pojęcie obejmujące wszelkiego rodzaju usługi komputerowe dostępne na żądanie, które zaczęły być oferowane przez dostawców takich jak Amazon.com, Google czy Microsoft. Oznacza model, w którym infrastruktura komputerowa jest przedstawiana jako chmura, do której przedsiębiorstwa i jednostki mogą uzyskać dostęp z dowolnego miejsca na świecie za pomocą Internetu. Głównym celem przetwarzania w chmurze jest ofero-
7
ang. Computer cluster
ang. Grid Computing, tłumaczenie zaczerpnięte z [14]
ang. Cloud Computing, zamiennie używany będzie też termin: chmura obliczeniowa
Nie istnieje polska, ogólnie przyjęta nazwa określająca termin: Utility Computing. W artykule [9] jest przedstawiona nazwa "infrastruktura dostępowa na żądanie", której jednak nie uważam za prawidłową, dlatego pozostaję przy nazwie angielskiej.