dpzc-4/01_Intro/01_01.ipynb
nlitkowski e248075771 a
2022-01-05 01:08:54 +01:00

35 KiB

Praktyczne zastosowania chmury obliczeniowej - wprowadzenie do zajęć

Wprowadzenie do chmury obliczeniowej

Co to jest chmura? Wielu z nas spotkało się z tym pojęciem podczas codziennych czynności, takich jak na przykład zapisywanie zdjęć w telefonie. Intuicyjnie domyślaliśmy się wtedy, iż zapisanie czegoś w chmurze oznacza, że plik nie będzie znajdował się fizycznie w pamięci naszego urządzenia, a zostanie gdzieś przesłany. Choć przechowywanie plików to zapewne najbardziej rozpoznawana w społeczeństwie usługa oferowana w modelu chmury obliczeniowej, nie jest ona ani historycznie pierwszą, ani nie dominuje rynku.

Zadaniem tych zajęć jest przedstawienie i usystematyzowanie pojęcia chmury obliczeniowej. W szczególności przedstawione zostaną jej kluczowe cechy, typy oraz modele, wraz z odniesieniem do najczęstszych zastosowań. Ważnym aspektem podczas omawiania usług chmurowych jest też aspekt finansowy, gdyż to on stanowi jedną z kluczowych cech wyróżniających ten model obliczeń.

W toku dalszych zajęć, poszczególne modele omówione zostaną z większą dokładnością. Przewidzane są również różne ćwiczenia praktyczne pokazujące w jaki sposób wchodzić w interakcję z chmurą obliczeniową w celu realizacji najczęstszych zadań.

Czym jest chmura obliczeniowa

Jednoznaczne odpowiedzenie na tak postawione pytanie nie jest proste. Co więcej z każdym rokiem, wraz rozwojem dostępnych usług, zadanie to staje się coraz trudniejsze. W podstawowym ujęciu chmura obliczeniowa, czy też przetwarzanie w chmurze (ang. cloud computing) to model dostarczania szeroko rozumianej infrastruktury informatycznej (zasobów obliczeniowych, dysków, sieci, oprogramowania). Przed popularyzajcą modelu przetwarzania w chmurze, dostęp do poszczególnych elementów infrasturktury uzyskiwany był niezależnie od różnych dostawców:

  • zasoby obliczeniowe (serwer): kupowane na własność lub wynajmowane, przechowywane we własnych serwerowaniach (ang. on premises) lub w dedykowanych centrach danych (kololacja)
  • dyski: kupowane na własność, konieczność zapewnienia replikacji, redundacji danych oraz wymiany sprzętu
  • sieć: wysoko wydajna sięć przyłączana do siedziby firmy lub łącząca firmę z centrum danych
  • oprogramowanie: kupowane w modelu licencyjnym (ograniczonym czasowo lub nie)

Chmura obliczeniowa zmienia zupełnie sposób myślenia o infrastrukturze. Najlepiej zmianę tę zobrazować można to na przykładzie rynku muzycznego. Przed 2010 rokiem kluczową rolę w dystrubucji muzyki odgrywały płyty kompaktowe (i inne fizyczne nośniki danych), które były praktycznie jedynym możliwym sposobem na zapoznanie się z twórczością artystów. Słuchacz (użytkownik) musiał dokonać zakupu płyty, dzięki czemu uzyskiwał nieograniczony dostęp do wszystkich utworów muzycznych, które zawierała. Taki model sprzedaży można nazwać _włanościowym (ang. ownership), gdyż stajemy się wyłącznymi właścicielami nośnika. W 2006 roku Szwedzka firma Spotify rozpoczęła pracę nad nowym modelem sprzedaży muzyki. Zamiast kupować poszczególne płyty, zaoferowała ona miesięczny abonament (subskrypcję) w ramach którego użytkownicy mogli słuchać bez ograniczeń dowolnych dostępnych utworów. Nie uzyskiwali oni natomiast żadnych praw do tych utworów, rezygnacja z abonamentu oznaczała utratę dostępu do muzyki. Konieczne jest stałe opłacanie uslugi nawet jeśli chcemy odtworzyć wcześniej dostępny utwór. Taki model można nazwać modelem dostępowym (ang. access), gdyż otrzymujemy w nim nielimitowany dostęp bez zdobywania trwałych praw do zasobów.

W podobny sposób zmienił się i wciąż zmienia rynek IT. Kupowaną na własność infrastrukturę informatyczną i oprograwmowanie, zastępuję się wynajmowanymi zasobami, dostępnymi bez ograniczeń i na żądanie, wtedy kiedy są potrzebne. W ten sposób analogicznie jak na rynku muzycznym zmienia się też sposób płatności. Zamiast dużych wydatków początkowych na zakup infrastruktury i oprogramowania, koszty rozkładane są w czasie na cały czas działalności firmy. Te dwie cechy (dostępnośc na żądanie i płatność wedle użycia) wydają się być kluczowymi cechami wyróżniającymi model przetwarzania w chmurze. Fakt ten znajduje też odzwierciedlenie w definicjach chmury obliczeniowej formułowanych przez różne instytucje. Przykładowo Narodowy Instytut Standaryzacji i Technologii Stanów Zjednoczonych (NIST) definiuje przetwarzanie w chmurze jako [NIST]:

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

Firma Amazon, dostawca największej publicznej chmury obliczeniowej definiuje ją jako [AWS]:

Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.

Firma Microsoft, dostawca drugiej największej chmury obliczeniowej [MS]:

Cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet ("the cloud") to offer faster innovation, flexible resources, and economies of scale. You typically pay only for cloud services you use, helping you lower your operating costs, run your infrastructure more efficiently, and scale as your business needs change.

Pojęcie chmury obliczeniowej jest jednak bardzo szerokie, dlatego zamiast pojedynczej definicji, dużo łatwiej jest wyróżnić kluczowe cechy jakie je charakterysują [NIST]:

  • zasoby na żądanie (ang. on-demand): klient może w dowolnym momencie, samodzielnie i automatycznie bez udziału obsługi uzyskać dostęp do oferowanych usług
  • dostęp przez sieć: uslugi oferowane są za pośrednictwem sieci komputerowej (np. Internetu)
  • współdzielone zasoby (ang. resource pooling): zasoby sprzętowe są współdzielone pomiędzy wielu klientów i udostępniane w środowisku zwirtualizowanym
  • elastyczność: zasoby można tworzyć i usuwać szybko i bez ograniczeń ilościowych, dostępne są różne opcje skalowania infrastruktury
  • kontrola zużycia zasobów: dostępne są szczegółowe statystyki zużycia poszczególnych zasobów o dużej rozdzielczości (najczęściej sekundowej), co pozwala na optymalizację kosztów usług

Poszczególne cechy realizowane mogą być w różnym stopniu. Przykładowo kontrola zużycia zasobów może być oferowana w rozliczaniu sekundowym, minutowym czy godzinnym (raczej nie spotyka się usług o dłuższym okresie). Sposób tworzenia zasobów na żądanie też może być zróżnicowany, praktycznie zawsze jest to dostęp do panelu administracyjnego za pośrednictwem przeglądarki internetowej, bardzo często dostępne jest też narzędzie CLI, rzadziej biblioteki programistyczne integrujące usługi chmurowe z różnymi językami programowania, czy API dostępowe w stylu REST.

Trudność w jednolitym zdefiniowaniu chmury obliczeniowej wynika głównie z mnogości modeli i różnorodności oferowanych usług. Można wyróżnić 3 główne modele chmury obliczeniowej [NIST]:

  • Software as a Service (SaaS): Usługa oferowana klientowi polega na zapewnieniu możliwość korzystania z aplikacji dostawcy działających w infrastrukturze chmury. Aplikacje są dostępne z różnych urządzeń klienckich za pośrednictwem interfejsu klienta, takiego jak przeglądarka internetowa (np. poczta e-mail oparta na sieci WWW) lub interfejsu programu. Konsument nie zarządza ani nie kontroluje podstawowej infrastruktury chmury, w tym sieci, serwerów, systemów operacyjnych, pamięci masowej, a nawet możliwości poszczególnych aplikacji, z możliwym wyjątkiem ograniczonych ustawień konfiguracji aplikacji specyficznych dla użytkownika.
  • Platform as a Service (PaaS): Usługa oferowana klientowi polega na zapewnieniu możliwość wdrożenia w infrastrukturze chmury aplikacji utworzonych lub nabytych przez klienta, utworzonych przy użyciu języków programowania, bibliotek oraz usług obsługiwanych przez dostawcę. Konsument nie zarządza ani nie kontroluje bazowej infrastruktury chmury, w tym sieci, serwerów, systemów operacyjnych lub pamięci masowej, ale ma kontrolę nad wdrożonymi aplikacjami i ewentualnie konfiguracją środowiska uruchominiowego aplikacji.
  • Infrastructure as a Service (IaaS): Usługa oferowana klientowi polega na zapewnieniu przetwarzania, przechowywania, sieci i innych podstawowych zasobów obliczeniowych, w których konsument może wdrażać i uruchamiać dowolne oprogramowanie, które może obejmować systemy operacyjne i aplikacje. Konsument nie zarządza bazową infrastrukturą chmury ani nie kontroluje jej, ale ma kontrolę nad systemami operacyjnymi, pamięcią masową i wdrożonymi aplikacjami; i ewentualnie ograniczoną kontrolę nad wybranymi komponentami sieciowymi (np. zapory sieciowe).

Poniższy diagram przedstawia podstawowe modele chmury w odniesieniu do posiadania własnej infrastruktury i korzystania z usługi kolokacji. Widać, że modele chmury obliczeniowej układają się w hierarchię, w której kolejne modele zwięszają zakres obowiązków dostwacy. Przykładowo w modelu SaaS, znajdującym się na szczycie hierarchi, klient odpowiada tylko za dane przetwarzane w systemie, podczas gdy wszystko inne zapewniane jest przez dostawcę.

Diagram przedstawia główne modele chmury obliczeniowej (IaaS, PaaS, SaaS) w raz z zaznaczeniem składowych infrastryktury (pomieszczenia, zasilanie i sieć, sprzęt, wirtualizacja, guest OS, środowisko uruchomieniowe, aplikacja, dane użytkownika) i podmiotem za nią odpowiedzialnego. Jako punkt odniesienia na diagramie umieszczono też dwa warianty posiadania własnej infrastruktury (infrastrukura na miejscu oraz kolokacja). Przy infrastrukturze na miejscu dwórca systemu informatycznego odpowiedzialny jest za wszystko, podczas gdy przy kolokacji nie musi zarządzać pomieszczeniem oraz siecią i zasilaniem. Gdy infrastruktura znajduje się w chmurze IaaS twórca aplikacji zwolniony jest konieczności zarządzania sprzętem i wirtualizacją. W modelu PaaS twórca zarządza już tylko aplikacją i danymi użytkownika, podczas gdy w modelu SaaS, tylko danymi.

Więcej informacji na ten temat poszczególnych modeli zostanie przedstawione w poszczególnych zajęciach.

Rodzaje chmury obliczeniowej

Modele chmury definują jakie usługi są świadczone oraz podział odpowiedzialności pomiędzy dostawcę i klienta. Z drugiej strony rodzaje chmury określają w jaki sposób usługa chmury jest świadczona. Wyróżniamy trzy rodzaje:

  • chmura publiczna:

    Najpopularniejszy rodzaj chmury obliczeniowej, zasoby oferowane są w sposób współdzielony pomiędzy różnych kientów za pośrednictwem publicznego Internetu.

  • chmura prywatna:

    Wszystkie zasoby dedykowane są tylko jednemu klientowi, najczęściej są one fizycznie odzielone od innych zasobów dostawcy lub nawet zlokalizowane w siedzibie klienta. Szczególnym przypadkiem chmury prywatnej jest sytuacja, w której wewnętrzny dział IT oferuje firmie kompleksową, prywatną platrofmę chmurową. Przykład takiej infrastruktury przedstawiony został tutaj [ALL].

  • chmura hybrydowa:

    Połączenie chmury publicznej i hybrydowej. W chmurze hybrydowej część zasobów zlokalizowana jest w zasobach chmury publicznej, a część w chmurze prywatnej lub w klasycznej własnej infrastrukturze. Kryteria przydziału zasobów do lokalizacji mogą być różne: wrażliwość danych, łatwość migracji, staż oprogramowania itp.

Zalety chmury

Zanim przedstawione zostaną kluczowe zalety chmury obliczeniowej konieczne jest zrozumienie charakterystyki finansowej usług oferowanych w chmurze. Jak już zostało to wspomniane przetwarzanie w chmurze zamienia początkowe koszty inwestycyjne na ciągłe opłaty za wykorzystane zasoby. Wcale nie jest oczywiste dlaczego taka zmiana ma być korzystna dla konsumenta. Pojęcie _całkowitego kosztu posiadania (ang. TCO) pozwala porównać koszty posiadania własnej infrastruktury oraz chmury obliczeniowej. Całkowity koszt posiadania to suma kosztów (bezpośrednich i pośrednich) jakie firma będzie musiała ponieść na utrzymanie infrasturktury w danej perspetywie czasowej. Często błędnie przyjmuje się, że wiodącym kosztem posiadania własnej infrastruktury jest zakup sprzętu i oprogramowania. Założenie to jest słuszne tylko w bardzo krótkiej perspektywie czasowej. W dłuższym okresie uwidaczniaja się inne składowe TCO. W zależności od typu zasobu wyróżnić można następujące koszty wchodzące do TCO:

  • zasoby obliczeniowe: szafy, serwery; licencje na oprogramowanie; prad, chłodzenie
  • zasoby dyskowe: dyski; zarzadzanie danymi, replikacja; prad, chłodzenie
  • sieci komputerowe: urządzenia sieciowe; administracja; prad

Dla każdego zasobu istotnym kosztem jest też zapewnienie wykwalifikowanej obsługi IT, ochrony oraz pomieszczenia/budynku. Przykładowa kalkulacja TCO została zamieszczona w materiałach poświęconych modelowi IaaS.

Wracając do tematu głównych zalet usług chmurowych:

  1. Zastąpienie początkowych kosztów inwestycyjnych kosztami operacyjnymi (CapEx -> OpEx)

    W przypadku posiadania własnej infrastruktury konieczne są duże wydatki inwestycyjne na początku (ang. capital expenditure, CapEx). Następnie konieczne jest ponoszenie stabilnych kosztów utrzymania przez cały czas działania infrastruktury (ang. operational expenditure, OpEx). Wykorzystanie chmury obliczeniowej zupełnie likwiduje konieczność ponoszenia kosztów początkowych, przenosząc je na zmienne koszty utrzymania. Ta zminność stanowi jednocześnie wielką okazję i ryzyko. Początkowo koszty są zawsze małe co pozwala przeznaczyć środki w początkowym okresie funkcjonowania na rozwój. Koszty te mogą jednak rosnąć bardzo szybko wraz ze wzrostem zapotrzebowania. Dlatego tak ważne jest odpowiednie projektowanie systemów informatycznych, tak aby wdrożone w chmurze aplikacje nie tylko działały poprawnie ale również skalowały się w sposób efektywny finansowo.

  2. Wykorzystanie efektu skali (ang. economies of scale)

    Dostawca chmury obliczeniowej oferuje takie same usługi bardzo wielu klientom jednocześnie. Jest więc w stanie wdrożyć optymalizacje, które w ogromnej skali przynoszą wielkie oszczędności.

    Ciekawostka: Najwięksi dostawcy chmury obliczeniowej projektują własne układy scalone, procesory itp., co pozwala im znacznie zredukować koszty sprzętu.

    Ciekawostka: Amazon dzięki zwiększeniu skali obniżył ceny niektórych usług w okresie 2006-2019 nawet 75 krotnie.

  3. Infrastruktura zawsze dopasowana do potrzeb

    W przypadku budowania własnej infrastruktury największym początkowym wyzwaniem jest zwymiarowanie potrzebnych zasobów. Niedoszacowanie, ograniczy możliwość realizacji celów biznesowych i wymusi konieczność szybszej wymiany sprzętu. Przeszacowanie prowadzi natomiast do zwiększonych kosztów początkowych, co zmniejsza środki na rozwój przedsiębiorstwa. Ogólnie częściej zauważa się tendencję do przewymiarowania infrastruktury, przez co znaczna jej część nie zostaje nigdy wykorzystana (szczególnie zasoby dyskowe).

  4. Zwiększona elastyczność i zwinność

    W klasycznym modelu, uzyskanie dostępu do nowego serwera może wymagać od kilku godzin do kilku miesięcy oczekiwania (sprzęt trzeba zamontować w serwerowni, skonfigurować, a często również kupić). Oprócz czasu utraconego na oczekiwanie, ogranicza to też możliwość eksperymentowania z nowymi rozwiązaniami. Przykładowo, wyobraźmy sobie, że jeden z zespołów chce sprawdzić czy wykorzystanie serwerów z GPU sprawdzi się przy rozwiązaniu danego problemu. Kupuje serwer, buduje go a następnie konfiguruje (co trwa 2 tygodnie), tylko po to by stwierdzić, po 2 dniach eksperymentów, że oprogramowanie, które wykorystuje nie skaluje się dobrze w modelu obliczeń SIMD. Chmura obliczeniowa zachęca do ekspetymentowania, gdyż dowolne zasoby można wynajać na godziny (a często nawet sekudny).

  5. Brak wydatków na utrzymanie serwerowni

    Posiadanie własnej infrastruktury nieodłącznie wiąże się z posiadaniem własnej serwerowni, która z pewnością generuje spore koszty utrzymania. Koszty te są tym większe im bardziej niezawodna musi być nasza serwerownia (większa redundancja zasobów, infrsastruktury, więcej personelu, itp.). Wymusza to ciągłe utrzymanie kompromisu pomiędzy bezpieczeństwem danych i kosztami. Tylko największe organizacje stać na utrzymanie w pełni profesjonalnej i niezawodnej serwerowni. Zastosowanie chmury obliczeniowej znacząco ogranicza ten problem, profesjonalne zarządzanie zasobami dostępne jest dla wszystkich w równych cenach. Należy jednak nadal pamiętać, że zapewnienie większej redundancji i dostępności nadal jest bardziej kosztowne niż jej brak.

  6. Globalna infrastruktura

    W wielu zastosowaniach, odległość od klienta (fizyczna lub sieciowa) jest bardzo istotna dla zapewnienia zgodności z regulacjami prawnymi lub niskich czasów odpowiedzi i wysokiej wydajności aplikacji. Posiadając własną infrastrukturę jesteśmy istotnie ograniczeni do fizycznej lokalizacji naszego sprzętu. Ograniczone są też możliwości szerkopasmowego dostępu do głównych węzłów sieci Internet. Dostawcy usług chmurowych oferują bardzo często swoje usługi w bardzo wielu lokalizacjach, co pozwala oferować aplikację z praktycznie dowolnego miejsca na świecie bez dodatkowych kosztów czy nakładów organizacyjnych.

Wady oraz ryzyka związane z wykorzystaniem chmury obliczeniowej

Jak każda nowa technologia, chmura obliczeniowa niesie wiele nowych możliwości oraz ryzyk. Obserwując współczesne trendy chmura obliczeniowa jest obecnie używana powszechnie niemalże we wszystkich branżach. Istnieją jednak obszary, w których jej zastosowanie nie jest łatwe a nawet wskazane. Przykładowo dla systemu wymagającego stałej i bardzo dużej mocy obliczeniowej, bardziej opłacalny będzie zakup odpowiedniego serwera i skorzystanie z usługi kolokacji. Podobnie sytuacja wygląda w przypadku każdego dedykowanego niszowego sprzętu. Poniższa sekcja przedstawia główne wady i ryzka, które należy względnić podejmując decyzję o wykorzystaniu chmury obliczeniowej.

  1. Brak dostępności do chmury obliczeniowej

    Można wyróżnić trzy główne sytuacje, w których zostajemy odcięci od chmury obliczeniowej:

    • brak dostępu do Internetu: Gdy nasi pracownicy lub klienci zostają odcięci od Internetu, nie mamy możliwości wykorzystania zasobów chmury obliczeniowej, nawet jeśli te działąją wtedy bez problemów
    • awaria po stronie dostawcy chmury: Choć te zdażają się bardzo rzadko, a ich zasięg jest znacznie ograniczony, to mimo wszystko jest to istotne ryzyko, które należy względnić. W zależności od stali awarii może ona obejmować od kilkuminutowej przerwy w dostępnie do wybranych usług po trwałą utratę wszystkich danych. Przykład takiej historii przedstawiony jest tutaj [TYPO].
    • embargo lub sakncje gospodarcze i polityczne: Dostawcy usług chmurowych to bardzo często wielkie międzynarodowe przedsięborstwa, jednak nawet one podelegają legislacji państw w których działają. Ponadto, niektóre firmy mogą blokować działalność niezgodną z ich profilem, polityką wewnętrzną, a nawet światopoglądem. Jest to zdecydowanie najpoważniejsze z zagrożeń. O ile przerwy w dostępie do Internetu są czasowe, awarie najczęściej nie mają poważnych stuktów, o tyle odmowa lub wypowiedzenie umowy przez dostawcę chmury, wymusza natychmiastowe przeniesienie wszyskich zasobów. Przykład takiej historii przedstawiony jest tutaj [PAR].
  2. Bezpieczeństwo i prywatność

    Wykorzystanie zasobów publicznej chmury obliczeniowej niesie istotne, nowe ryzyka związane z bezpieczeństwem i prywatnością. Wykorzystanie przez dostawcę współdzielonej infrastruktury, otwiera nasze zasoby i dane na możliwość ataku pochodzącego od innych użytkowniwków chmury. Wątpliwości budzi też często fakt, że dostawca ma praktycznie nieograniczony dostęp do wszystkich naszych danych. Szczególną uwagę zwraca się na wykorzystanie tych danych do doskonalenia własnych, publicznie dostępnych usług lub do celów marketingowych.

  3. Podatność na ataki

    Innym aspektem bezpieczeństwa jest wykorzystanie komunikacji przez Internet jako sposób dostępowy do zasobów. Umożliwia to przeprowadzenie ataków, które tradycyjnym modelu wymagały by fizycznego wtargnięcia do budynków firmy. Przykład historii firmy, która zbankrutowała po tym jak atakujący zyskali dostęp do ich zasobów chmurowych opisany został tutaj [CODE].

  4. Ograniczona kontrola i elastyczność

    Wybierając dostawcę chmury obliczeniowej, zdani jesteśmy na jego ofertę. Jeśli potrzebnej przez nas usługi nie ma w ofercie, istnieje bardzo nikła szansa, że zostanie ona wprowadzona specjalnie dla nas. Należy pamiętać, że niezależnie jak jesteśmy dużą organizacją, jesteśmy tylko jednym z tysięcy jak nie milionów klientów. Ograniczenia w szczególności dotyczą konfiguracji sprzętowej, dostępności oprogramowania i ich wersji. Kolejnym elementem wpływającym na ograniczenie kontroli jest dostęp do wsparcia technicznego. W standardzie dostępny jest system helpdeskowy, w którym czas odpowiedzi waha się od kilku godzin do nawet dni.

  5. Uzależnienie się od dostawcy chmury obliczeniowej (ang. vendor lock-in)

    Poszczególni dostawcy chmury obliczeniowej, choć najczęściej oferują analogiczne usługi, są silnie nie kompatybilni między sobą. Przeniesienie infrastruktury pomiędzy dostawcami, nie jest zadaniem łatwym ani tanim. Aby w pełni wykorzystać możliwości oferowane przez naszego dostawcę chmury, oprogramowanie zostaje zaprogramowane w sposób ściśle wiążący je z konkretnym dostawcą co praktycznie uniemożliwia migrację. Problem ten jest szczególnie widoczny w modelu PaaS i w podejściu Serverless.

    Odpowiedzią na ten problem jest tak zwane podejście multicloud. Jednak wciąż brakuje satysfakcjonujących rozwiązań, obecnych na rynku wystarczająco długo aby można było im zaufać. Ponadto, uniezależniając się od dostawcy chmury, uzależniamy się od dostawcy usługi multicloud.

  6. Rosnące koszty

    Koszty infrastruktury w modelu chmury obliczeniowej nie są stałe i zależą od bardzo wielu, często trudnych do przewidzenia czynników. Nagły sukces naszej aplikacji może przynieść drastyczny wzrost wykorzystania zasobów, a co za tym idzie kosztów chmury. Co więcej, koszty chmury często rosną szybciej niż przypływy z komercjalizacji naszego sukcesu. Historia firmy, która została zmuszona do ucieczki z chmury obliczeniowej na rzecz własnej infrastruktury jest opisana tutaj [BOX].

Dostawcy chmury obliczeniowej

W 2021 roku trzech największych graczy rynku usług publicznej chmury obliczeniowej to: Amazon Web Services (32% rynku), Microsoft Azure (19% rynku) oraz Google Cloud (7% rynku) [CAN]. Jednak podział ten nie daje pełni obrazu rynku. Przykładowo jeśli spojrzymy na chmurę w modelu SaaS to liderm jest Microsoft (17%), Salesforce (12%) i Adobe (10%) [SYN].

Przedstawienie wyczerpującej listy istotnych dostawców chmury obliczeniowej nie mieści się w zakresie tych zajęć. Można przyjąć, że stabilna lista najważniejszych dostawców to:

  • Amazon Web Services (AWS)
  • Microsoft Azure
  • Google Cloud
  • Alibaba Cloud
  • IBM Cloud
  • Oracle
  • Salesforce
  • SAP
  • Rackspace Cloud
  • VMWare

Dostęp do wybranych usług chmurowych

Praktycznie wszystkie serwisy oferujące zasoby w modelu chmury obliczeniowej są usługami komercyjnymi przeznaczonymi dla firm lub profesjonalistów. Większość dostawców chcąc się zabezpieczyć przed nadużyciami wymaga na etapie rejestracji autoryzacji karty płatniczej. W ten sposób dostawca ma znacznie większą szansę dochodzenia swoich roszczeń. Innym podejściem jest zablokowanie kosztownych usług do czasu weryfikacji konta użytkownika np. poprzez opłacenie pierwszej faktury lub ponownie autoryzację karty płatniczej.

Niestety takie ograniczenia znacząco ograniczają dostęp do zasobów chmury dla osób rozpoczynających swoją przygodę z tym modelem obliczeniowym. Jest to szczególnie uciążliwe w przypadku zajęć w modelu uniwersyteckim, gdzie grupa studentów wykorzystuje indywidualne zasoby w celu realizacji zleconych zadań. Niniejsza sekcja przedstawi rekomendowany sposób uzyskania dostępu do zasobów poszczególnych dostawców chmury obliczeniowej.

Uwaga: Najwygodniejszym rozwiązaniem jest założenie kont z podaniem rzeczywistych danych oraz aktywnej karty płatniczej. Omawiane na zajęciach serwisy to firmy z wieloletnim doświadczeniem, obdarzone zaufaniem przez tysiące klientów. Ryzyko nadużyć z ich strony należy traktować jako minimalne. Należy jednak pamiętać o ryzyku z naszej strony [NIE].

Uwaga: Konta u dostawców usłuch chmurowych są często atakowane. Uzyskanie dostępu do czyjegoś konta pozwala na utworzenie zasobów obliczeniowych, które następnie wykorzystywane są np. do kopania kryptowalut. Nawet kilkaminut pozwala zarobić atakującemu wystarczająco dużo, szczególnie jeśli uda mu się utworzyć setki lub tysiące maszyn do obliczeń. Takie kilka minut nieuprawnionego użycia może jednak wiązać się z ogromnymi kosztami. Zawsze należy ustawić ograniczenia w ilości zasobów i przede wszystkim zadbać o bezpieczeństwo swojego konta poprzez mocne hasło i najlepiej autoryzację dwu/wielo-składnikową.

Uwaga: Nie należy się obawiać obarczenia kosztami eksperymentów z rozwiązaniami chmurowymi jeśli przestrzega się jednej prostej zasady: po zakończeniu eksperymentu należy usunąć wszystkie zasoby, które zostały utworzone. Koszt działania zdecydowanej większości usług naliczany jest z dokładnością do sekundy, a ceny za godzinę pracy nawet najdroższych zasobów nie przekraczają 100 zł (najczęsciej jest to koszt rzędu 25 gr za godzinę).

Uwaga: Zawsze warto ograniczyć dostęp do zasobów do adresów IP z puli 150.254.0.0/16 (sieć Uniwersytecka). Jest to szczególnie istotne w przypadku usług, których cennik zakłada naliczanie opłat nie tylko za czas ale też za ilość przetworzonych danych (np. OCR).

Heroku

Heroku umożliwia rejestrację bez autoryzacji karty płatniczej oraz oferuje dostęp do wszystkich istotnych funkcji w ramach darmowego dostępu (oczywiście z istotnie ograniczonymi zasobami).

Ponadto, możliwe jest skorzystanie z oferty Heroku + GitHub, gdzie można uzyskać dwuletni grant w wysokości $84/rok. Konieczne jest przystąpienie do programu GitHub Student Developer Pack oraz autoryzacja karty płatniczej. Nie jest to jednak wymagane do realizacji tych zajęć.

Hetzner

Hetzner również umożliwia rejestrację bez podania danych karty płatniczej, podczas rejestracji wystarczy wybrać płatność przelewem bankowym lub PayPal. Należy jednak zauważyć, że Hetzner nie oferuje żadnych darmowych limitów czy zasobów. Każda utworzona maszyna wirtualna będzie wiązała się z naliczeniem opłat na koncie. Na szczęście podstawowe maszyny Hetzner są bardzo tanie, ich koszt to od 2 do 5 groszy za każdą godzinę działania.

Uwaga: Większość systemów informatycznych Hetzner nie obsługuje polskich znaków.

Uwaga: Hetzner oferuje program poleceń, w ramach którego można uzyskać 20 EUR startowego salda na koncie ważne przez rok. Zapytaj prowadzącego zajęcia o link aktywacyjny.

Linode

Do rejestracji w Linode niezbędna jest autoryzacja karty płatniczej. Ponadto podobnie jak Hetzner Linode nie udostępnia żadnych zasobów za darmo. W tym przypadku podstawowe maszyny Linode kosztują około 5 groszy za godzinę.

Uwaga: Linode słynie z bardzo korzystnych cenowo maszyn z kartami graficznymi. Niestety w związku z ograniczoną ich dostępnością w 2021 roku dostęp do nich jest możliwy tylko po dodatkowej weryfikacji konta

Amazon Web Services (AWS)

Do rejestracji w AWS niezbędne jest autoryzowanie karty płatniczej. W zamian za to otrzymujemy roczny pakiet darmowych zasobów.

W ramach kursu otrzymasz również dostęp AWS Academy Learner Lab, gdzie odtrzymasz pakiek środków umożliwiający realizację wszystkich zadań omawianych na zajęciach.

Microsoft Azure

Microsoft oferuje dostęp do swoich zasobów w ramach inicjatywy Azure for Students, gdzie możliwe jest założenie konta bez potrzeby autoryzacji karty płatniczej. Ponadto otrzymacie jednorazowe środki w wysokości $100 ważne przez rok oraz dostęp do wielu darmowych usług. Dostęp można odnawiać co roku.

Rekomendowana literatura uzupełniająca

Literatura