Czym jest magazyn obiektowy
Zwykły dysk działa jak regał z segregatorami. Są półki, na półkach segregatory, w segregatorach kartki, a żeby coś dopisać, wystarczy otworzyć kartkę w środku i poprawić jedno zdanie. Magazyn obiektowy działa inaczej. Bliżej mu do szatni: oddajesz całą paczkę i dostajesz numerek. Paczka leży w jednym kawałku, a jeśli chcesz cokolwiek w niej zmienić, odbierasz ją, zmieniasz u siebie i oddajesz z powrotem jako nową paczkę.
Paczka nazywa się obiektem, szatnia koszykiem, a numerek kluczem. Klucz wygląda jak ścieżka z ukośnikami, więc pierwsze wrażenie jest takie, że są tam katalogi, ale to złudzenie: katalogów nie ma, jest tylko długa nazwa, w której ukośnik nic nie znaczy poza tym, że pomaga człowiekowi się połapać. Do każdego obiektu można dołożyć własne opisy, na przykład czego dotyczy i kiedy powstał.
Skąd nazwa i co znaczy zgodny z S3
Skrót pochodzi od usługi uruchomionej przez Amazona i pierwotnie oznaczał wyłącznie ją. Z czasem sposób rozmowy z tą usługą, czyli zestaw poleceń wysyłanych po sieci, stał się wzorcem powielanym przez innych dostawców i przez oprogramowanie instalowane na własnym sprzęcie. Dziś zgodny z S3 znaczy, że magazyn rozumie te same polecenia, więc program, który potrafi rozmawiać z jednym, potrafi też z pozostałymi. Praktyczny skutek jest taki, że zmiana dostawcy sprowadza się do podmiany adresu i kluczy dostępu, a nie do zmiany narzędzia.
Jak wygląda zapis i odczyt
Nie ma tu litery dysku ani zamontowanego zasobu. Program łączy się z adresem magazynu, przedstawia się parą kluczy, identyfikatorem i sekretem, po czym wysyła polecenie zapisania obiektu pod danym kluczem albo pobrania go. Duże pliki wysyła się częściami, a magazyn składa je z powrotem w jedną całość. Odpowiedzią na każde polecenie jest potwierdzenie, że obiekt zapisano, wraz z sumą kontrolną, po której da się sprawdzić, czy to, co przyjechało, jest tym, co wysłano.
Wersjonowanie i blokada obiektu
Dwie funkcje decydują o tym, dlaczego magazyn obiektowy trafił do kopii zapasowych. Pierwsza to wersjonowanie: zapis pod istniejącym kluczem nie kasuje poprzedniej zawartości, tylko odkłada nową wersję obok, a usunięcie zostawia znacznik i poprzednie wersje pozostają dostępne. Druga to blokada obiektu, ustawiana na zadany czas. Obiektu objętego blokadą nie usunie ani nie nadpisze nikt, i to nie dlatego, że komuś brakuje uprawnień, tylko dlatego, że magazyn odmawia takiego polecenia każdemu, łącznie z właścicielem konta.
Ta druga własność jest odpowiedzią na konkretny scenariusz. Atak szyfrujący dane zaczyna się od skasowania kopii, a skoro kopii nie można skasować przez zadany okres, atakujący z przejętym kontem administratora niczego z nią nie zrobi.
Dlaczego to nie jest dysk sieciowy
Udział sieciowy pozwala otworzyć plik, poprawić w nim fragment i zapisać w miejscu. Magazyn obiektowy nie pozwala pracować na pliku w miejscu: obiekt pobiera się w całości albo zapisuje w całości. Dlatego kiepsko nadaje się na dysk roboczy, na którym kilka osób edytuje ten sam dokument, a doskonale na miejsce, gdzie ląduje to, co powstało: kopie, archiwa, załączniki, zdjęcia z serwisu, nagrania.
Z tego samego powodu nie jest bazą danych. Baza potrzebuje zapisu w środku pliku i tysięcy drobnych operacji na sekundę, a magazyn obiektowy rozlicza się i zachowuje inaczej.
Do czego firmy tego używają
Najczęściej jako miejsce na kopie zapasowe poza budynkiem: system kopii wysyła tam swoje pliki, a blokada obiektu pilnuje, żeby nikt ich nie usunął przed terminem. Poza tym jako archiwum dokumentów, magazyn nagrań z monitoringu, miejsce na załączniki aplikacji internetowej oraz przechowalnia obrazów maszyn wirtualnych.
Na co uważać
Rachunek ma zwykle więcej pozycji niż sama pojemność. Osobno bywa liczony transfer wychodzący, osobno liczba zapytań, a różne klasy przechowywania mają różny koszt utrzymania i różny koszt sięgnięcia po dane. Klasa najtańsza w utrzymaniu bywa najdroższa w chwili sięgnięcia po dane, więc archiwum kosztuje grosze przez jedenaście miesięcy i wystawia rachunek w tym dwunastym.
Druga sprawa to klucze. Para kluczy jest hasłem do całego koszyka i wpisana w konfigurację programu kopii zapasowych łatwo zostaje tam na lata. Warto zawęzić jej uprawnienia do jednego koszyka i jednej czynności, żeby wykradziony klucz nie dawał prawa do skasowania wszystkiego.
Trzecia to nazwy i regiony. Koszyk powstaje w konkretnej lokalizacji i to ona rozstrzyga, gdzie fizycznie leżą dane, co bywa istotne przy danych osobowych i przy opóźnieniu w dostępie.
Kiedy magazyn obiektowy nie jest odpowiedzią
Jeśli szukasz miejsca na wspólne dokumenty, po których ludzie klikają w oknie systemu, prostszy będzie udział sieciowy albo usługa z synchronizacją plików. Jeśli aplikacja wymaga bazy danych, magazyn obiektowy jej nie zastąpi. A jeśli dane muszą być czytane bardzo często i bardzo małymi kawałkami, koszt zapytań potrafi przewyższyć koszt samego przechowywania.