Chmura obliczeniowa – co to jest
Wprowadzenie
Celem cyklu artykułów dotyczących chmury obliczeniowej jest ujednolicenie terminologii wykorzystywanej w środowisku IT dotyczących tego trendu technologicznego oraz przekazanie podstawowej wiedzy z tego zakresu. Cykl jest kierowany do osób, dla których chmura obliczeniowa jest lub może być elementem rozwiązania, ale nie zamierzają oni (przynajmniej na razie) tworzyć rozwiązań w chmurze (dla taka osób wiedza może być zbyt pobieżna).
SOA a chmura obliczeniowa
Aby lepiej zrozumieć koncepcję chmury obliczeniowej możemy przyjrzeć się konceptowi architektonicznemu jakim jest SOA (Service Oriented Architecture, czyli Usługowe Podejście do Architektury). W przybliżeniu można powiedzieć, że w ramach tej koncepcji określono, że poszczególne aplikacje (lub grupy aplikacji) udostępniają swoje funkcjonalności poprzez Usługi. Ukrywały one skomplikowane rozwiązania realizujące funkcjonalność udostępniając je poprzez prosty interfejs.
Aby rozwiązania były zgodne z koncepcją SOA, a nie były zwykłą integracją przyjętych zostało 9 podstawowych charakterystyk, które potwierdzały poprawność realizacji koncepcji:
- Standaryzacja opisów usług (Standardized Service Contract)
- Luźne powiązanie (Loose Coupling)
- Abstrakcja usług (Service Abstraction)
- Reużywalność usług (Service Reusability)
- Autonomia usług (Service Autonomy)
- Bezstanowość usług (Service Statelessness)
- Wykrywalność usług (Service Discoverability)
- Dekompozycja usług (Service Composability)
- Interoperacyjność usług (Service Interoperability)
W przypadku chmury obliczeniowej możemy również mówić o koncepcji SOA, jednakże zamiast usług w ramach tej samej warstwy architektury tworzymy usługi pomiędzy poszczególnymi warstwami architektury.
Chmura obliczeniowa – definicja
Opierając się na definicji przygotowanej przez NIST można powiedzieć, że
przetwarzanie w chmurze to model pozwalający na powszechny, wygodny dostęp poprzez sieć do współdzielonej puli konfigurowalnych zasobów obliczeniowych (np. sieci, serwerów, pamięci masowej, aplikacji oraz usług), które szybko mogą zostać dostarczone i zwolnione, przy minimalnym zaangażowaniu lub interakcji z dostawcą usług.
Charakterystyki chmury obliczeniowej
Również w przypadku chmury koniecznym jest wskazanie charakterystyk pozwalających odróżnić rozwiązania rzeczywiście zgodne z koncepcją chmury obliczeniowej od takich, które są nazywane chmurą jedynie w celach marketingowych (chmura sprzedaje się nieźle). Na podstawie pracy NIST można wskazać pięć charakterystyk, które pozwalają na określenie rozwiązania / usługi jako chmury obliczeniowej.
Dostępność na żądanie oraz samoobsługa (ang. on-demand self-service): konsument ma możliwość samodzielnego, jednostronnego dostarczania zasobów obliczeniowych, takich jak np. czas serwera i zasoby dyskowe, kiedy tego potrzebuje, w sposób automatyczny, bez konieczności interakcji z pracownikiem dostawcy usług.
Szeroki dostęp poprzez sieć (ang. broad network access): zasoby udostępniane są w sieci, a dostęp do nich odbywa się za pośrednictwem standardowych mechanizmów, wykorzystanych poprzez różnorodne platformy „cienkiego” (ang. thin) oraz „grubego” (ang. thick) klienta (np. telefony komórkowe, urządzenia typu tablet, laptopy i stacje robocze).
Tworzenie puli zasobów (ang. resource pooling): zasoby obliczeniowe dostawcy są łączone w pule obsługujące wielu konsumentów z wykorzystaniem modelu multi-tenant (z ang. „wielu dzierżawców”), pozwalając na dynamiczny przydział i zwalnianie zasobów fizycznych i wirtualnych w zależności od zapotrzebowania klientów. Jednocześnie istnieje poczucie niezależności miejsca – na ogół klient nie ma żadnej kontroli i wiedzy dotyczącej dokładnej lokalizacji dostarczanych zasobów, ale może być w stanie określić lokalizację na wyższym poziomie abstrakcji (np. kraj, stan lub centrum przetwarzania danych). Przykłady zasobów obejmują pamięć masową, moc procesora, pamięć operacyjną oraz przepustowość sieci.
Szybkość i elastyczność (ang. rapid elasticity): zasoby mogą być w elastyczny sposób dostarczone oraz zwolnione, w niektórych przypadkach automatycznie skalując się szybko na zewnątrz i wewnątrz współmiernie do zapotrzebowania. Dla konsumenta pojemność zasobów wydaje się nieograniczona i może być wykorzystana w dowolnej ilości w dowolnym momencie.
Mierzalna usługa (ang. measured service): systemy chmury pozwalają na automatyczną kontrolę i optymalizację wykorzystania zasobów poprzez zastosowanie możliwości pomiaru na pewnym poziomie abstrakcji odpowiedniej dla danego rodzaju usługi (np. pamięć masowa, przetwarzanie, aktywne konta użytkowników). Wykorzystanie zasobów może być monitorowane, kontrolowane oraz raportowane, dostarczając większą przejrzystość zarówno dla dostawców, jak i konsumentów usług w chmurze.
W kolejnych artykułach postaram się przybliżyć temat różnych modeli realizacji chmury obliczeniowej