W chmurze.... czyli gdzie ?

cloud web
white clouds

„Internet jest w chmurze”, „migrowaliśmy nasze usługi do chmury”, „chmura obliczeniowa”, czyżby cała branża IT zajęła się meteorologią? O co chodzi z tymi chmurami? Co ma Amazon do chmury? Spróbujmy to wyjaśnić, w prostych słowach rzecz jasna.

Z czego składa się internet?

Zacznijmy od początku. Co tak naprawdę jest potrzebne do tego, żeby „internet działał”? Wszystkie elementy możemy podzielić na „hardware” i „software”. Hardware to wszystko co fizyczne, materialne. Do tej kategorii zaliczmy nasze laptopy i smartfony (bo coś musi ten internet „wyświetlać”), switch-e, router-y (które sprawiają, że możesz swój laptop połączyć z wifi lub z przewodowym internetem), światłowody, nadajniki LTE (dające możliwość połączenia się z ludźmi na drugim końcu świata), serwery (to takie bardzo specyficzne komputery na których uruchamiamy „software” potrzebny do działania internetu). Do kategorii drugiej, czyli „software” zaliczymy takie elementy jak przeglądarka internetowa, aplikacja mobilna (które sprawiają, że nie musisz czytać ciągu zer i jedynek tylko treści mają przyjemną dla człowieka, graficzną formę), oprogramowanie router-ów oraz operatorów sieci (które czuwają nad tym, żeby ruch był bezpieczny, stabilny i abyśmy otrzymywali dokładnie te treści o które prosimy) oraz serwery (tak, określenie „serwer” jest dualistyczne, czasem określa fizyczny komputer a czasem kawałek oprogramowania) bazy danych, kolejki, systemy operacyjne i wiele wiele innych (czyli wszystko to, dzięki czemu ponad 2 miliardy ludzi może używać Instagram-a jednocześnie na całym świecie, płynnie i bezpiecznie). W skrócie: „hardware” to wszystko co fizyczne, co faktycznie sprawia, że sygnał internetowy (ciąg zer i jedynek) może płynąć z jednego końca świata na drugi. „Software” to wszystko czego fizycznie nie możesz dotknąć czy zobaczyć a jest odpowiedzialne za to, żeby maszyny („hardware”) robiły to co powinny.

Jak widzisz sporo tego. Wiem, że może to być mylące. Spróbujmy podobnego przykładu ze świata nie-wirtualnego. Właśnie zamówiłeś najmodniejszy t-shirt tego sezonu na Zalando. Żeby paczka do Ciebie trafiła potrzebujesz „hardware-u” takiego jak: magazyn, wózek widłowy, ciężarówka, autostrada, być może statek, samolot, port, lotnisko, linia kolejowa, dalej: sortownia, rampa, karton, taśma klejąca, drukarka etykiet i tak można bez końca….. Jednak sam fakt istnienia magazynu Zalando i bezpośredniego połączenia drogowego z Twoim domem, nie sprawią, że paczka „sama” trafi do Ciebie. Potrzebujesz „software-u”, czyli w naszym przypadku: magazyniera, pakowacza, kierowcy, kuriera, pracownika sortowni, osób zarządzających systemem zamówień, nie wspominając o osobach które robią rzeczy niezbędne do funkcjonowania poszczególnych etapów (magazyn, transport, sortownia) a nie uczestniczą fizycznie w samej dostawie, np: kierownicy, ochrona, pracownicy HR i tak dalej…. Twój wymarzony wygląd w nadchodzącym sezonie wymaga pracy dziesiątek, jeśli nie setek osób!

Z internetem jest podobnie… Wymaga wielu małych elementów, które tylko spięte w jedną całość pozwalają robić szybko i sprawnie tak ważne rzeczy jak przesyłanie zdjęć kotów!

Krótka lekcja historii

Wybierzmy się na małą podróż w czasie, w końcu internet nie zaczął się od chmur! Myślę, że zrozumienie jak to było kiedyś pozwoli nam zrozumieć dlaczego chmury są trendy. Dawno, dawno temu, cały hardware był niczym innym jak zwykłym komputerem PC, nierzadko ustawionym pod biurkiem, podłączonym do internetu. To w zupełności wystarczy, żeby zaserwować prostą stronę w internecie. Oczywiście wspomniany komputer musi mieć zainstalowany stosowny software a łącze internetowe musi zapewniać statyczny adres IP ale to techniczne detale, nie zaprzątajmy sobie tym głowy. Dla prostej strony internetowej, jednej z tych które widzieliśmy w początkach internetu (lata 90) wystarczy tak na prawdę tylko system operacyjny i serwer (ten software-owy). 

Dlaczego pudło pod biurkiem to za mało?

No dobrze, to teraz zastanówmy się jakie problemy generował „komputer pod biurkiem”. Zacznijmy od czegoś prostego. Wyobraź sobie, że w wyniku burzy, zerwało instalacje elektryczną w okolicy - nie ma prądu, nie ma strony. Wyobraź sobie, że Twój dostawca internetu ma awarię - nie ma internetu, nie ma strony. Wyobraź sobie, że Twój pies, kot czy króli przegryzł kabel pod biurkiem - nie ma odpowiedniego okablowania, nie ma strony. Takie przykłady można mnożyć w nieskończoność. 

Idźmy dalej, świat się zmienia, technologia ewoluuje, statyczna strona internetowa, czyli taka która tylko „wyświetla dokument” to już za mało, potrzebujesz więcej software-u: bazy danych, interpreter języka programowania, odpowiedni system zabezpieczeń, system kolejek, serwer poczty elektronicznej i wiele wiele więcej, aby zbudować nowoczesny serwis internetowy. Ilość potrzebnego oprogramowania powoduje, że nasz „komputer pod biurkiem” musiałby być już nieco wyższej klasy.

Idźmy jeszcze dalej, załóżmy, że Twój serwis odniósł ogromny sukces. Zaczynają go odwiedzać miliony ludzi. Jeden komputer najzwyczajniej w świecie nie wytrzyma takiego ruchu. Potrzebujesz drugiej, bliźniaczej maszyny i „czegoś” co spowoduje, że część ludzi będzie korzystała z serwisu na komputerze A a część z serwisu na komputerze B. Zaczyna się skomplikowanie, prawda?

To nie koniec podróży, idźmy dalej…. Przez Twój spektakularny sukces zacząłeś być obiektem hakerów. Musisz włożyć naprawdę sporo wysiłku w to, żeby Twój system był bezpieczny. Jednym z podstawowych przykazań bezpieczeństwa jest utrzymywanie swojego software-u (serwerów, systemów operacyjnych, baz danych itd.) w najnowszych wersjach. Więc spędzasz godziny tygodniowo na sprawdzaniu, czy wyszła jakaś aktualizacja każdego z elementów systemu i ręcznie instalujesz nową wersję na każdej z maszyn pod biurkiem. Oh, czy wspomniałem, że często taka aktualizacja może się wiązać z przerwą w działaniu danego programu? Nie? No, to żeby zapewnić ciągłość dostarczania usług w najwyższej jakości, potrzebujesz … więcej serwerów…

Zaczynasz mieć ból głowy od ilości elementów o które musisz się martwić? No to jeszcze tylko jeden element o którym wspomnę. Przez ogromny sukces który odniosłeś, masz już powiedzmy 5 komputerów na których „stoi” Twój serwis. Jak każde urządzenie, komputery też się psują. Tu trzeba wymienić kabel, tu trzeba wymienić kartę graficzną. Oczywiście najpierw trzeba zdiagnozować taką usterkę. Oh, właśnie, pomyślałeś kiedyś ile ciepła będzie generować 5 dużych stacji roboczych pod biurkiem, przydałaby się klimatyzacja… I na koniec, uszkodził Ci się twardy dysk, czyli element na którym fizycznie zapisane były wszystkie Twoje dane, software, dane klientów, treści serwisu itd. Robiłeś odpowiednio często kopie zapasowe i przechowujesz je w bezpiecznym miejscu, na fizycznych nośnikach (dyskach, pendrive-ach, czymkolwiek innym), prawda?

Tak można by bez końca. Ilość wyzwań które generuje utrzymywanie hardware-u i software-u w dobrej kondycji jest naprawdę spora. Dlatego znalazły się firmy które z chęcią wykonają znaczącą część pracy na nas.

To jak wygląda chmura?

No dobrze, to jak wygląda ta cała chmura? Proszę, oto przykład, z zewnątrz:

źródło: https://www.datacenterdynamics.com/en/news/amazon-web-services-owns-119-million-square-feet-of-property-leases-141-million-square-feet

I od wewnątrz:

źródło: https://www.aboutamazon.com/news/aws/aws-data-center-inside

Jak widzisz to ogromne przestrzenie przemysłowe z niezliczoną ilością kabli, komputerów, przełączników i innych urządzeń sieciowych. A to tylko część hardware-owa, która rozwiązuje problemy o których wspominaliśmy wcześniej, czyli odpowiednia ilość sprzętu, utrzymywanie odpowiedniej temperatury urządzeń, ciągłość w dostawach prądu, stabilne połączenie internetowe, wymiana uszkodzonych elementów infrastruktury, zabezpieczenie sprzętu i tak dalej.
Nie musimy martwić się o to wszystko, „dostawca chmury” zrobi całą tą robotę za nas.

Ale ale, przecież wcześniej wspomniałem, że potrzebujemy też software-u, oczywiście wszyscy duzi gracze dostarczają kompleksowe usługi również w tym zakresie. Na koniec roku 2023 każdy z głównych dostawców chmury (Amazon Web Services, Google Cloud Platform, Microsoft Azure) oferowali ponad 200 „usług” dostępnych w swojej chmurze. W skład tej długiej listy wchodzi cała masa rozwiązań: serwery, zarządzanie infrastrukturą, bazy danych, systemy powiadomień, wysyłanie maili, gotowe rozwiązania z zakresu sztucznej inteligencji i wiele wiele innych. Używanie gotowych rozwiązań zdejmuje z naszych barków część odpowiedzialności o której wspomniałem wcześniej, między innymi utrzymywanie najnowszych wersji oprogramowania, wybór odpowiedniego dostawcy oprogramowania, meandry prawne związane z licencjami na wykorzystanie oprogramowania, integracja narzędzi od różnych dostawców, problemy ze skalowaniem oprogramowania i tak dalej.

Skoro już wszystko jest gotowe w chmurze, możesz zastanawiać się, czy obecnie inżyniera oprogramowania polega tylko na używaniu gotowych elementów? Nie do końca. Chmura rozwiązuje nam znaczącą część problemów z infrastrukturą, czyli tym na czym uruchamiamy nasze „programy” (strony internetowe). Nadal musimy sami tworzyć treści i logikę która odpowiada za działanie danego portalu internetowego. Brzmi zagmatwanie? Sięgnijmy do przykładu z realnego świata. Wyobraź sobie, że organizujesz aukcje, taką rodem z Hollywood, wiesz taki ebay.com na sterydach i w realnym świecie. Kilka dzieł sztuki, trochę biżuterii może jacht… ewentualnie kilka jachtów jeśli mamy romach… Potrzebujesz sali, kilka osób do obsługi, ochrony, firmy transportowej i zapewne kilku innych elementów. Nigdy nie organizowałem ekskluzywnej aukcji, ale jestem w stanie się założyć, że te elementy raczej są wynajmowane, zlecane firmom które się w tym specjalizują. Jednak na organizatorze nadal spoczywa masa zadań. Trzeba pozyskać eksponaty, zaprosić gości, przeprowadzić wycenę, ekspertyzę, zadbać o porządek aukcji. Jednym słowem, trzeba zrobić „rzeczy typowo aukcyjne”. Podobnie jest z chmurą, delegujesz część IT która jest standardowa, powtarzalna, która jest wszystkim „dookoła” Twojego biznesu, natomiast część, która faktycznie jest unikalna, budujesz sam.

Świetnym przykładem jest Amazon. Ich platforma sprzedażowa, rozrastała się w takim tempie, że więcej czasu musieli spędzać na rzeczach związanych z infrastrukturą niż dodawać kolejne funkcje do swojej platformy sprzedażowej. Postanowili zrobić małą rewolucje, odseparować wszystkie rzeczy związane z infrastrukturą od rozwoju oprogramowania. Zbudowali chmurę na swoje własne potrzeby. Rozwiązanie okazało się tak skuteczne, że postanowili udostępnić je publicznie. Tak, w pigułce, narodził się Amazon Web Services - czyli jedna z najpopularniejszych chmur świata. 

Oczywiście, jak każde narzędzie, również chmura nie rozwiązuje wszystkich problemów. Nadal potrzebujemy specjalistów którzy będą potrafić odnaleźć się w całej tej plątaninie gotowych rozwiązań, nadal należy umieć je odpowiednio skonfigurować, nadal musimy rozumieć „jak to działa” i które rozwiązania powinny być zastosowane do których problemów. No i najważniejsze, nie ma nic za darmo - cena. Jeśli zastanawiasz się „ile to kosztuje” to niestety muszę Cię rozczarować - nie ma jednej odpowiedzi. Jeśli chcesz poeksperymentować i nauczyć się na żywym przykładzie jak to działa, dostawcy usług chmurowych (chyba wszyscy) chętnie podarują Ci darmowy, kilkumiesięczny pakiet, dzięki któremu będziesz mógł zobaczyć jak to działa od kuchni i przekonać się, czy to rozwiązanie jest dla Ciebie. Jeśli jesteś dużym przedsiębiorstwem, które obsługuje miliony klientów dziennie, działa na całym świecie, jest bardzo zaawansowane technologicznie to w kontekście kosztów „sky is the limit”. Jednak często miliony dolarów to cena nadal atrakcyjna w porównaniu do tego ile pracy jest zdjęte z naszych barków.

Czy nie ma nic pomiędzy?

Jeśli zastanawiasz się, czy jedyne możliwości to własna serwerownia (takie „komputery pod biurkiem” tylko bardziej profesjonalne) albo ogromny dostawca chmury - to już spieszę z odpowiedzią: „nie”. Istnieje masa rozwiązań które są gdzieś pomiędzy. Wszystko zależy od tego, czego potrzebujesz. Jeśli chcesz postawić prostego bloga czy sklep internetowy i nie chcesz zajmować się całą „sferą technologiczną”, chcesz tylko pisać albo sprzedawać rzeczy, jest masa usług które dadzą Ci dokładnie takie rozwiązania, gotowe do uruchomienia sklepy czy blogi - nic tylko zacząć pisać i dodawać produkty. Być może jesteś inżynierem który chce pobawić się softwarem ale nie chce martwić się o hardware? Wybierz VPS (Virtual Private Server), który jest niczym innym jak dedykowanym dla Ciebie komputerem, do którego masz zdalny dostęp. Takich rozwiązań jest całe mnóstwo. Kilka popularnych rozwiązań to: ovhcloud.com, digitalocean.com or shopify.com

Zazwyczaj rozwiązania dające pewne sprawdzone szablony będą tańsze niż stawianie całej infrastruktury na AWS, GCP czy Azure. Stąd ich ciągła popularność w sieci. Stanowią one również doskonałą alternatywę dla osób prywatnych czy małych przedsiębiorstw, które nie chcą zatrudniać inżynierów oprogramowania, którzy będą obsługiwać całą sferą technologiczną. Czasem takie rozwiązania są po prostu wygodniejsze. Na przykład ten blog, wcale nie stoi na potężnej chmurze i nie był budowany od zera. Pomimo posiadania odpowiedniej wiedzy i doświadczenia, zdecydowałem się na gotowe rozwiązanie, gdzie jedyne co muszę zrobić to wybrać jeden z gotowych wyglądów i zacząć pisać treści. Tak jest po prostu łatwiej, szybciej i taniej! 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Na górę