Chmura obliczeniowa: kompletny przewodnik
Co to jest chmura obliczeniowa?
Chmura, chmura obliczeniowa lub z angielskiego cloud computing to terminy oznaczające model licencjonowania i dostarczania zasobów informatycznych – infrastruktury, usług, platform oraz aplikacji za pośrednictwem sieci. Zasoby IT są udostępniane na żądanie, a opłaty naliczane za ich faktyczne zużycie.
Chmura obliczeniowa jest w rzeczywistości zwirtualizowaną pulą zasobów sprzętowych (m.in. procesor, pamięć operacyjna, pamięć masowa), którą zarządza oprogramowanie zwane z ang. hypervisorem. Dzięki niemu możliwe jest dowolne modyfikowanie parametrów zasobów na żądanie, w zależności od wymagań użytkownika. W Oktawave korzystamy z oprogramowania do wirtualizacji rozpoznawanej szeroko marki VMware.
Chmura obliczeniowa pozwala znacząco zoptymalizować koszty IT. Nie trzeba bowiem ponosić wydatków związanych z zakupem i utrzymaniem własnej infrastruktury oraz wielu innych kosztów stałych. W cloud computingu, opłaty naliczane są jedynie za moc obliczeniową wykorzystaną w danym okresie i stanowią one dla użytkownika koszt operacyjny.
Rodzaje chmur obliczeniowych
Chmura to tak naprawdę zbiorcza nazwa. Możemy wymienić jej trzy rodzaje: publiczną, prywatną, hybrydową.
Chmura publiczna (public cloud)
Zbudowana z zasobów nie należących do użytkownika końcowego. Z chmur publicznych korzystamy wszyscy, chociaż niekoniecznie zdajemy sobie z tego sprawę. Takim rodzajem chmury obliczeniowej jest m.in. poczta Gmail w Google, zestaw narzędzi w pakiecie Office 365 Microsoft Azure czy usługi platformy oraz infrastruktury w Amazon Web Services. Aplikacje natywne osadzone i serwowane z chmury charakteryzują się otwartym dostępem dla wszystkich użytkowników z dowolnego miejsca na świecie, które ma dostęp do internetu.
Chmura prywatna (private cloud)
Zbudowana z zasobów należących fizycznie lub dzierżawionych przez użytkownika. Jej podstawowy wyróżnik to ograniczony dostęp z zewnątrz. Z jej usług obliczeniowych mogą korzystać tylko użytkownicy z danej organizacji. Dlatego chmura prywatna nazywana jest również chmurą wewnętrzną lub korporacyjną. Za utrzymanie takiej chmury odpowiada dział IT firmy, a pozostałe jednostki biznesowe są jej wewnętrznymi użytkownikami. Rozwiązanie typu private cloud jest z reguły bardziej kosztowne od chmury publicznej szczególnie w wariancie, gdy decydujemy się zbudować własną infrastrukturę.
Chmura hybrydowa (hybrid cloud)
Składa się z połączonych zasobów chmury prywatnej i publicznej. W obrębie jednej architektury można np. do zadania A wykorzystać moc obliczeniową jednej chmury, a do zadania B storage obiektowy chmury drugiej. Zasoby dwóch typów chmur w takim układzie uzupełniają się i wspierają. Nasi eksperci od migracji pomagają firmom tak zaprojektować architekturę hybrid cloud, aby utrzymać koszty na optymalnym poziomie.
A co z multicloud?
Jeszcze do niedawna pełne wykorzystanie usług chmur obliczeniowych było bardzo trudne. Z tego powodu inwestowano zazwyczaj w usługi kilku dostawców (najczęściej konkurencyjnych). Dziś rozwiązaniem tego problemu jest multicloud.
Multicloud bazuje na połączeniu usług więcej niż jednej chmury obliczeniowej. W pewnym sensie jest to rodzaj strategii, która umożliwia korzystanie z kilku usług jednocześnie. W praktyce wygląda to tak, że jedną chmurę wykorzystujemy np. do analizy danych, a drugą do tworzenia kopii zapasowych. Należy jednak rozdzielić pojęcie multicloud od chmury hybrydowej. Hybryda łączy prywatne serwery z publicznymi chmurami, integrując także sprzęt. Multicloud obejmuje tylko usługi chmurowe.
Modele dostarczania usług w chmurze
Aby optymalnie spełnić wymagania klienta, usługi chmurowe zostały podzielone na trzy modele: IaaS, PaaS, SaaS.
IAAS (Infrastructure As A Service)
Infrastruktura jako usługa jest podstawą każdego wdrożenia w chmurze. Oferuje dostęp zarówno do wybranych wirtualnych zasobów sprzętowych (sieci, pamięci masowej, serwerów i wirtualizacji), jak i możliwość instalacji dodatkowych usług rozszerzających jej funkcjonalność. Pozostałe części stosu technologicznego – od systemu operacyjnego do aplikacji są w IaaS zarządzane samodzielnie przez użytkownika. W Oktawave można tworzyć instancje serwera z już zainstalowanym systemem operacyjnym.
PAAS (Platform As A Service)
Platforma jako usługa, to warstwa dodatkowa oprogramowania zbudowana na fundamencie IaaS. W praktyce oznacza to udostępnienie zasobów sprzętowych wraz z gotowym stosem różnych technologii, które uławiają programistom szybszy rozwoj i wdrażanie aplikacji użytkownika. Dostawcy PaaS oferują zatem w pakiecie infrastrukturę, serwery, sieci, pamięć masową, bazę danych, oprogramowanie pośrednie, system operacyjny (OS), bezpieczeństwo, środowisko wykonawcze, monitorowanie infrastruktury, analizy i możliwość integracji z usługami innych firm. Przykładem usługi PaaS może być AWS Elastic Beanstalk, Google App Engine czy Red Hat OpenShift.
SAAS (Software As A Service)
Oprogramowanie jako usługa, to warstwa usług chmurowych, w której w pełni funkcjonalne i kompletne oprogramowanie – zbudowane na IaaS i PaaS – jest dostarczane do użytkowników przez Internet na zasadzie subskrypcji. SaaS jest najbardziej powszechnym rodzajem usług chmurowych ze wszystkich powyższych. W rzeczywistości wielu użytkowników korzysta z SaaS nawet nie zdając sobie z tego sprawy. Przykładem może być tu choćby pakiet MS Office 365, usługa Dropbox, czy Netflix.
Serverless
Serverless computing, czyli przetwarzanie bezserwerowe, to popularna usługa typu FaaS (Function as a Service) oferowana przez największych dostawców chmury: Lambda AWS, Azure Functions i Cloud Functions w Google Cloud.
To model tworzenia oprogramowania, w którym korzystasz z dynamicznie przyznanych zasobów i pamięci obliczeniowej przed dostawcę chmury. W przeciwieństwie do tradycyjnego modelu, w którym wykupujesz określone zasoby i płacisz za nie, nawet jeśli nie są w pełni wykorzystane. W przypadku serverless procedury i funkcje składające się na aplikację, uruchamiane są tylko w momencie potrzeby przetwarzania danych, a gdy są bezczynne, zasoby nie są zużywane. Użytkownik płaci jedynie za wykonanie funkcji. Zarządzanie infrastrukturą, w tym jej przydzielanie i optymalizowanie, jest całkowicie po stronie dostawcy chmury.
Termin „bezserwerowy” jest nieco mylący, ponieważ sugeruje brak serwerów. Serwery w rzeczywistości istnieją, ale programiści nie muszą zajmować się ich obsługą. Dzięki temu mogą w pełni skupić się na tworzeniu aplikacji, zamiast dbać o konfigurację, skalowanie i bezpieczeństwo maszyn wirtualnych, serwerów czy kontenerów.
Technologie chmury
Disaster recovery
Disaster Recovery (DR), czyli odtwarzanie awaryjne, to zbiór procedur i polityk pozwalający na wznowienie lub utrzymanie infrastruktury IT po poważnej awarii. Awaria może być skutkiem szkodliwej działalności człowieka (nieumyślnej lub umyślnej, jak np. cyberatak) czy klęski żywiołowej (pożar, powódź, trzęsienie ziemi, tsunami itp.). Katastrofa może spowodować uszkodzenie infrastruktury i uniemożliwić działalność biznesową.
Wysoka dostępność
Wysoka dostępność (ang. High Availability, w skrócie HA) to odporność poszczególnych komponentów infrastruktury informatycznej na awarię, która umożliwia funkcjonowanie uruchomionych aplikacji bez zakłóceń. HA jest szczególnie ważne w przypadku krytycznych systemów, dla których przestój w działaniu oznacza poważne szkody, również finansowe. Jednym z głównych celów przejścia do chmury jest właśnie osiągnięcie niezawodności. Systemy o wysokiej dostępność eliminują pojedyncze punkty awarii (SPOF), aby zapewnić ciągłość działania i uchronić firmę przed utratą danych.
Konteneryzacja
Powstanie technologii konteneryzacji to konsekwencja dążenia twórców aplikacji do architektury mikroserwisów. Zarządzanie złożonymi, rozproszonymi systemami mikroaplikacji stało się sporym wyzwaniem logistycznym, stąd odniesienie do idei kontenerów w branży logistycznej. Podzielone na mniejsze elementy aplikacje umieszcza się w kontenerach czyli wydzielonych obszarach maszyny wirtualnej. Kontener zawiera wszystko (kod źródłowy, biblioteki systemowe, pliki konfiguracyjne itp.), co niezbędne do uruchomienia aplikacji. Dzięki temu aplikację można szybko przenieść i uruchomić w innym środowisku, bez konieczności jego ponownego, ręcznego konfigurowania.
Mikroserwisy
Mikroserwisy to termin określający architekturę aplikacji i sposób ich pisania. W odróżnieniu od monolitycznych rozwiązań, których zasada działania opiera się na rozmieszczeniu poszczególnych części aplikacji w jej wnętrzu (z wykorzystaniem relacyjnego modelu danych), mikroserwisy dzielą je na mniejsze, niezależne od siebie komponenty. Mikroserwisy są zatem oddzielnymi częściami tej samej aplikacji – komponentami lub procesami.
Cloud-native
Termin cloud-native można przetłumaczyć jako natywny dla chmury. Określenie to odnosi się do podejścia do tworzenia oprogramowania, które wykorzystuje technologię przetwarzania w chmurze. Aplikacje budowane są od początku z myślą o chmurze i z wykorzystaniem jej architektury oraz technologii (np.: mikroserwisy, kontenery, serverless). Systemy cloud-native korzystają z dostępnych w chmurze usług zarządzanych i narzędzi do automatyzacji. Rozwiązania natywne dla chmury złożone są z luźno powiązanych systemów (mikroserwisów) które w przeciwieństwie do aplikacji monolitycznych, można szybko budować, wdrażać, skalować, a także wygodnie nimi zarządzać.
Wirtualizacja
Wirtualizacja to proces logicznego podzielenia fizycznego urządzenia (np. serwera) na mniejsze wirtualne jednostki. Oprogramowanie zwane hiperwizorem pozwala podzielić zasoby fizyczne na jednej maszynie na wiele maszyn wirtualnych (VM). Każda maszyna wirtualna staje się osobnym obszarem, na którym można uruchomić osobne środowisko ze swoim systemem operacyjnym. Wirtualizacja jest podstawową technologią wykorzystywaną w cloud computingu. Pozwala dzielić i błyskawicznie przydzielać zasoby pomiędzy wieloma systemami w zależności od potrzeb. Dzięki skalowalności chmury możemy wygodnie zarządzać pamięcią i optymalnie wykorzystać serwery. Jakie korzyści stwarza wirtualizacja?
Zastosowania chmury obliczeniowej
Potencjał chmury obliczeniowej można w pełni wykorzystać, poznając jej zastosowania.
Jakie korzyści biznesowe daje chmura obliczeniowa?
Chmura obliczeniowa to innowacyjne rozwiązanie, które niesie ze sobą szereg korzyści biznesowych i technologicznych. Umiejętne wykorzystanie ich zwiększa wydajność nie tylko zasobów IT, ale również całego przedsiębiorstwa. Jakie to korzyści?
Ile kosztuje chmura?
Jednym z powodów, dla których firmy decydują się na migrację do chmury, obok skalowalności i bezpieczeństwa, jest jej opłacalność. Tradycyjna serwerownia oznacza nie tylko koszty sprzętu i powierzchni, ale również utrzymanie zespołu odpowiedzialnego za obsługę, koszty konserwacji, napraw, zabezpieczeń i wreszcie energii elektrycznej.
Migracja do chmury – jak nią zarządzić?
Pierwszym krokiem, który należy wykonać jest tzw. „spis z natury”, czyli lokalny audyt. W ramach takiego audytu powinna powstać pełna lista systemów informatycznych działających w firmie, które potencjalnie mogą zostać przeniesione do chmury.
Jak wybrać dostawcę usług chmurowych?
Wybór zarówno technologii, jak i jej dostawcy jest niezwykle ważny, ponieważ przesądza o sukcesie firmy w długoterminowym ujęciu. Technologia determinuje tempo i zakres rozwoju organizacji, a odpowiednie wsparcie ze strony dostawcy ma duże znaczenie dla skuteczności, sprawności, a także opłacalności wdrażanych rozwiązań. Decydując się na przejście do chmury, firma musi zdecydować nie tylko o rodzaju chmury (prywatna, publiczna czy hybrydowa), ale też o zakresie usług dodatkowych.