Azure Stack – chmura Azure we własnej serwerowni. Jak to działa?

Rozwiązanie Azure Stack jest z nami już od końca 2016 roku, jednak ze względu na bardzo duże skomplikowanie i koszty wciąż nie przebiło się ono do powszechnej świadomości, a publikacji na jego temat znajdziemy w rodzimym internecie niewiele. Sprawdźmy więc, co oferuje Azure Stack, jak działa i jak można je wykorzystać.
Czym jest Azure Stack Hub?
Najprościej mówiąc – jest to oprogramowanie chmury Azure umieszczone w prywatnym centrum danych. Zamiast łączyć się z serwerowniami Microsoftu, użytkownik może uruchomić u siebie środowisko Azure w skali mikro. Proste? sudo apt install azure-stack i już? No nie do końca…
Azure Stack – wymagania
Przede wszystkim, do uruchomienia Azure Stack (właściwie Azure Stack Hub – o tym później) konieczny jest zakup odpowiedniego sprzętu. Środowiska nie kupuje się bezpośrednio od Microsoftu, lecz od dostawców systemów zintegrowanych, np. Della, Lenovo, HP Enterprise, Cisco. Składają się one z czterech, ośmiu, dwunastu, a od niedawna także szesnastu węzłów obliczeniowych (tzw. scale units), a każdy z nich musi być wyposażony w:
- 256-768 GB pamięci RAM
- 12-24 rdzeni CPU
- 6-12 TB pamięci cache na dyskach SSD
- 40-100 TB pamięci dla danych na nośnikach HDD lub SSD
- Łączność sieciowa 40 Gb/s pomiędzy węzłami
Koszty takich zestawów sprzętowych nie są podawane publicznie, szacuje się je jednak na od 100 do ponad 300 tysięcy dolarów. Do tego należy doliczyć koszty użytkowania samego Azure Stack rozliczane według użycia i podawane przez Microsoft na dedykowanej stronie. Jest to więc rozwiązanie dedykowane raczej większym firmom, które mogą sobie pozwolić na taki wydatek i wykazują na niego realne zapotrzebowanie. Wielu Czytelników może zastanowić się, dlaczego konieczne jest kupowanie gotowych zestawów, zamiast móc zainstalować oprogramowanie na dowolnym sprzęcie posiadanym akurat w serwerowni. Microsoft tłumaczy, że powody są dwa: pierwszy to możliwość zapewnienia wszelkich nowinek w zakresie Azure, drugi zaś to jakość i niezawodność całego rozwiązania. Jest to w pełni zrozumiałe – firmy oczekują czegoś, co po prostu działa, nie wymaga długotrwałego dobierania i konfiguracji urządzeń, a także nie spowoduje problemów ze względu na multum konfiguracji sprzętowych.
Niekoniecznie u siebie
Rozwiązania z portfolio Azure Stack słyną jako możliwość zainstalowania chmury Azure we własnej serwerowni, ale niekoniecznie musi tak być. Można także korzystać z usług innego dostawcy, wynajmując od niego zasoby w modelu managed service. Jednym z nich jest nasz rodzimy Beyond.pl.
Architektura
Opuśćmy sferę sprzętową i zajrzyjmy do oprogramowania. Pod samym Azure Stack Hub oferującym np. poszczególne usługi, SDK, interfejs lub zarządzanie i niewiele różniącym się od standardowego Azure jako chmury publicznej, działa usługa Active Directory umieszczona na maszynach wirtualnych Hyper-V, te zaś są hostowane przez system operacyjny w postaci Windows Server 2016 Core lub nowszego. Dostęp do storage’u jest zapewniany przez rozwiązanie Storage Spaces Direct (S2D), które pozwala łączyć pule pamięci dyskowych różnych typów (HDD, SSD, NVMe) z każdego węzła wchodzącego w skład klastra Azure Stack Hub. W celu zapewnienia trwałości danych, S2D kopiuje dane na trzy różne węzły – oznacza to, że z klastrem może rozłączyć się do dwóch maszyn fizycznych (np. ulec awarii), a środowisko będzie dalej działać. Wykorzystywanym systemem plików jest ReFS, domyślny dla nowszych wydań Windows Server. Łączność zapewniana jest przez stos SDN (Software-Defined Networking) opartym na kontrolerze sieciowym obsługującym zarówno komunikację w sieciach fizycznych, jak i wirtualnych, a także zarządzającym fierewallem, load-balancerami i RAS Gatewayem, czyli formą wirtualnego routera.
Hub, Edge, HCI
Omawiając Azure Stack nie można pominąć rebrandingu całej usługi, który miał miejsce w zeszłym roku. Od tego czasu omawiane dziś rozwiązanie zyskało pełną nazwę Azure Stack Hub dla odróżnienia od zaprezentowanych nowości w postaci HCI oraz Edge. By nie wprowadzać zbytnego zamętu, omówię je jedynie pobieżnie.
Azure Stack HCI
Umożliwia uruchomienie (uwaga, modne słowo) hiperkonwergentnej infrastruktury wirtualizacyjnej. Podobnie jak w przypadku klasycznego Azure Stack Hub, jedyną drogą ich nabyia jest zakup certyfikowanych zestawów składających się z minimalnej ilości dwóch węzłów. Można je łączyć z publiczną chmurą Azure tworząc w ten sposób chmurę hybrydową (przeczytaj artykuł o rodzajach chmury) uruchamiając maszyny wirtualne lokalnie, zaś kopie zapasowe przechowując w serwerowniach Microsoftu. Jest to więc nieco przycięty Azure Stack Hub dedykowany tradycyjnej wirtualizacji.
Azure Stack Edge
To rozwiązanie było z nami już wcześniej jako Azure Databox Edge. Jest urządzeniem instalowanym w szafie rack, jak każdy inny serwer. Pozwala uzyskać dostęp do usług Azure bez stałych kosztów miesięcznych oraz z poziomu własnej serwerowni, potrafi także wspierać zadania związane z AI i uczeniem maszynowym.
Dodatkowo, jak widać na powyższym obrazku, chmurę można zabrać ze sobą w formie urządzenia opakowanego w gumowe zabezpieczenie i zasilanego z akumulatora.
Co oferuje Azure Stack Hub?
Gdy uda się już wszystko uruchomić i skonfigurować (co niestety jest bardzo skomplikowane, szczególnie w zakresie łączności sieciowej), można przejść do użytkowania. Bardzo przypomina to standardową, publiczną chmurę Azure – mamy portal administratora, portal użytkownika, dostęp poprzez PowerShell. Dodatkiem jest Azure Stack Hub Operator, czyli specjalna sekcja portalu służąca do zarządzania i monitoringu całego systemu.
O ile jednak publiczne Azure ma w swojej ofercie ponad dwieście (!) różnych usług, w panelu zarządzania Stack Hub znajdziemy ich o wiele mniej. W chwili obecnej są to:
- Maszyny wirtualne (VMs)
- App Service – rozwiązanie PaaS pozwalające na uruchamianie aplikacji bez konieczności dbania o serwery, bazy danych, dyski, sieci itd.
- Azure Functions – wykonywanie funkcji wywoływanych przez określone przez użytkownika zdarzenia, np. automatyczne dodawanie wpisów do bazy w razie pobrania pliku.
- Azure Kubernetes Service – Kubernetes w chmurze.
- Service Fabric – zarządzanie budową aplikacji opartych o mikroserwisy.
- Azure IoT Hub – zarządzanie i komunikacja z urządzeniami IoT.
- Azure Event Hub – przetwarzanie danych z różnych źródeł, np. z urządzeń IoT.
- Key Vault – “sejf” na klucze szyfrujące.
- Blob Storage – storage obiektowy, przechowywanie nieustrukturyzowanych danych typu data lake.
- Queue Service – usługa umożliwiająca kolejkowanie danych.
- Managed Disks – blokowy magazyn danych, forma wirtualnych dysków podłączanych (zazwyczaj) do maszyn wirtualnych.
- Table Storage – przechowywanie danych w formacie klucz-wartość.
- SQL Server 2019 – serwer baz danych.
- SQL Resource Provider – eksponowanie baz danych jako usługi.
- MySQL Resource Provider – j.w. ale dla baz MySQL.
Zespół odpowiedzialny za Azure Stack Hub ciągle pracuje nad rozszerzeniem powyższej listy, ale na tę chwilę nie imponuje ona długością zawierając w sobie jedynie najbardziej podstawowe z usług. Co ciekawe, możliwe jest tworzenie szablonów maszyn oraz większych rozwiązań, a następnie udostępnianie ich innym oddziałom firmy poprzez Azure Marketplace – dokładnie tak, jak w klasycznym Azure.
Sytuacje, w jakich przydaje się Azure Stack
Czy zakup drogiego i skomplikowanego rozwiązania, jakim bez wątpienia jest Azure Stack Hub ma sens, szczególnie wobec braku dostępu do lwiej części usług Azure? Dlaczego nie skorzystać z chmury publicznej? Cóż, Azure Stack Hub jest dedykowane szczególnym zastosowaniom, w których może się sprawdzić:
- Brak dostępu do szybkiej łączności – by wygodnie używać chmury, trzeba mieć stałą łączność z internetem. Niestety, nie zawsze tak jest. Przykładowo, Maersk wykorzystuje Azure Stack na swoich międzykontynentalnych kontenerowcach – na morzu bowiem niełatwo o dostęp do sieci. Gdy łączność zostanie odzyskana, dane mogą być przetransferowane do publicznego Azure.
- Regulacje prawne – by spełnić niektóre regulacje prawne lub wymagania związane z lokalnymi zasadami, niekiedy konieczne jest przechowywanie i przetwarzanie danych we własnej serwerowni umieszczonej na terytorium kraju bez dostępu dla osób lub firm trzecich.
- Chęć przechowywania kluczowych usług i danych u siebie – w obawie o bezpieczeństwo danych oraz ich dostępność, niektóre firmy decydują się przechowywać kluczowe zasoby we własnych, zarządzanych wyłącznie przez siebie serwerowniach. Jednocześnie jednak nie chcą wymyślać koła na nowo tworząc własne rozwiązania chmury prywatnej, a także wolą zachować jednolity sposób zarządzania całością.
- Testowanie i rozwój aplikacji w oparciu o rozwiązania Azure – firmom, które nie decydują się na migrację do chmury publicznej, również może zależeć na korzystaniu z jej usług, np. konteneryzacji, środowisk serverless, mikroserwisów, rozwiązań PaaS typu App Service itd.
Azure Stack świetnie sprawdza się pracując w modelu hybrydowym z Azure poprzez VPN lub bezpośrednie podłączenie ExpressRoute.
ASDK – sprawdź Azure Stack Hub już dziś na swoim sprzęcie (o ile spełnia wymagania…)
Kończąc niniejszy wywód, warto jeszcze wspomnieć o możliwości skorzystania z ASDK – Azure Stack Development Kit. Jest to deweloperska wersja Azure Stack Hub, którą można uruchomić na jednym serwerze. Zanim jednak zdążycie zgłosić się o udostępnienie ASDK do Microsoftu, warto rzucić okiem na wymagania sprzętowe: cztery dyski po 240 GB, dysk systemowy 200 GB, 16-rdzeniowy procesor, 192 GB RAM. A to jedynie minimum. Jeśli jednak udało wam się je spełnić, może nawet ruszy na tym Crysis Cyberpunk, gdy testowanie Azure Stack Hub już się znudzi 😉
PS: ci z was, którzy chcieliby pobawić się chmurą na własnym komputerze, być może zainteresują się rozwiązaniem Multipass od Canonical, do którego napisałem cały poradnik.