Nie dalej jak trzy miesiące temu uczestniczyłem we wdrożeniu fragmentu systemu dla klienta w USA i ze względu na godzinę wdrożenia wykonywałem zadania z tym związane z domu. Wtedy do mojego pokoju weszła córka i zapytała mnie: „Tato, co robisz?”. Zaaferowany i zajęty pracą odpowiedziałem: „Deployujemy nową wersję w chmurze”. Nie przewidziałem konsekwencji swojej odpowiedzi, bo to zrodziło lawinę pytań od: „Co to znaczy deployować?” po: „Czym ty tato właściwie się zajmujesz?”.
Najważniejsze jednak okazało się spostrzeżenie córki, które rzuciła mimochodem, bardziej do siebie niż do mnie, wychodząc już z pokoju: „Jak w chmurze, skoro siedzi na krześle w pokoju”. 🙂 To dało mi sporo do myślenia. W obecnej rzeczywistości sporo naszych danych ląduje w chmurze. Przechowujemy tam dokumenty, pracujemy na aplikacjach w chmurze, a nawet posiadamy zasoby w chmurze. Rzadko jednak zadajemy sobie pytanie, co to jest ta chmura i jakie są konsekwencje korzystania z takich zasobów.
Przetwarzanie w chmurze
Wyjaśnienie zacznę od zaglądnięcia do Wikipedii:
„Chmura obliczeniowa – model przetwarzania danych oparty na użytkowaniu usług dostarczonych przez usługodawcę”
Podaną definicję należałoby uzupełnić o informację, że dostarczona usługa zainstalowana jest na współdzielonej infrastrukturze, którą klient niejako „wynajmuje” od usługodawcy. Usługa taka najczęściej jest dostępna w Internecie.
Przyjrzyjmy się takim usługom jak np. OneDrive czy Google Docs. Rzadko zastanawiamy się nad tym, jak właściwie działają takie aplikacje. Co więcej, czasami nie zastanawiamy się nad konsekwencjami takiego podejścia. A co, jeśli zabraknie nam dostępu do Internetu? W moim przypadku oznaczałoby to np. problem z płatnościami za rachunki, które skrupulatnie wrzucam do arkusza kalkulacyjnego… w chmurze.
Wykorzystanie zasobów współdzielonych
Przechowywanie dokumentów czy zdjęć w chmurze to jeden z najczęściej wykorzystywanych przez nas „domowych sposobów” użycia takich rozwiązań.
Jeśli chodzi o „profesjonalne” zastosowanie, to obecnie jest kilka takich możliwości. Można je zebrać w następujący zestaw:
- IaaS – Infrastructure as a Service, czyli infrastruktura jako usługa
- PaaS – Platform as a Service, czyli platforma jako usługa
- SaaS – Software as a Service, czyli oprogramowanie jako usługa
- BaaS i FaaS – Back-end as a Service i Function as a Service, czyli usługa umożliwiająca tworzenie
Wszystkie te usługi mogą ze sobą współpracować, ale równie dobrze mogą być wykorzystywane pojedynczo.
Podczas pracy z chmurą obliczeniową należy zawsze mieć świadomość tego, że wykorzystywane przez nas zasoby są współdzielone. Koszt wykupienia dedykowanych rozwiązań, czyli takich, które będą przeznaczone tylko i wyłącznie dla nas, jest dość wysoki. Maszyny współdzielone będą zdecydowane tańsze, niemniej jednak nie ma gwarancji, że cały czas będą działać z maksymalną wydajnością.
W IT bardzo często korzystamy z modeli IaaS i SaaS, czyli używane są w tym wypadku maszyny wirtualne (IaaS) oraz gotowe programy (SaaS).
W modelu IaaS najczęściej definiujemy, jaką moc obliczeniową ma posiadać zamówiony przez nas sprzęt. Określamy takie parametry jak np.:
- Liczba procesorów
- Rozmiar pamięci RAM
- Rodzaj i rozmiar dysków twardych
Przykładami takich usług są: AWS EC2, Azure VM, GCP CE.
Systemy informatyczne mogą być również instalowane w modelu PaaS, której przykładem jest np. Heroku. W ramach rozwiązania mamy możliwość wykupienia zasobów wraz z dodatkowymi usługami. Są to np.: bazy danych, audyt, bezpieczeństwo, itp. Dzięki temu przy pomocy jednej skonsolidowanej platformy można dostarczyć całościowe rozwiązanie.
W modelu SaaS dostajemy gotowe oprogramowanie, które po prostu zaczynamy wykorzystywać. W tym przypadku nie zastanawiamy się, gdzie znajdą się nasze zasoby, ile potrzebujemy dla nich mocy obliczeniowej. Przykładem takich usług w tym modelu są: MS Office 365 czy Google Docs.
W modelu FaaS (BaaS) programiści tworzą pojedyncze elementy systemu – funkcje, które mogą mieć dowolne przeznaczenie – zarówno biznesowe, jak również techniczne. Pojedyncze funkcje mogą być tworzone w jednym z wielu języków programowania, np. JavaScript, Python, Java, C#, itd. Inicjatorem-wyzwalaczem (triggerem) działania takiej usługi może być np. pojawienie się rekordu w bazie danych, pliku w chmurze czy po prostu żądanie http (API). Możliwości jest naprawdę sporo. Korzystając z tego modelu, programista przygotowuje kod i integrację z innymi usługami, a następnie dostarcza funkcjonalność do platformy w chmurze. Dodatkowo konfiguruje on usługę pod kątem sposobu jej wywołania. Jej działaniem zarządza sama chmura i, co ważne, dba ona również o to, żeby usługa zawsze była dostępna.
Chmura dostarcza oczywiście odpowiednich mechanizmów do monitorowania i sprawdzania, jak poszczególne usługi pracują i czy maszyny nie są przeciążone, umożliwia tworzenie kopii bezpieczeństwa (któż z nas o tym nie zapomina), itp. Tego typu mechanizmy często są „wliczone” w cenę usługi, co dodatkowo może nas motywować do skorzystania z tego rozwiązania.
O czym należy pamiętać…
Przede wszystkim o tym, że nic nie jest za darmo. Tak – korzystanie z chmury komercyjnie – kosztuje i to czasami niemałe pieniądze. Ważne jest to, że ten koszt zawsze można oszacować, a służą do tego różnego rodzaju kalkulatory dostarczane przez właścicieli platform.
Rozwiązanie chmury na pewno jest wygodne – praktycznie bez konieczności wydania na początek sporej ilości pieniędzy, otrzymujemy gotowy produkt, który już może dla nas zarabiać. Dodatkowo nie musimy martwić się o brakujące zasoby, w łatwy sposób możemy je rozbudowywać. Kolejnym atutem rozwiązania na pewno jest możliwość kolokacji (czyli posiadania wielu lokalizacji) zasobów.
Zamiast zakończenia
Zawsze jest tak, że trzeba zakończyć. Zdołaliśmy zaledwie dotknąć w tym wpisie bardzo szerokiego tematu. O chmurze i usługach w niej dostępnych napisano wiele i napisać można jeszcze więcej, chociażby o architekturze bez infrastruktury #serverless czy o możliwościach obliczeniowych w obszarze BigData, ale – drogi czytelniku – nie możemy o wszystkim napisać w jednym blogowym artykule, dlatego zachęcam Cię do zapoznania się z tematem we własnym zakresie. Dobrym miejscem na takie poznanie jest którakolwiek z dużych platform cloud czy jakaś pozycja w literaturze (hasło „cloud computing” w Google).
Na zachętę dodam, że wszystkie liczące się platformy mają możliwość „pobawienia” się ich usługami za darmo przez określony czas (zwykle jest to 12 miesięcy). Moim zdaniem – warto spróbować.
Autor: Paweł Janusz – programista, architekt, pasjonat wytwarzania oprogramowania. W Onwelo odpowiedzialny za lubelski oddział i jego rozwój.
Zostaw komentarz
Polecamy
Data & Analytics – architektura systemów jutra
Jaka jest historia inżynierii danych? Jak przebiegał rozwój technologii i na jakie trendy zwraca obecnie uwagę świat? Marek Kozioł, Data Solution Architect i Arkadiusz Zdanowski, Cloud Data Engineer & Team Leader w Onwelo opowiedzieli o tych zagadnieniach podczas konferencji „Transformacje cyfrowe dla biznesu”. Zapraszamy do lektury artykułu przygotowanego na bazie tego wystąpienia.
Kompleksowa realizacja infrastruktury cloud przy użyciu praktyk DevOps
Transformacja cyfrowa dla biznesu to zmiana sposobu myślenia o zarządzaniu i rozwijaniu systemów IT. Zapraszamy do lektury artykułu Pawła Kalarusa i Sebastiana Frankiewicza, którzy szerzej opisują temat zaprezentowany podczas marcowej konferencji Onwelo.
Czym jest brand hero i jak może pomóc marce?
Mały Głód, Serce i Rozum, ludzik Michelin – jako brand hero reprezentują oni swoje marki. W tym roku dołączył do nich Onwelek, nasz własny brand hero. Dowiedz się, czym jest brand hero, jakie pełni funkcje i jak przebiega jego kreacja!
Data & Analytics – architektura systemów jutra
Jaka jest historia inżynierii danych? Jak przebiegał rozwój technologii i na jakie trendy zwraca obecnie uwagę świat? Marek Kozioł, Data Solution Architect i Arkadiusz Zdanowski, Cloud Data Engineer & Team Leader w Onwelo opowiedzieli o tych zagadnieniach podczas konferencji „Transformacje cyfrowe dla biznesu”. Zapraszamy do lektury artykułu przygotowanego na bazie tego wystąpienia.
Kompleksowa realizacja infrastruktury cloud przy użyciu praktyk DevOps
Transformacja cyfrowa dla biznesu to zmiana sposobu myślenia o zarządzaniu i rozwijaniu systemów IT. Zapraszamy do lektury artykułu Pawła Kalarusa i Sebastiana Frankiewicza, którzy szerzej opisują temat zaprezentowany podczas marcowej konferencji Onwelo.