Modele chmury obliczeniowej - o czym warto wiedzieć

Modele chmury obliczeniowej – o czym warto wiedzieć

Chmura stanowi kolejny krok w kierunku przetwarzania danych. Polega ona na dzierżawieniu zasobów sprzętowych (jak i systemowych) wedle zapotrzebowań konsumentów. Płacimy tylko i wyłącznie za wykorzystane zasoby. Wraz z biegiem czasu usługodawcy oferują nam coraz to ciekawsze modele chmury obliczeniowej. Każdy z nas może w kilka minut wejść w posiadanie niewielkiego fragmentu zwirtualizowanej infrastruktury sieciowej. Nie ma tu większego znaczenia, czy dopiero co zaczynasz z własnym biznesem i potrzebujesz trochę zasobów do uruchomienia małego sklepu internetowego, a może planujesz migrację jakiegoś potężnego systemu informatycznego dla swojej firmy. W każdym momencie można przeskalować zagospodarowane zasoby, bez konieczności reinstalacji czy migracji środowiska. Cały proces związany z zakupem, oprogramowaniem oraz utrzymywaniem sprzętu, zostaje oddelegowany do usługodawcy chmury, a my możemy skupić się już tylko na rozwijaniu naszej aplikacji bądź samych aspektach biznesowych.

Do największych i najbardziej znanych usługodawców publicznych chmur obliczeniowych należą: Amazon Web Services, Microsoft Azure oraz Google Cloud Platform.


Najczęściej dostarczane rozwiązania

Trzy najbardziej znane modele chmury obliczeniowej to:

IaaS – infrastruktura jako usługa (ang. Infrastructure as a Service) – usługodawca zapewnia klientowi dostęp do sprzętu, najczęściej pod postacią maszyn wirtualnych. Konsument nie tylko zarządza samą aplikacją, a także systemem operacyjnym, jego rejestrami i zasobami. W ramach tego modelu klienci mają do wyboru całą gamę gotowych obrazów wirtualnych z dowolnym oprogramowaniem (MySQL, MongoDB, Ubuntu co tylko potrzebujesz). Dostarczane są również takie komponenty jak sieci wirtualne, publiczne i prywatne adresy IP, zapory sieciowe. Największym plusem tego rozwiązania jest brak konieczności zakupu całego sprzętu jak i zajmowania się nim. Wolne zasoby mogą zostać w dowolny sposób spożytkowane, od magazynu na dane po własne kopalnie bitcoin’ów 🙂  Grupą docelową modelu IaaS są administratorzy IT, których głównym zadaniem jest kontrola nad wszystkimi zasobami informatycznymi w firmie.

PaaS – platforma jako usługa (ang. Platform as a Service) – model początkowo przypominający IaaS, aczkolwiek nieco okrojony, zwłaszcza jeśli chodzi o aspekty systemowe czy dostęp do samych maszyn wirtualnych. Użytkownik otrzymuje gotowe środowisko, działające pod kontrolą wybranego systemu operacyjnego wraz z zestawem odpowiednich narzędzi deweloperskich. Można powiedzieć, iż jest to gotowa „piaskownica” dla programistów w ramach której będą wytwarzać oprogramowanie. Może to być specjalnie przygotowana maszyna wirtualna z najnowszą wersją .NET’a oraz SQL Server’em. Może to być środowisko wykorzystujące technologię NodeJS, wraz z dowolną noSQL’ową bazą danych, pracujące pod kontrolą systemu Linux. Dostarczane jest nawet wsparcie dla wszelakich platform mobilnych (iOS, Android, Windows Phone). Zajmujesz się tylko i wyłącznie rozwojem swojego oprogramowania oraz przechowywaniem danych, a dostawca dostarcza Ci sprzęt oraz niezbędne oprogramowanie. Popularnym stało się dostarczanie dodatkowych funkcjonalności, takich jak np. narzędzia diagnostyczne czy autoskalowanie. Rozwiązanie skierowane dla programistów i testerów.

SaaS – oprogramowanie jako usługa (ang. Software as a Service) – model przeznaczony dla użytkowników końcowych danego oprogramowania, nawet tych słabo technicznych. Konsumenci tak naprawdę ograniczają się tylko i wyłącznie do korzystania z przygotowanej przez usługodawcę aplikacji. Wprowadzanie dane do systemu, uruchamiają procesy przetwarzające je, komunikują się z innymi użytkownikami itp. Usługodawca odpowiada za wszystkie wspomniane wcześniej warstwy, dba nie tylko o środowisko, czy sprzęt, ale także o rozwój i utrzymywanie udostępnionego oprogramowania. Przykładami zastosowań modelu SaaS są wszystkim nam znane popularne aplikacje takie jak: Gmail, Office 365, Dropbox czy Salesforce. Wszystkie usługi dostarczane są do nas pod postacią aplikacji końcowych (mobilnych, webowych, etc.). Model ten adresowany jest do właścicieli firm oraz osób prywatnych, którzy są tylko i wyłącznie zainteresowani np. korzystaniem z poczty elektronicznej.

Model PaaS zbudowany został na bazie modelu IaaS, natomiast SaaS w oparciu o model PaaS. Na poniższym rysunku podsumowano wszystkie wyżej wymienione modele:

Podstawowe modele chmury obliczeniowej
Podstawowe modele chmury obliczeniowej

Mówi się, że modele PaaS oraz SaaS staną się w przyszłości liderami w kategorii wytwarzania i dostarczania oprogramowania.


Dodatkowe modele chmury obliczeniowej

Na przestrzeni czasu powstało kilka mniej popularnych, modeli chmury obliczeniowej. Tak naprawdę wywodzą się one z przedstawionych już wyżej rozwiązań, w szczególności modelu PaaS. Specjalizują się one w wąskich, specjalistycznych dziedzinach:

BaaS – backend jako usługa (ang. Backend as a Service) – w ramach tego modelu na chmurze tworzona jest warstwa backend’owa odpowiedzialna za wspólne procesy dla wielu aplikacji. Załóżmy, że tworzymy oprogramowanie na wszystkie kluczowe platformy mobilne (Android, iOS, itp.). Przy pomocy rozwiązania BaaS implementujemy jeden wspólny backend odpowiadający za rejestrację użytkowników, przetwarzanie zdjęć lub wysyłanie powiadomień email, z którego korzystać będzie każdy mobilny klient. Autoskalowanie staje się o wiele prostsze i bardziej uniwersalne, niż gdy musiałbyś to robić na każdej platformie z osobna. Przykładem chmury wykorzystującej model BaaS (a właściwie MBaaS – Mobile Backend as a Service) jest Backendless.

DaaS – dane jako usługa (ang. Data as a Service) – jest to model chmury polegający na dostarczeniu użytkownikom danych w sposób szybki, bezpieczny i uniwersalny. Dane mogą być dostarczane na żądanie niezależnie od lokalizacji pomiędzy klientem, a usługodawcą. Chmura pozwala na przechowywanie danych w jednym miejscu, dzięki czemu wszelkie operacje, jakie są na nich wykonywane, odbywają się w tym samym miejscu. Ze względu na łatwy dostęp, dane mogą być łatwo przenoszone.

FaaS – funkcja jako usługa (ang. Function as a Service) – użytkownikom udostępniana jest specjalna platforma webowa, pozwalająca na rozwijanie, testowanie i uruchamianie różnych funkcjonalności bez konieczności instalowania całej gamy specjalistycznego oprogramowania, bez długotrwałych procesów budujących czy konieczności zarządzania infrastrukturą serwerową. Implementowana jest jednozadaniowa funkcja, odpowiadająca np. za przetwarzanie lub analizę pewnych danych. Następnie generowany jest raport (np. *.pdf), który wysyłany jest email’em do autora. Model znajduje zastosowanie w architekturze bezserwerowej, najczęściej przy budowaniu rozwiązań w oparciu o mikroserwisy.

Azure Functions
Microsoft Azure Functions jako przykład realizacji modelu FaaS

LaaS – logi jako usługa (ang. Logging as a Service) – odpowiada za zbieranie logów aplikacyjnych lub serwerowych, a następnie przedstawia je użytkownikowi w przyjaznej i przejrzystej formie. Przykładem chmury pełniącej tego typu usługi jest Loggly.

VaaS – wideo jako usługa (ang. Video as a Service) – model pozwalający na udostępnianie obrazu wideo z urządzenia działającego najczęściej w trybie live za pośrednictwem chmury.

Oczywiście nie są to wszystkie możliwe oferowane modele przez dzisiejszych usługodawców, aczkolwiek o tych rozwiązaniach można by pisać godzinami 🙂 – może kiedyś zbadam ten temat głębiej.


Model hybrydowy (chmura hybrydowa)

Nie zawsze udaje się przenieść cały system do chmury w przeciągu kilku dni. Mogą to być migracje rzędów tygodni, a nawet miesięcy, a system powinien już działać. Wtedy stosuje się tzw. model hybrydowy. W przedstawionym rozwiązaniu część infrastruktury systemu (wybrane moduły) zostaje przeniesiona do chmury, natomiast pozostałe usługi takie np. jak magazyny danych czy serwery DNS pozostają w sieci lokalnej firmy. Działanie chmury hybrydowej możliwe jest dzięki wspomnianym wcześniej lokalnym sieciom wirtualnym dostępnym w modelu IaaS. Rozwiązanie to nie zawsze związane jest tylko z długim czasem relokacji systemu do chmury. Firmy często decydują się na nie ze względu na minimalizację kosztów lub ograniczone zaufanie do samego usługodawcy. Część systemu zostaje przeniesiona do chmury, a reszta, np. magazyny danych pozostaje w siedzibie firmy.