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
Sztuczna inteligencja w wykrywaniu zagrożeń bezpieczeństwa IT
Cyberbezpieczeństwo to nie tylko zaawansowane technicznie systemy zabezpieczeń w dużych firmach czy wojsku. To także nasze prywatne bezpieczeństwo, walka z zagrożeniami i ich prewencja w codziennym życiu oraz wiedza o bezpiecznym korzystaniu z internetu. Adam Kowalski-Potok, nasz Seurity Engineer, opowiada jak AI i jej rozwój wpływa na wykrywanie zagrożeń w cyber security.
Budowanie systemów biznesowych z zastosowaniem generatywnej sztucznej inteligencji
Generatywne AI ma potencjał do automatyzacji zadań zajmujących dziś do 70% czasu pracowników. Dlaczego platforma OpenAI nie wystarczy do wykorzystania pełni tych możliwości? Przed nami artykuł Łukasza Cesarskiego i Marka Karwowskiego z Onwelo powstały na bazie prezentacji wygłoszonej podczas konferencji „Transformacje cyfrowe dla biznesu”.
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.
Sztuczna inteligencja w wykrywaniu zagrożeń bezpieczeństwa IT
Cyberbezpieczeństwo to nie tylko zaawansowane technicznie systemy zabezpieczeń w dużych firmach czy wojsku. To także nasze prywatne bezpieczeństwo, walka z zagrożeniami i ich prewencja w codziennym życiu oraz wiedza o bezpiecznym korzystaniu z internetu. Adam Kowalski-Potok, nasz Seurity Engineer, opowiada jak AI i jej rozwój wpływa na wykrywanie zagrożeń w cyber security.
Budowanie systemów biznesowych z zastosowaniem generatywnej sztucznej inteligencji
Generatywne AI ma potencjał do automatyzacji zadań zajmujących dziś do 70% czasu pracowników. Dlaczego platforma OpenAI nie wystarczy do wykorzystania pełni tych możliwości? Przed nami artykuł Łukasza Cesarskiego i Marka Karwowskiego z Onwelo powstały na bazie prezentacji wygłoszonej podczas konferencji „Transformacje cyfrowe dla biznesu”.