Maciej Kuźniar: O chmurach i niechmurach. Czyli czym się różni cloud computing od zwykłego hostingu
Dużo w ostatnim czasie mówimy o chmurach obliczeniowych. Ale kiedy spoglądam na różne opinie i komentarze, dochodzę do wniosku, że nie wszyscy jeszcze wiedzą, z czym to się je. Bo czym to się różni od zwykłego hostingu? Dlaczego niektórzy naciągają to pojęcie? Na czym dokładnie polega rewolucja cloud computingu? Postaram się Wam dziś odpowiedzieć na te pytania.
O chmurach obliczeniowych w branży hostingowej zaczęło tak naprawdę być głośno około pięciu lat temu, mimo że techniczne fundamenty pod ich konstrukcję pojawiły się znacznie wcześniej. Już w 2002 roku Amazon oferował pierwsze usługi typu remote computing, w tym okresie też zadebiutowały pierwsze serwerowe hiperwizory VMware GSX/ESX oraz Xen, przynosząc pełną wirtualizację uruchomionych pod ich kontrolą systemów operacyjnych.
Sama zaś koncepcja zdalnego dostępu do dzierżawionych użytkownikowi zasobów komputera, za który jest on rozliczany w modelu pay-per-use, też nie była nowym pomysłem – wyobraźcie sobie, że już w latach 70 firmy korzystały w ten sposób z mocy obliczeniowej popularnych wtedy maszyn typu mainframe.
Takie jest jednak prawo popularności, że im bardziej jest o czymś głośno, tym więcej jest wokół tego nieporozumień i przekłamań. Nic więc dziwnego, że gdy chmury obliczeniowe stały się realnym biznesem, a firmy hostingowe zaczęły się ścigać w doklejaniu do nazw swoich usług słowa „cloud”, to bardziej kompetentni technicznie użytkownicy nabrali do cloud computingu sporego dystansu – stał się on dla nich zwykłym marketingowym sloganem.
Trudno się im dziwić: skoro każdy dostawca VPS-ów (wirtualnych serwerów prywatnych) czy jakiejś hostowanej aplikacji typu CRM nagle ogłaszał, że teraz i on działa prężnie w branży cloud computing, a dowodem „uchmurowienia” jego usług stawały się umieszczone w panelu klienta suwaki do konfigurowania rozmiarów takiego VPS-a, to faktycznie trudno było wierzyć w jakieś innowacje. Wychodziłoby bowiem na to, że w zasadzie chmury to mieliśmy od lat 90. Już wtedy bowiem klient mógł sobie wybrać rozmiar swojego konta hostingowego, a to, że nie było fikuśnych paneli konfiguracyjnych, jest sprawą drugorzędną.
Przywróćmy więc chmurom obliczeniowym dobre imię, pokazując, że są obecnie najnowocześniejszą technologią, jaką dysponuje branża hostingowa – i że nie wystarczy umieścić na stronie kilka suwaków w konfiguratorze VPS-a, by móc twierdzić, że dostarcza się rozwiązań cloud computing. W rzeczywistości takie „chmury” to bowiem prosta wirtualizacja (na bazie hiperwizora Xen) czy wręcz „konteneryzacja” (podział linuksowego serwera na niezależne kontenery za pomocą oprogramowania OpenVZ). Takie usługi po prostu nie są chmurą! Niosą wszystkie ograniczenia zwykłego hostingu, który można scharakteryzować jako usługę mocno ograniczoną (ciągłe 503, znacie to dobrze) i niespotykanie drogą (w stosunku do tego, co rzeczywiście dostajecie od dostawcy).
My w Oktawave rozumiemy chmurę tak, jak rozumieją ją najwięksi w tej branży – Amazon, Google czy Microsoft – jako system zapewniający dostęp do zwirtualizowanej puli zasobów serwerowych (mocy obliczeniowej, pamięci masowej, interfejsów sieciowych) poprzez interfejs programowania, pozwalający na płynne jej skalowanie w zależności od aktualnego obciążenia. Różnice pomiędzy taką inteligentną architekturą, a zwykłymi wirtualnymi serwerami (nawet jeśli doklei się do nich etykietkę „cloud”) są znaczące i mogą bezpośrednio wpłynąć na losy Twojego internetowego biznesu. Przeanalizujmy najważniejsze z nich.
Wydajność, czyli koniec z przestojami
Zwykłe wirtualne serwery, pozbawione scentralizowanej pamięci masowej na szybkich macierzach NAS, są dość nieprzewidywalne. Nie wiemy, z kim współdzielimy dany fizyczny serwer, ile w danym momencie jest na nim uruchomionych takich wirtualnych serwerów, ani co one robią. Nawet jeśli testy obciążeniowe pokazują, że taki wirtualny serwer działa wystarczająco wydajnie, to wcale nie oznacza to, że będzie tak zawsze: gwarantowana jest tylko pojemność pamięci masowej, nie czas dostępu do niej.
Tak samo, jeśli brakuje nam zasobów fizycznego serwera, ponieważ ktoś inny już niemal wszystko zajął, nie mamy możliwości szybkiego przeniesienia danych i oprogramowania na inną fizyczną maszynę – czasem proces taki może zająć wiele godzin, jeśli nie dni. Na pewno wielu z Was przydarzyła się sytuacja, w której usługodawca hostingowy mówi: "przekroczył Pan/Pani jakiś parametr, wyłączamy skrypt". Nieprzyjemne, prawda?
Tymczasem serwery działające w realnej chmurze nie są ograniczane w żaden sposób przez aktualną dostępność zasobów: gdy dochodzi do sytuacji, w której zaczyna brakować pamięci, mocy procesora, serwer w chmurze zostaje przesunięty na inną fizyczną maszynę z wolnymi zasobami w sposób niezauważalny dla użytkowników. Scentralizowana pamięć masowa oznacza zaś, że aktywność innych maszyn wirtualnych w żaden sposób nie wpłynie na szybkość dostępu do danych.
Skalowalność, czyli moc od ręki
Zwykłe wirtualne serwery, z przypisanymi im pulami zasobów, muszą sobie radzić z tym, co dla nich zagwarantowano, bez względu na poziom aktualnego obciążenia uruchomionej na nich aplikacji. Niektórzy dostawcy VPS-ów pozwalają co prawda na tymczasowe dodanie zasobów (np. pamięci czy gwarantowanej mocy procesora), ale wymaga to ręcznej interwencji administratora i może zająć sporo czasu, podczas którego serwis internetowy czy aplikacja mogą nagle stać się niedostępne.
Co więcej, skalowalność jest ograniczona przez zasoby fizycznej maszyny: jeśli Twoja maszyna wirtualna ma 1 GB RAM, a potrzebujesz nagle powiększyć pamięć do 16 GB, może się okazać, że tyle pamięci nie będzie dostępnej na serwerze. Ostatecznie dla dostawcy hostingu nie ma sensu trzymać niewykorzystanego RAM-u w rezerwie, chce on upakować tak wiele wirtualnych maszyn na jednym fizycznym serwerze, jak to jest tylko możliwe, nie zastanawia się, jakie mogą być potrzeby jego klientów za rok.
Skalowalność w prawdziwej chmurze obliczeniowej to zupełnie inna sprawa. Nie dość że technologie autoskalowania pozwalają zapewnić Twojemu serwerowi taką ilość zasobów, jaka jest aktualnie potrzebna, to w razie potrzeby mogą zostać wykorzystane nawet całe zasoby fizycznego węzła chmury. W chmurze moc dostajesz od ręki i automatycznie.
Wielu z Was na pewno się teraz zastanawia - ale będę musiał za to zapłacić? Tak, ale tylko za to, co wykorzystałeś i tylko za czas, kiedy te dodatkowe zasoby były Ci potrzebne.
Wysoka dostępność, czyli święty spokój
Rzadko kiedy dostawcy VPS-ów są w stanie zagwarantować umowy SLA z naprawdę wysokim poziomem dostępności. Ogranicza ich technika, niemożliwość utrzymania pełnej synchronizacji serwerów przez cały czas oraz powiązanie pamięci masowej z fizycznym serwerem. Każda awaria fizycznego serwera to koniec Twojej wirtualnej maszyny, przynajmniej do czasu usunięcia usterek. W najgorszym razie, gdyby doszło do awarii kontrolera RAID, może się okazać, że straciłeś wszystkie dane, i trzeba przywracać serwer z kopii zapasowej.
Prawdziwe chmury obliczeniowe zapewniają tymczasem redundantną pamięć masową i automatyczne przenoszenie wirtualnych serwerów pomiędzy fizycznymi węzłami w razie awarii któregoś z nich – serwer taki może zostać uruchomiony natychmiast na dowolnym innym węźle dysponującym wymaganą ilością zasobów. Dlatego też najlepsze platformy cloud computing mogą zagwarantować klientom umowy SLA na poziomie 100% – i nie będzie to tylko chwyt marketingowy. Dla maszyn wirtualnych w chmurze, okres przestoju (downtime) po prostu nie występuje.
Cennik, czyli kasa w kieszeni
Wirtualne serwery prywatne, są jednymi z najbardziej opłacalnych dla klienta rozwiązań hostingowych na rynku. Już za kilkadziesiąt złotych miesięcznie można dostać swój serwer w Sieci, z własnym IP i pełną kontrolą nad zainstalowanym na nim systemem operacyjnym, podczas gdy ceny najtańszych serwerów dedykowanych zaczynają się od kilkuset złotych miesięcznie. Tak to przynajmniej wygląda na pierwszy rzut oka – w praktyce sytuacja wygląda trochę inaczej.
Bardzo często do kosztów utrzymania VPS-a trzeba doliczyć opłatę instalacyjną, bardzo często też te atrakcyjne miesięczne ceny obowiązują tylko wtedy, gdy podpiszemy umowę na czas określony. Trzeba też pamiętać, że za taki serwer płaci się zawsze tyle samo, bez względu na to, czy był on faktycznie wykorzystywany.
Prawdziwą chmurę obliczeniową poznasz po tym, że korzystając z niej zapłacisz tylko za to, co faktycznie wykorzystałeś: koszt obliczany jest na podstawie zarezerwowanej mocy i zasobów, przemnożonych przez liczbę godzin działania serwera w chmurze. Co więcej, gdy dokładnie policzysz miesięczne koszty chmury obliczeniowej i porównywalnego (na papierze) VPS-a, odkryjesz, że w wielu wypadkach chmura będzie tańsza – a już na pewno nie będziesz musiał wnosić „opłat aktywacyjnych”, czy podpisywać długoterminowych umów.
Nie ma uzasadnienia, dla korzystania z gorszych rozwiązań
O ile hosting współdzielony, ze względu na jego niezwykle niską cenę, długo jeszcze będzie wykorzystywany do prostych zastosowań, takich jak strony-wizytówki czy niewielkie fora dyskusyjne, to trudno powiedzieć, jaką jeszcze rolę miałyby w gamie hostingowych rozwiązań odegrać wirtualne serwery prywatne (nawet jeśli ich konfigurator będzie zawierał „gwarantujące elastyczność” suwaki). Działające w prawdziwych chmurach serwerowe instancje cenowo zrównały się z VPS-ami (często są od nich tańsze), a przynoszą przy tym nieosiągalną dla nich niezawodność, wydajność i elastyczność. Czemu więc miałbyś ryzykować uruchamianie swojego internetowego biznesu na czymkolwiek gorszym od realnej chmury obliczeniowej?
P.S. Zachęcamy Czytelników Spider's Web do zadawania pytań i pogłębiania wiedzy. Jesteśmy tutaj, by pomóc Wam w adopcji optymalnych i oszczędnych rozwiązań dla Waszych projektów.
Maciej Kuźniar - dyrektor projektu Oktawave. Pasjonat technologii związanych z przetwarzaniem i przechowywaniem danych, posiadający 10 lat doświadczenia w pracy dla klientów klasy enterprise (banki, telekomy, fmcg). Autor koncepcji technologicznie wspierających rozwój startupów oraz rozwiązań architektonicznych gwarantujących wysokie HA i SLA dla systemów IT.