Wprowadzenie do technologii chmury

Wprowadzenie do technologii chmury

Autor: Patryk Pilarski

Opublikowano: 8/16/2016, 12:00 AM

Liczba odsłon: 7595

Poniższy artykuł rozpoczyna serię traktującą o technologii Microsoft Azure. Mamy nadzieję, że zachęcimy i przede wszystkim ułatwimy czytelnikom CentrumXP rozpoczęcie testowania i wykorzystywania atutów infrastruktury w chmurze. Zanim jednak opisana zostanie technologia chmury Microsoft, zapoznamy się z podstawowymi pojęciami dotyczącymi chmury oraz modelami jej użycia.

Zacznijmy od zdefiniowania podstawowego pojęcia – chmura. Jest to zasób (np. przestrzeń dyskowa, moc obliczeniowa lub aplikacja), który może zostać udostępniony użytkownikom w celu jego wykorzystania. Idea udostępniania zasobów nie jest niczym nowym w świecie IT, ale dopiero powszechny dostęp do sieci Internet oraz wysokie przepustowości łącz abonenckich pozwoliły rozszerzyć zakres działania chmury i jej możliwości. Dodatkowym bodźcem wspierającym rozwój chmury w ostatnich latach jest technologia wirtualizacji i stale rosnąca moc obliczeniowa naszych procesorów.

Technologia wirtualizacji

Technologia wirtualizacji odnosi się do konfiguracji i wykorzystania logicznego zasobu przez abstrakcję zasobów fizycznych. Abstrakcję zasobów można postrzegać jako możliwość utworzenia własnej konfiguracji zasobów fizycznych (np. procesora, pamięci RAM, dysku twardego) oraz możliwości zdecydowania, w jaki sposób zasoby te będą widziane i wykorzystywane przez systemy komputerowe, które będą z nich korzystać. W rzeczywistości technologia ta jest stale rozwijana od lat 60-tych ubiegłego wieku. Już wtedy inżynierowie informatyki zauważyli pewien problem dotyczący użycia zasobów ówczesnych komputerów – okazało się bowiem, że już wtedy pojedynczy użytkownik nie był w stanie w sposób ciągły wykorzystać wszystkich zasobów obliczeniowych swojego komputera. Zaczęto więc szukać rozwiązań umożliwiających wielu użytkownikom dostęp do tego samego komputera w celu bardziej racjonalnego i efektywnego wykorzystania jego zasobów - np. procesora, pamięci RAM czy dysku twardego.

Wracając do czasów współczesnych – drogi Czytelniku CentrumXP – zapewne w swoim komputerze posiadasz zainstalowany nowoczesny procesor Intel lub AMD oparty na architekturze wielu rdzeni i wyposażony w dużą ilość pamięci cache oraz RAM. Czy ktoś z Was sprawdzał, jaki procent możliwości procesora jest wykorzystywany podczas codziennej pracy? Niestety niewielki. Oczywiście niektórzy wykorzystują swoje komputery np. do grania w najnowsze gry, ale nawet w takim przypadku ciężko jest znaleźć tytuł, który wykorzystuje więcej niż 50% możliwości, jakie oferują wszystkie rdzenie nowego procesora. Logicznym podejściem wydaje się więc wykorzystanie dostępnych zasobów do uruchomienia kilku instancji systemu operacyjnego w ramach działania jednej maszyny fizycznej – w dużym skrócie na to właśnie pozwala technologia wirtualizacji.

Do podobnych wniosków doszły największe na świecie firmy technologiczne, takie jak choćby Microsoft. Gigant z Redmond posiadał dziesiątki centr danych, a więc wyspecjalizowanych serwerowni o olbrzymich rozmiarach, w których mieściło się tysiące serwerów. Microsoft i inne korporacje, takie jak VMware, IBM czy Amazon od dawna szukały możliwości na zwiększenie wydajności i rentowności swoich serwerowni. Jako cel założono efektywniejsze wykorzystanie dostępnych maszyn i ich zasobów, na przykład w taki sposób, aby minimalizować ryzyko wystąpienia sytuacji, w której 16-rdzeniowy procesor jest wykorzystywany w 10% swoich możliwości. Microsoft osiągnął swój cel poprzez rozwój własnych technologii wirtualizacji, takich jak Microsoft Hyper-V (wcześniej znany jako Virtual PC), która to technologia stała się jedną z kluczowych zalet systemów operacyjnych z rodziny Windows Server. Temat wirtualizacji jest tak ciekawy, obszerny i powiązany z wieloma technologiami Microsoft, że można by na to poświęcić osobną serię artykułów. Zapamiętajmy więc jedno – dopiero połączenie technologii wirtualizacji z dostępnymi wcześniej rozwiązaniami serwerowymi i sieciowymi pozwoliło na dynamiczny rozwój technologii chmury prywatnej i publicznej.

Chmura prywatna i chmura publiczna

Przyjrzyjmy się architekturze chmury prywatnej. Zakłada ona, że pewien zasób jest konfigurowany i udostępniany ograniczonej grupie użytkowników. Granicą chmury prywatnej jest zazwyczaj sieć LAN lub MAN. W celu zobrazowania idei działania chmury prywatnej wyobraźmy sobie najprostszy model tego typu rozwiązania – serwer plików korzystający z macierzy dysków RAID. Udostępnianym zasobem będzie tu przestrzeń dyskowa, z której skorzystać mogą wszyscy zdefiniowani wcześniej użytkownicy w obrębie sieci prywatnej. To bardzo prosty przykład, który można w jeszcze prostszy sposób rozbudować. Załóżmy więc, że w obrębie naszej sieci lokalnej działają użytkownicy, którzy korzystają z pewnej bazy danych np. Microsoft SQL Server 2014. Naszym celem jest osiągnięcie redundancji danych na dyskach, aby potencjalna awaria nie spowodowała utraty danych. Załóżmy również, że opisywana baza jest dużych rozmiarów i fizycznie będzie zajmować kilka dysków naszej macierzy RAID. Chcemy wykorzystać ten fakt w celu równoległego odczytu danych z kilku dysków jednocześnie, co znacznie przyspieszy dostęp do danych. Nie chcemy również, aby nasze środowisko było niezdatne do użytku w momencie, w którym serwer ulegnie awarii. Dlatego właśnie chcemy się zabezpieczyć na taką ewentualność. Kupujemy wtedy drugi serwer, który w razie awarii przejmie rolę głównego serwera i zapewni ciągłość pracy całego środowiska. Przy takich wymaganiach powinniśmy więc z pomocą systemu Windows Server 2012R2 skonfigurować klaster HA (z ang. High Availability) pomiędzy dwoma serwerami z zainstalowanym oprogramowaniem SQL Server 2014 oraz skonfigurować macierz do pracy np. w trybie RAID 10 (znanym też jako RAID 1+0), który zapewnia redundancję danych przy jednoczesnej wysokiej szybkości ich odczytu.

Jak widać, nasza prosta chmura prywatna zyskała bardzo ważne cechy – jest w tym momencie odporna na awarię dysków, awarię jednego z serwerów oraz zapewnia szybszy dostęp do danych niż w podstawowej wersji. W dodatku tak skonfigurowane środowisko możemy rozbudować o kolejne funkcje przydatne na przykład w sytuacji, w której nagle zajdzie potrzeba udostępnienia bazy dla większej liczby osób. W tym miejscu powinniśmy też rozważyć wady opisywanej koncepcji. Po pierwsze, w celu skonfigurowania środowiska musimy posiadać odpowiedni sprzęt, tj. serwery, oprogramowanie i urządzenia sieciowe. Wymagane jest również posiadanie odpowiednich umiejętności konfigurowania systemu, a także jego zabezpieczenia przed dostępem osób nieupoważnionych. To wszystko podnosi koszty, jakimi musimy dysponować, aby w ogóle tego typu rozwiązanie uruchomić. Jako zarządca infrastruktury odpowiadamy za koszty administracji, ale również za koszty potencjalnych awarii i związanych z nimi przestojów. Taki model administracji chmurą nazywany jest w anglojęzycznej literaturze fachowej jako „On-premisses”.

Alternatywnym modelem jest model chmury publicznej. Mamy tu styczność z zasobem udostępnianym użytkownikom za pomocą sieci Internet. Zasób jest własnością zewnętrznej firmy, której obowiązkiem jest administracja i zarządzanie całą platformą. W modelu chmury publicznej możemy więc wydzielić dwie podstawowe role – zarządca infrastruktury (administrator) i użytkownik. Dostęp do zasobu następuje po procesie uwierzytelnienia użytkownika. Użytkownik musi wcześniej założyć konto na platformie zewnętrznej firmy i zgodzić się na proponowane przez właściciela infrastruktury warunki dotyczące płatności, dostępności platformy, SLA (z ang. Service Level Agreement) i zakresu oferowanych usług. Najczęściej użytkownik zobligowany jest do opłaty jedynie za czas, w którym miało miejsce faktyczne wykorzystanie zasobów. Pozwala to na wprowadzenie oszczędności w firmach, które dotychczas używały własnej infrastruktury. Operatorzy chmur publicznych czerpią korzyści z faktu, iż mogą budować ogromne centra danych korzystając z najnowszych technologii z zakresu rozwiązań serwerowych i zarządzania energią. Zarządzanie całą infrastrukturą odbywa się w jednorodny sposób, a kolejne wdrożenia nowego sprzętu odbywają się w sposób wcześniej usystematyzowany i w bardzo dużej skali, co również przynosi duże oszczędności. Użytkownik korzystający z tego typu infrastruktury nie jest obarczony żadnymi dodatkowymi kosztami, a więc koszt uruchomienia i utrzymania własnego systemu jest relatywnie niski. Użytkownicy zyskują również bardzo poważny atut, jakim jest krótki czas wdrożenia nowego systemu. Klienci nie muszą uwzględniać czasochłonnych procesów uruchomienia i konfiguracji nowego sprzętu i oprogramowania – te procesy są wykonywane po stronie dostawcy w sposób zautomatyzowany, co powoduje, że środowisko pracy jest dostępne dosłowne w kilka minut po jego zamówieniu przez klienta. Czynniki te powodują, że rozwój chmur publicznych jest opłacalny dla obu stron – operatorów tych systemów i ich użytkowników.

W niektórych publikacjach wyróżnia się również model chmury hybrydowej, który opiera się na połączeniu obu podstawowych modeli chmury. Najczęściej model hybrydowy sprowadza się do architektury systemu, którego pewna część działa na zewnętrznej platformie sprzętowej, a pozostała część w infrastrukturze prywatnej. Ciężko jest tutaj posłużyć się jakimkolwiek przykładem, ponieważ tego typu systemy są z reguły projektowane i wdrażane indywidualnie.

Modele dostępu do zasobów chmury publicznej

Wiemy już, czym różni się chmura publiczna od prywatnej. Wiemy również, że nowoczesne chmury są oparte na systemach wirtualizowanych, co przekłada się na kolejną wartą rozjaśnienia kwestię – jak udostępniane są zasoby chmury takiej jak Microsoft Azure? Modeli dostępu do zasobów chmury jest kilka, ale trzy podstawowe to:

  • IaaS – Infrastructure as a Service – w tym modelu użytkownik chmury publicznej uzyskuje od dostawcy usługi dostęp do wydzielonego zasobu, którym najczęściej jest maszyna wirtualna (VM). Dostawca odpowiedzialny jest tylko za dostarczenie maszyny w ustalonej wcześniej konfiguracji sprzętowej oraz jej utrzymanie. Proces konfiguracji sieciowej maszyny, instalacji oprogramowania oraz jego konfiguracja jest przeprowadzana przez klienta. Przykładem tego typu zasobu w Azure jest maszyna wirtualna.
  • PaaS - Platform as a Service – model ten przewiduje udostępnienie użytkownikowi zamówionej wcześniej przez niego platformy, a więc gotowego środowiska pracy. Użytkownik nie ma prawa dostępu do maszyny wirtualnej, na której dane środowisko działa, nie może też wykorzystać tego zasobu do instalacji i konfiguracji innego oprogramowania. W tym modelu zasobu obowiązkiem dostawcy jest dostarczenie skonfigurowanej maszyny wirtualnej z zainstalowanym i wstępnie skonfigurowanym oprogramowaniem wraz z przydzielonym dostępem. Przykładem tego typu zasobu w Azure jest SQL Database, w ramach którego użytkownik zyskuje dostęp do instancji serwera SQL za pomocą interfejsu graficznego lub dedykowanego API.
  • SaaS – Software as a Service – zgodnie z tą koncepcją operator chmury publicznej zapewnia użytkownikowi dostęp do aplikacji zainstalowanej i administrowanej przez dostawcę. Można więc powiedzieć, że użytkownikowi zostaje wydzielone konto o odpowiednich prawach dostępu, które pozwala na korzystanie z udostępnionej aplikacji. Dostawca jest odpowiedzialny za proces dostarczenia maszyny wirtualnej, instalacji oprogramowania, jego konfigurację, bieżące utrzymanie, aktualizacje i wszystkie inne zadania administracyjne. Przekładem tego typu zasobu jest Microsoft Intune. Innym popularnym oprogramowaniem Microsoftu, które jest dostępne w modelu SaaS, jest dobrze nam znany Office 365.

Jak właściwie dobrać odpowiedni model zasobu do naszych potrzeb? Przede wszystkim należy zastanowić się, jakie są nasze potrzeby i priorytety. Jeśli kluczowym czynnikiem jest dla nas konfiguracja środowiska krok po kroku, poczynając od instalacji systemu operacyjnego aż do konfiguracji poszczególnych serwisów, to najlepszym wyborem będzie IaaS. Jeśli natomiast zależy nam na błyskawicznym uruchomieniu zasobu i jego szybkim wdrożeniu produkcyjnym z pominięciem czasochłonnych i schematycznych procesów instalacji – wtedy najlepszym wyborem będą zasoby dostępne w modelu PaaS. Oczywiście nic nie stoi na przeszkodzie, aby część naszego środowiska została przeniesiona do chmury jako IaaS, czyli np. w postaci maszyn wirtualnych, a pozostała część jako PaaS. Konfiguracja wszystkich rodzajów zasobów pomiędzy sobą jest możliwa dzięki sieciom prywatnym, które można skonfigurować na platformie Azure. Jeśli zaś zależy nam na dostępie do konkretnej aplikacji, a nie chcemy zajmować się jej administracją i utrzymaniem, to powinniśmy poszukać odpowiadającego nam zasobu typu SaaS.

Podsumowanie

Niniejszy artykuł miał na celu przedstawienie czytelnikom CentrumXP informacji o technologii chmury oraz zaznajomienie z podstawowymi pojęciami z zakresu tej technologii. Kolejne wpisy będą traktować o rozwiązaniu chmury publicznej Microsoft, czyli o platformie Azure. W kolejnym artykule zademonstrujemy, w jaki sposób możecie za darmo przetestować rozwiązanie chmurowe Microsoftu. Zachęcamy do częstego odwiedzania portalu CenrtrumXP i śledzenia działu Azure!

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia