Firma beitadminpl chce migrować kilka departamentów do chmury Microsoft Azure. Migracji podlegać będą różnego rodzaju zestawy plików. Wyrażenie różnego rodzaju jest tutaj kluczowe, ponieważ Microsoft Azure je rozróżnia u siebie, dlatego trzeba rozumieć różnice pomiędzy nimi występujące. Wpis w połączeniu z lekcją na kanale YT (link na końcu wpisu) przedstawią czym jest Azure Storage Accounts.
Wstęp do Storage Account
Firma postanowiła do migracji wykorzystać Microsoft Azure Storage Account, jednak na wstępie konieczne jest zrozumienie w jaki sposób Storage Account działa w chmurze Azure. Storage Account przechowuje większość typów danych, które można sobie wyobrazić: wideo, zdjęcia, dyski VHDX maszyn wirtualnych, masywne pliki binarne (blob), pliki wykorzystywane do analizy danych.
Storage Account zapewnia:
- Niezawodność i wysoką dostępność (Durable and highly available) – nadmiarowość infrastruktury zapewnia bezpieczeństwo danych w przypadku przejściowych awarii sprzętu. Dla dodatkowej ochrony przed lokalnymi problemami można również zdecydować się na replikowanie danych między centrami danych lub regionami geograficznymi. Dane replikowane w ten sposób pozostają wysoce dostępne w przypadku awarii.
- Bezpieczeństwo (Secure) – dane zapisywane na koncie usługi Azure Storage są szyfrowane przez usługę. Usługa Azure Storage zapewnia precyzyjną kontrolę nad tym, kto ma dostęp do danych.
- Skalowanie (Scalable) – usługa Azure Storage została zaprojektowana jako wysoce skalowalne rozwiązanie spełniające potrzeby związane z magazynowaniem danych i wydajnością współczesnych aplikacji.
- Zarządzanie (Management) – platforma Azure obsługuje konserwację sprzętu, aktualizacje i problemy krytyczne. Bardzo dużo rzeczy omija właściciela konta, czego nie można powiedzieć o serwerowni fizycznie posiadanej w organizacji.
- Dostępność (Accessible) – dane w usłudze Azure Storage są dostępne z dowolnego miejsca na świecie za pośrednictwem protokołu HTTP lub HTTPS. Firma Microsoft udostępnia biblioteki klienckie usługi Azure Storage w różnych językach, w tym .NET, Java, Node.js, Python, PHP, Ruby, Go i innych, a także interfejs API REST. Usługa Azure Storage obsługuje skrypty programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Witryna Azure Portal oraz Eksplorator usługi Azure Storage oferują proste rozwiązania wizualne do pracy z danymi.
Możliwości Storage Account:
Platforma Azure Storage obejmuje następujące usługi danych w odniesieniu do chmury Azure:
- Blobs – wysoce skalowalny magazyn obiektów dla danych tekstowych i binarnych. Obejmuje również obsługę analizy danych Big Data za pomocą Data Lake Storage Gen2,
- Files – zarządzane udziały plików dla wdrożeń w chmurze lub lokalnych,
- Queues – komunikaty zapewniające obsługę komunikacji między składnikami aplikacji,
- Tables – obiekty NoSQL (bazy nierelacyjne) do magazynowania ustrukturyzowanych danych bez użycia tabel, tak jak ma to miejsce w przypadku np. MS SQL,
- Disks – woluminy magazynu na poziomie bloku dla maszyn wirtualnych platformy Azure
Jako użytkownik konieczne jest posiadanie dostępu do konta magazyny (Storage Account), które musi zostać utworzone w subskrypcji Azure.
Blob Storage
Azure Blob Storage to rozwiązanie do magazynowania obiektów w chmurze firmy Microsoft. Usługa Blob Storage została zoptymalizowana pod kątem przechowywania olbrzymich ilości danych, które nie są ustrukturyzowane, np. dane tekstowe lub binarne.
Usługa Blob Storage to idealne rozwiązanie gdy potrzebne jest:
- Obsługiwanie obrazów i dokumentów bezpośrednio w przeglądarce,
- Przechowywanie plików do dostępu rozproszonego,
- Przesyłanie strumieniowe audio i wideo,
- Zapisywanie danych w celu tworzenia kopii zapasowych, przywracania, odzyskiwania po awarii i archiwizowania,
- Przechowywanie danych w celu analizy w usłudze lokalnej lub hostowanej na platformie Azure,
- Przechowywanie do 8 TB danych dla maszyn wirtualnych.
Dostęp do obiektów w usłudze Blob Storage można uzyskać z dowolnego miejsca na świecie za pośrednictwem protokołu HTTP lub HTTPS. Użytkownicy lub aplikacje klienckie mogą uzyskiwać dostęp do obiektów blob za pomocą adresów URL, interfejsu API REST usługi Azure Storage, programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub biblioteki klienta usługi Azure Storage. Biblioteki klienta magazynu są dostępne dla wielu języków, w tym .NET, Java, Node.js, Python, PHP i Ruby.
Usługa Azure Storage oferuje różne warstwy dostępu do magazynu obiektów typu blob, ułatwiając przechowywanie danych obiektów w najbardziej opłacalny sposób. Dostępne poziomy dostępu obejmują:
- Hot („gorący)” – zoptymalizowany pod kątem przechowywania często używanych danych (na przykład obrazów witryny),
- Cool („chłodny”) – zoptymalizowana pod kątem danych, do których rzadko uzyskuje się dostęp i które są przechowywane przez co najmniej 30 dni (na przykład faktury dla klientów),
- Archive (archiwum) – odpowiednia dla danych, do których rzadko uzyskuje się dostęp i które są przechowywane przez co najmniej 180 dni. Takie podejście przydaje się w przypadku kopii zapasowych do których rzadko zaglądamy.
Wybranie właściwego rozwiązania z wyżej wymienionych zapewni optymalne przechowywanie danych w relacji do kosztów.
Azure Files
Azure Files umożliwia skonfigurowanie udziałów plików o wysokiej dostępności, do których można uzyskać dostęp przy użyciu standardowego protokołu bloku komunikatów serwera (SMB). Oznacza to, że wiele maszyn wirtualnych może współdzielić te same pliki z dostępem zarówno do odczytu, jak i do zapisu. Pliki można także odczytywać przy użyciu interfejsu REST lub bibliotek klienckich magazynu.
Różnicą między usługą Azure Files udziałami plikowymi lokalnymi jest możliwość dostępu do plików z dowolnego miejsca na świecie. Poza adresem do zasobu, potrzebne jest dodanie tzw. tokenu (SAS) (screen poniżej). Tokeny sygnatury dostępu współdzielonego można generować. Umożliwiają one uzyskanie określonego dostępu do prywatnego zasobu przez określony czas.
Oto przykład SAS URL usługi, pokazujący identyfikator URI zasobu i token SAS:
Udziałów plików można używać w wielu typowych scenariuszach:
- Wiele aplikacji lokalnych korzysta z udziałów plików. Dzięki temu migracja tych aplikacji współdzielących dane na platformę Azure jest łatwiejsza. Jeśli zainstalujesz udział plików przy użyciu tej samej litery dysku, która jest używana przez aplikację lokalną, część aplikacji uzyskująca dostęp do udziału plików powinna działać bez konieczności wprowadzania zmian lub jedynie z minimalnymi zmianami.
- Pliki konfiguracji można przechowywać w udziale plików i uzyskiwać do nich dostęp z wielu maszyn wirtualnych. W udziale plików można przechowywać narzędzia używane przez wielu deweloperów w grupie, dzięki czemu wszyscy będą mogli je znaleźć oraz będą używać tych samych wersji.
- Dzienniki zasobów, metryki i zrzuty awaryjne to dane, które można zapisać w udziale plików i przetworzyć lub przeanalizować później.
Na poniższej ilustracji przedstawiono Azure Files używane do udostępniania danych między dwiema lokalizacjami geograficznymi. Azure Files zapewnia, że dane są szyfrowane w spoczynku, a protokół SMB zapewnia szyfrowanie danych podczas przesyłania.
Queue Storage
Usługa Azure Queue jest używana do przechowywania i pobierania komunikatów. Komunikaty kolejek mogą mieć rozmiar do 64 KB, a jedna kolejka może zawierać miliony komunikatów. Kolejki są zazwyczaj używane do przechowywania list komunikatów, które mają zostać przetworzone asynchronicznie.
Przykładowo załóżmy, że chcesz, aby klienci mogli przekazywać obrazy, i chcesz utworzyć miniatury dla każdego obrazu. Klient może poczekać, aż utworzysz miniatury podczas przekazywania zdjęcia. Alternatywą jest zastosowanie kolejki. Następnie usługa Azure Functions pobierze informacje z kolejki i utworzy miniatury. Każdą część tego przetwarzania można skalować oddzielnie, co daje większą kontrolę podczas pracy.
Table Storage
Usługa Azure Table Storage jest teraz częścią usługi Azure Cosmos DB. Oprócz istniejącej usługi Azure Table Storage dostępna jest nowa oferta interfejsu API tabel usługi Azure Cosmos DB, który zapewnia tabele zoptymalizowane pod kątem przepływów, globalną dystrybucję i automatyczne indeksy pomocnicze.
Disk Storage
Dysk zarządzany (managed disk) przez platformę Azure to wirtualny dysk twardy (VHD). Można traktować go jako dysk fizyczny na serwerze lokalnym jednak jest on zwirtualizowany. Dyski zarządzane przez platformę Azure są przechowywane jako stronicowe obiekty blob, które są losowym obiektem magazynu we/wy na platformie Azure. Dysk zarządzany jest tak nazywany, ponieważ jest to abstrakcja dla stronicowych obiektów blob, kontenerów obiektów blob i kont usługi Azure Storage. Dyskami zarządzanymi opiekuje się Azure, użytkownik nie musi dbać o jego sprawność.
Dyski są dostępne w wielu różnych typach, od dysków SSD po tradycyjne dyski twarde (HDD), z różnymi poziomami wydajności. Możesz używać standardowych dysków SSD i HDD do mniej krytycznych obciążeń, dysków Premium SSD do aplikacji produkcyjnych oraz dysków Ultra Disk do obciążeń intensywnie korzystających z danych, takich jak SAP czy DB.
Replikowanie danych w Storage Account
Usługa Azure Storage przechowuje co najmniej 3 repliki naszych danych, korzystając z locally redundant storage (LRS) lub zone-redundant storage (ZRS), geo-redundant storage (GRS) lub read-access geo-redundant storage (RA-GRS). Dzięki temu Azure zachowuje czas działania naszej aplikacji w przypadku awarii.
- Locally redundant storage (LRS) – pomaga replikować nasze dane w tym samym centrum danych i jest tanią techniką redundancji danych. LRS jest najtańszą opcją replikacji i oferuje najmniejszą trwałość w porównaniu z innymi opcjami. Zapewnia co najmniej 99,999999999% (11 dziewiątek) trwałości obiektów w danym roku. Jest to przydatne, gdy możemy łatwo zrekonstruować dane w przypadku utraty danych lub ograniczyliśmy replikację danych tylko w obrębie kraju/regionu.
- Zone-redundant storage (ZRS) – pomaga uzyskać doskonałą wydajność, niskie opóźnienia i synchroniczną replikację danych w trzech klastrach pamięci masowej w jednym regionie. Każdy klaster pamięci masowej jest fizycznie oddzielony, ale w tym samym regionie. ZRS zapewnia trwałość obiektów pamięci masowej na poziomie co najmniej 99,9999999999% (12 dziewiątek) w ciągu danego roku.
- Geo-redundant storage (GRS) – pomaga replikować nasze dane do innego regionu, który jest oddalony o setki kilometrów od regionu podstawowego. Zapewnia co najmniej 99.999999999999999% (16 dziewiątek) trwałości obiektów w danym roku. GRS replikuje dane do innego regionu, ale dane będą dostępne tylko do odczytu.
- Read-access geo-redundant storage (RA-GRS) – opiera się na GRS, ale zapewnia również opcję odczytu z regionu pomocniczego, niezależnie od tego, czy firma Microsoft zainicjuje przełączenie awaryjne z regionu podstawowego do pomocniczego.
Podsumowanie
Azure Storage Account jest wygodnym narzędziem, które dobrze skonfigurowane, daje uporządkowane miejsce do przechowywania danych, które coraz częściej migrują do chmury. Zapraszam również do objerzenia nagrania na kanale YT (beitadminpl), w którym pokazuję wdrożenie blob.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).