Burze w chmurze, czyli co się kryje pod tą mgłą

Często słyszane stwierdzenie: „mam dane w chmurze” w naszym odczuciu ma nam dawać poczucie pewności i bezpieczeństwa. Jednak jeśli mam coś w „chmurze”, to znaczy, gdzie to mam? Co się kryje za efemerycznym określeniem „chmury”?

Pomijając meteorologiczne czy oficjalne informatyczne definicje tego, co nazywamy „chmurą”, chcielibyśmy wiedzieć, gdzie tak naprawdę trzymane są nasze dane.

Nie możemy jednak myśleć, że te wszystkie pliki, aplikacje czy bazy danych w niewyjaśniony sposób są utrzymywane w jakimś wirtualnym świecie. Niezależnie od faktu, czy mamy je na biurowym serwerze, czy też w chmurze, fizycznie w końcu są one zapisywane na realnych dyskach. Co więc różni utrzymywanie danych w strukturze chmury od plików na zwykłym komputerze?

Podstawową różnicę stanowi rozproszenie danych pomiędzy różne zasoby fizyczne (np. pomiędzy różne serwery), ale w taki sposób,by w przypadku awarii któregoś z tych zasobów nasze dane dalej były dostępne.

W przypadku serwerów aplikacji (np. takich, które obsługują nasze strony WWW) takie powielenie danych sprawia, że gdy z jakiegoś powodu jedna z maszyn w chmurze nie będzie dostępna, to nasza wirtualna maszyna wraz z przypisanym do niej adresem IP po prostu będzie działać na innym, sprawnym serwerze w obrębie chmury (tzw. „nodzie”).

Chmura chmurze nierówna, czyli co jest czym

Chmura prywatna oznacza wydedykowane dla nas zasoby sprzętowe w strukturze „cloud”. Wielkość takiej chmury zależy od naszych potrzeb. Doskonałym przykładem (aplikacyjno-dyskowym) jest w tym przypadku MiniPrivateCloud z oferty Datahouse.pl.

Chmura publiczna jest oparta na współdzielonych pomiędzy wszystkich klientów zasobach fizycznych, w której dane każdego użytkownika utrzymywane są na wielu serwerach wraz z danymi innych osób. Tego typu rozwiązania oferują głównie przestrzenie danych na nasze pliki oraz maszyny VPS. W takim przypadku kluczowe jest to, co nam gwarantuje dostawca. W końcu sprzęt nie jest z gumy, a wielu klientów pracujących na tych samych zasobach oznacza, że w istocie mogą „podbierać” sobie zasoby, a więc jest to ze stratą wydajności. Bardzo niewielu operatorów oferuje tutaj gwarancję zasobów równą maksymalnym. Jednym z niewielu jest tu oferta Cloud/VPS dostępna na Datahouse.pl

W końcu jednym z najciekawszych rozwiązań pośrednich jest „Chmura w chmurze” (ang. Cloud-in-Cloud). To nietypowe rozwiązanie pozwala na posiadanie wirtualnej chmury prywatnej opartej na wydzielonych zasobach chmury publicznej. Rozwiązanie jest bardzo korzystne dla integratorów czy deweloperów aplikacji. W tego typu systemie użytkownik otrzymuje zasoby (pojemność, pamięć i zasoby dyskowe) do wykorzystania dla własnej, „wewnętrznej” chmury wedle własnego uznania, tworząc w niej samodzielnie maszyny wirtualne pod odrębne zastosowania. Takie hurtowe rozwiązanie znajdziemy także na Datahouse.pl

Co jest lepsze: chmura/VPS, maszyna dedykowana czy może klaster?

Nie ma jednoznacznej odpowiedzi, a dobranie właściwego zastosowania zależy od funkcjonalności, którą chcemy uzyskać. Każde jednak z tych rozwiązań ma swoje ogólne słabości i zalety, o których trzeba pamiętać.

Do zalet chmury należy zaliczyć łatwą skalowalność przestrzeni, tak potrzebną do serwowania dużej ilości łatwo dostępnych plików. Automatyczna redundancja zasobów wynikająca z samej struktury rozwiązania jest w tym przypadku naturalna. Z drugiej strony należy pamiętać o ogólnych ograniczeniach wynikających z wirtualizacji zasobów, do których trzeba zaliczyć fakt, że niektóre aplikacje (np. bazodanowe) nie mogą wykorzystać mechanizmów akceleracji sprzętowej, a wersje ich kompilacji nie dają się zbytnio optymalizować do pełnego wykorzystania zasobów sprzętowych. Ma to swoje wymierne efekty w niższej wydajności serwerów baz danych oraz niższej wydajności połączeń sieciowych (dlatego że karty sieciowe w istocie są emulowane).

Słabości rozwiązań chmurowych nie występują w rozwiązaniach dedykowanych, w których aplikacje mogą być kompilowane do konkretnego sprzętu, wykorzystując jego maksymalne zdolności. Możliwość akceleracji obsługi pamięci oraz offlodu za pomocą zaawansowanych procedur procesora daje znaczną przewagę wydajnościową nad rozwiązaniami chmurowymi, co jest istotne zwłaszcza dla aplikacji bazodanowych. W ostatnim czasie wykorzystanie realnych zasobów procesorów graficznych dla obróbki filmów i obrazów także wymaga rozwiązań opartych na realnym zasobie dedykowanym. Słabością rozwiązana jest niska redundancja. Jakkolwiek każdy porządny serwer dedykowany zawiera podwojone zasilanie, zwielokrotnione dyski i inne zasoby, to szansa niedostępności jest nieco większa. Dlatego tak istotne w tym przypadku jest stosowanie właściwych mechanizmów backupu.

Klaster, starszy brat chmury, w istocie jest zestawem serwerów dedykowanych pełniących równolegle tę samą funkcję, zwiększającwydajność i zapewniając redundancje. W istocie jest dużo wydajniejszy, dużo bardziej bezpieczny niż oba pozostałe rozwiązania, jednak jego główne słabości to koszt i właściwy projekt. Każdy klaster musi być zaprojektowany w taki sposób, by odpowiadał na konkretne potrzeby użytkowników. Niewątpliwą słabością rozwiązań klastrowych jest system uwspólniania danych, przeważnie oparty na zaawansowanych i dość drogich macierzach dyskowych. W ostatnim czasie jednak często dla ograniczenia kosztów i zapewnienia pełnej redundacji stosuje się rozwiązania hybrydowe, w których uwspólniony zasób chmurowy jest zastosowany dla podawania danych dla klastra aplikacyjnego.