Dysk w chmurze. Jakie naprawdę daje możliwości i komu?
Dysk w chmurze to nie tylko miejsce do składowania plików na jakimś bliżej nieokreślonym serwerze i ich późniejszej synchronizacji z dyskiem twardym komputera. Dziś chcielibyśmy Wam pokazać, jakie rozbudowane zastosowania ma storage w cloud computingu i dlaczego Dropbox to dopiero wierzchołek góry lodowej.
Dostawcy popularnych usług internetowych muszą liczyć się z tym, że przygotowując swoje rozwiązania dla masowego odbiorcy, powinni maksymalnie uprościć cały front-end. Dla użytkownika końcowego (często nazywamy go Kowalskim) liczy się przejrzysty interfejs i nie interesuje go działanie usługi „pod maską”. Usługodawca jest w stanie sprawdzić, jakie nawyki i związane z nimi potrzeby ma statystyczny konsument z jego grupy docelowej, i upraszcza sposób korzystania z produktu do tych codziennych, najczęstszych scenariuszy.
Przed dalszą lekturą dobrze jest zapoznać się z naszym słowniczkiem pojęć związanych z chmurą.
Prostota drogą do sukcesu
Najczęściej taki statystyczny Kowalski potrzebuje usługi, która jest wygodna w użyciu i nie odstrasza skomplikowanymi (czyli wymagającymi wiedzy) procedurami obsługi. Lepiej nawet, jeśli rzeczywisty poziom technologiczny jest ukryty i nie przeszkadza on użytkownikowi w realizacji celu funkcjonalnego.
W przypadku przestrzeni dyskowej w cloud computingu obowiązuje taka sama zasada. Dla zwykłego użytkownika dysku w chmurze nie jest istotne to, jak usługa działa. Interesuje go tylko to, gdzie musi kliknąć na stronie lub w aplikacji, aby wybrany przez niego plik powędrował do chmury.
Zwykły user kontra poweruser
Taki użytkownik nie chce, a być może też nie musi wiedzieć, co się tak naprawdę wydarzyło po przeciągnięciu ikony z dokumentem lub zdjęciem w odpowiednie miejsce. Są jednak osoby, które interesuje dokładny mechanizm działania chmury w zakresie storage'u i byliby oni zainteresowani dodatkowymi możliwościami, jakie daje nowoczesny dysk w chmurze.
Do tej grupy można zaliczyć najróżniejsze grupy internautów, zwykle powiązane z siecią zawodowo: programistów, administratorów systemowych i projektantów architektury IT. Do takich osób, oraz wszystkich innych czytelników Spider’s Web zainteresowanych możliwościami dysków uruchamianych w chmurze, kieruję dzisiejszy tekst.
Dysk w chmurze. O co chodzi?
Idea dysku w chmurze nie jest nowa. Rozwiązanie to polega na udostępnianiu przez dostawców infrastruktury swoich zasobów storage’owych w centrach danych, które później można wykorzystać w sposób zdalny. Dzięki temu dane trzymane są w modelu rozproszonym, a takie podejście ma bardzo dużo istotnych plusów:
- użytkownik nie martwi się o kondycję i utrzymanie jakiegokolwiek sprzętu przechowującego dane (zaliczają się do tego dyski magnetyczne, dyski twarde typu SSD, macierze, NAS-y, dyski zewnętrzne czy pamięci typu Flash);
- odchodzi zmartwienie związane z redundancją danych;
- nie trzeba pamiętać o robieniu samodzielnych kopii zapasowych, bo tym zajmuje się dostawca usługi;
- otrzymujemy dostęp do danych z poziomu dowolnego urządzenia, w tym popularnych sprzętów mobilnych, takich jak smartfony i tablety;
- mamy możliwość składowania danych w sposób obiektowy i w miejscu niezależnym od logiki aplikacji (w przypadku tworzenia architektury IT czy aplikacji).
Dla kogo jest dysk w chmurze?
Klasyczny dysk w chmurze może być więc przydatny dla każdego użytkownika globalnej sieci. Skorzysta z niego zarówno wspomniany we wstępie statystyczny Kowalski do przechowywania zbiorów domowych multimediów, ale można wykorzystać to rozwiązanie jako profesjonalne narzędzie biznesowe (obieg dokumentów) czy wreszcie jako element większej układanki w enterprise'owej architekturze IT.
Przykładem zastosowanie dysku w chmurze w Oktawave może być rodzimy portal Fotosik.pl, gdzie rozwiązanie oparte o cloud computing wykorzystywane jest do zapewnienia bezpiecznej metody wymiany plików pomiędzy różnymi systemami i aplikacjami. To podejście zapewnia nie tylko bezpieczeństwo, ale też niezawodność i wydajność.
Dyski, które wszyscy znamy
Użytkownicy mogą korzystać z dysku w chmurze na najróżniejsze sposoby - najczęściej jednak podstawowym sposobem interakcji jest interfejs WWW w przeglądarce internetowej. Coraz popularniejsze są też dedykowane aplikacje dla systemów stacjonarnych i mobilnych, a niektóre konsumenckie chmury na pliki (Google Drive, OneDrive i iCloud) są zaszyte bezpośrednio w systemach operacyjnych.
Aplikacje służące do synchronizacji danych lokalnych ze zgromadzonymi na dysku w chmurze pozwalają na zautomatyzowanie procesu tworzenia kopii zapasowych, ułatwiają porządkowanie plików oraz ułatwiają współdzielenie z innymi użytkownikami. To oferuje praktycznie każdy dostawca usługi tego typu, ale wymagający użytkownik znający swoje potrzeby na tym nie poprzestanie.
Dodatkowe funkcje chmury
Oprócz funkcji zarządzania i synchronizacji plików chmury mogą być wyposażone w dodatkowe moduły. Często deweloperzy i architekci IT są zainteresowani obsługą szyfrowanej transmisji danych, możliwością tworzenia ustrukturalizowanego obiektowego drzewa, funkcją kontenerów i grup oraz na koniec – a może przede wszystkim – dostępem do API.
Dzięki zaawansowanym możliwościom użytkownicy takich dysków w chmurze mogą nie tylko składować tam swoje dane, ale też budować w oparciu o nie swoje własne usługi i aplikacje. To zresztą jest bardzo popularna praktyka, a przykładów tego nie trzeba daleko szukać.
Chmura na pliki, a storage obiektowy
Jedną z najpopularniejszych konsumenckich i biznesowych dysków w chmurze do składowania plików jest Dropbox. Twórcy tego dysku nie stworzyli go jednak całkowicie od zera, bo tak naprawdę jest on nakładką na usługę Amazon S3. Na naszym rodzimym rynku mamy do czynienia z podobną sytuacją, jak w przypadku Dropboksa i Amazonu. Skala jest inna, ale sposób rozwiązania backendu usługi jest podobny. Usługa o nazwie MantaBOX, czyli przestrzeń na dane użytkowników urządzeń firmy Manta, jest de facto interfejsem WWW dla dysku Oktawave Cloud Storage.
W tym miejscu ujawnia się kluczowe rozróżnienie w sposobie korzystania z dysku w chmurze. Wszystko rozbija się o potrzeby – trudno będzie przekonać użytkownika do bezpośredniej pracy z dyskiem Amazon S3, jeśli chce on wyłącznie podzielić się z przyjaciółmi paczką zdjęć z wakacji. Z drugiej strony, profesjonaliści opierający swoje życie zawodowe na pracy z danymi w chmurze z pewnością zainteresują się możliwością pełnej kontroli nad storage’em, gdzie nie ma klasycznego podziału na hierarchię plików. Dane w ramach tej architektury przechowywane są jako obiekty, stąd stosuje się nazwę storage obiektowy.
Storage obiektowy vs. storage blokowy
Storage blokowy należy rozumieć jako wydzielony obszar na fizycznym dysku twardym, który umożliwia zapisywanie i odczytywanie danych w postaci bloków. Jest on szczególnie ważny dla sytuacji, w których musimy często odwoływać się do zasobów danych przechowywanych w postaci plików (np. otwierać je, pobierać z nich dane, zmieniać w nich fragmenty danych), np. systemów operacyjnych czy baz danych. Innymi słowy storage blokowy to odpowiednik dysku twardego komputera. Oczywiście chmury takie dyski podłączają do serwerów, tak by móc na nich instalować systemy operacyjne czy bazy danych.
To, o czym mówimy dziś, to storage obiektowy, gdzie dane przechowywane są w postaci dowolnych obiektów hierarchizowanych do struktur np. drzew lub list. Storage obiektowy różni się od blokowego przede wszystkim tym, że pozwala na zapisywanie i odczytywanie do niego całych obiektów, bez względu na ich rozmiar – dlatego tak dobrze sprawdza się jako magazyn zdjęć, wideo oraz innych obiektów statycznych.
Kiedy w dysku blokowym liczy się szybkość, z którą procesor może otworzyć jakiś zasób (np. bazę danych), dokonać w niej zmian i ją zamknąć, tak w storage’u obiektowym liczy się możliwość taniego i wydajnego przechowywania dużych obiektów i uniezależnienia takiego storage’u od powiązania z konkretnym serwerem wirtualnym.
Oktawave Cloud Storage, czyli OCS
Storage obiektowy w chmurze Oktawave (OCS) charakteryzuje się możliwością wykonywania wszystkich klasycznych operacji, do których należy zapisywanie, odczyt i modyfikacja danych. Pozwala to na przechowywanie danych w formie plików oraz drzewa danych o ustrukturalizowanym charakterze, ale nic nie stoi na przeszkodzie, aby przechowywać dane w oparciu o tzw. kontenery i odejść od klasycznej struktury. Więcej informacji o OCS znajdziecie na naszej stronie internetowej poświęconej temu zagadnieniu.
Warto jednak zwrócić uwagę na kilka cech szczególnych Oktawave Cloud Storage:
- OCS pozwala zapisywać pliki i obiekty o dowolnym rozmiarze;
- każdy obiekt przechowywany jest w nadrzędnym kontenerze;
- kontenery mogą zawierać podrzędne grupy (dzięki temu realizują koncepcję folderów);
- dostęp do każdego obiektu możliwy jest za pomocą tzw. API-key generowanego z pary: użytkownik i hasło;
- użytkownik może zadecydować, czy obiekty zapisane w wybranej strefie dostępności będą replikowane poza jej obszar (do innej strefy);
- mechanizmy autoryzacji gwarantują bezpieczne przechowywanie obiektów, użytkownik decyduje, czy kontenery będą pracować w trybie publicznym czy prywatnym;
- transmisja obiektów może być realizowana za pomocą szyfrowanego połączenia (decyduje o tym użytkownik, które może w ten sposób podłączyć do storage'u obiektowego własną domenę);
- interfejs zarządzania OCS bazuje na API klasy REST, zaprojektowanym tak, aby umożliwić łatwą współpracę z różnorodnymi narzędziami internetowymi.
Jeśli chcesz wiedzieć, w jaki sposób dokładnie zorganizowany jest OCS, zachęcamy do lektury nieco bardziej wymagającego artykułu, pt. "Obiektowy storage w chmurze. Hardcore? Nie, to jest dla ludzi!".
Jak dobrać się do obiektów?
W storage’u obiektowym każdy z obiektów posiada swój własny zestaw metadanych i unikatowy identyfikator. Pozwala to na łatwe przechowywanie dużej ilości nieustrukturyzowanych danych. Jest to też rozwiązanie skalowalne i może posiadać funkcje samoleczenia uszkodzonych partii danych.
Do storage'u obiektowego (w tym oczywiście do naszego OCS) dostać się można na wiele sposobów, od tych najbardziej oczywistych jak panel administracyjny, poprzez API, a na zewnętrznych klientach kończąc. Przyjrzyjmy się im nieco bliżej.
Panel administracyjny
Panel administracyjny można znaleźć u wszystkich dostawców chmury. Inna kwestia to jego funkcjonalność. Przed wybraniem dostawcy zawsze warto sprawdzić, jak prezentuje się panel administracyjny: czy zawiera on wszystkie niezbędne opcje, czy jego interfejs jest przemyślany, czy nie sprawia problemów w nawigacji i szybko się ładuje.
To bardzo istotne, ponieważ najzwyczajniej w świecie w tym miejscu użytkownik będzie spędzał dużo czasu. W Oktawave dużo czasu poświeciliśmy na to, aby nasz panel był zarówno intuicyjny, jak i funkcjonalny, a kwestia tworzenia storage'u obiektowego może być tego dowodem. Nie musicie wierzyć mi na słowo – możecie sami zobaczyć, jak łatwo się to u nas robi. W niniejszym tutorialu pokazujemy, w jaki sposób wykonywać podstawowe operacje na OCS.
API
Tak naprawdę każdy dostawca dysku w chmurze dostarcza jakieś API, ale przed podjęciem decyzji o wyborze konkretnego rozwiązania należy przyjrzeć się, co to API dokładnie oferuje. W wielu przypadkach jest ono tak napisane, by przywiązać klienta do siebie na stałe, a bariera wyjścia w celu zmiany dostawcy jest bardzo wysoka.
Za pomocą API przeprowadzicie wszystkie operacje, jakie dostępne są z poziomu interfejsu użytkownika w panelu administracyjnym, czyli nie tylko stworzycie współdzielone dyski wirtualne, ale również możecie nimi później zarządzać. Oznacza to, że storage'em obiektowym będziecie mogli zarządzać wprost z wewnątrz swojej aplikacji.
Dzięki pełnemu wykorzystaniu API Oktawave, możliwe jest zbudowanie własnej aplikacji, w taki sposób, aby storage obiektowy stanowił osobną instancję wobec logiki aplikacji. Tak po migracji do infrastruktury Oktawave wygląda to w popularnym hostingu zdjęć Fotosik.pl.
Dodajmy w tym miejscu, że ważna w wypadku storage'u obiektowego jest także standaryzacja. W wypadku Amazon Web Services wyniesienie aplikacji z S3 najczęściej oznacza konieczność przepisywania dużej porcji kodu. Może być to hamulcem dla dewelopera, dlatego warto wybrać na początku dostawcę wspierającego otwarte standardy, czyli np. OpenStack SWIFT (Oktawave Cloud Storage nominalnie jest zgodny z tym standardem). W razie potrzeby gwarantuje to znacznie łatwiejszą migrację.
Aplikacja kliencka
Ostatnim ze sposobów na dostanie się do wykupionego storage’u obiektowego jest aplikacja kliencka do zarządzania storage'em obiektowym. Popularnym wyborem jest Cyberduck (tutorial konfiguracji z OCS), dostępny zarówno na platformy Windows jak i Mac OS X. Można również skorzystać z dowolnego innego oprogramowania zgodnego z OpenStack (np. ExpanDrive).
Dwa scenariusze
Chcielibyśmy jeszcze zwrócić uwagę na dwa klasyczne sposoby wykorzystania storage'u obiektowego w obszarach profesjonalnych. Pierwszym z nich jest backup. Otóż pliki kopii zapasowych to zazwyczaj archiwa o pokaźnych rozmiarach. Nie przewiduje się, że archiwa te będą ulegały modyfikacji, raczej oczekujemy, że w wypadku awarii wyciągniemy backup i odtworzymy dane środowisko czy bazę danych.
Do tego czasu chcemy, by kopia zapasowa w postaci archiwum była przechowywana w odrębnym miejscu (odrębnym, czyli niezależnym od środowiska, które backupujemy). I to jest idealne miejsce na wykorzystanie OCS. Możemy w firmie zainstalować oprogramowanie, które połączy się z storage'em obiektowym i będzie - poza tworzeniem samego archiwum - również wysyłało takowe do bezpiecznej chmury.
Drugim scenariuszem są aplikacje online, które korzystają z pokaźnych zasobów statycznych danych (np. zdjęć). Zaliczyć tutaj można wszelkiego rodzaju hostingi zdjęć czy wideo (tak, znów trzeba wspomnieć Fotosik.pl), wirtualne dyski, a nawet serwisy społecznościowe. Dzięki storage'owi obiektowemu możemy oddzielić te zbiory od logiki aplikacji (czyli serwery z aplikacją i bazą danych od storage'u), co sprawi, że cała architektura stanie się po prostu zoptymalizowana.
Podsumowanie
Tak mniej więcej prezentuje się kwestia dysku w chmurze. Chodziło nam o to, by pokazać Wam, że pod ładnym interfejsem popularnych i prostych usług kryje się konkretna technologia, a coraz częściej jest to właśnie chmura obliczeniowa. Technologia ta daje niesamowite możliwości również dla bardziej zaawansowanych użytkowników. Przykład Fotosik.pl pokazuje, że z jej wykorzystaniem można tworzyć po prostu całkowicie nowe usługi.
Przechowywanie danych to tylko kolejny aspekt chmury i - co warto podkreślić - aspekt, w którym góruje ona nad klasycznymi rozwiązaniami. Dziś użytkownik czy programista nie musi się martwić o to, czy wystarczy mu miejsca na jego dysku. O to dba dostawca chmury, który jednocześnie pobiera opłatę tylko za wykorzystane dane. Czy ktokolwiek powinien dziś korzystać z czegoś gorszego?
-----
W razie pytań zapraszam do ich zadawania w komentarzach, a na koniec zachęcam do zapoznania się z moim poprzednim artykułem dotyczącym różnic pomiędzy serwerem w chmurze, serwerem dedykowanym i serwerem typu VPS.
PS. Pamiętajcie również, że każdy nowy użytkownik Oktawave dostaje na start 25 zł, by móc przetestować swoją maszynkę. Więcej na ten temat znajdziecie tutaj.
-----
Maciej Kuźniar, prezes Oktawave sp. z o.o. oraz główny architekt. Pasjonat technologii związanych z przetwarzaniem i przechowywaniem danych, posiadający 12 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.
Zdjęcie pochodzi z serwisu Shutterstock.