Azure – środowisko, narzędzia, ASM i ARM

Zanim rozpoczniemy przygodę z chmurą, niezbędne będzie przygotowanie swojego środowiska pracy. Zaczniemy od aktywowania darmowej miesięcznej subskrypcji Azure oraz instalacji podstawowych narzędzi do zarządzania nią. Następnie przejdę do omówienia portali ASM oraz ARM.


Dostęp do Microsoft Azure

Subskrypcję możesz założyć pod tym adresem. Na start dostaniesz od Microsoftu około 170€ – jest na czym pracować. Podczas procesu rejestracji przygotuj się na podanie numeru telefonu bądź danych dotyczących karty kredytowej (bez tego nie przejdziesz weryfikacji). Po przekroczeniu 30 dni działania subskrypcji (lub po wyczerpaniu wszystkich dostępnych środków) konto zostanie zawieszone. Wtedy właśnie następuje ten przykry moment, kiedy wszystkie Twoje usługi, które nie tak dawno stworzyłeś, zostają zdezaktywowane. Gdy zdecydujesz się na uaktualnienie subskrypcji, tzn. przedłużysz ją, już na swój własny koszt, np. do modelu Pay-As-You-Go, działanie wszystkich wcześniej zawieszonych usług zostanie wkrótce wznowione. Niestety proces weryfikacji płatności trochę trwa i trzeba będzie swoje odczekać, zanim wszystko powróci do stanu działania. Warto kontrolować zużycie dostępnych środków, dostępne w zakładce billings, żeby nie zostać później zaskoczonym, kiedy już będzie za późno 🙂


Narzędzia

Czas zaopatrzyć się w podstawowe narzędzia, dzięki którym zarządzanie Azure’m powinno być prostsze. W co warto się zaopatrzyć:

  • Azure SDK Tools – zestaw narzędzi deweloperskich i bibliotek Azure’owych,
  • Azure CLI – multiplatformowy interpreter poleceń Azure’a. Dedykowany głównie maniakom, którzy nie mogą żyć bez swojego command line’a (np. basha). Pamiętaj, że każda komenda dla tego interpretera musi zaczynać się od słowa kluczowego azure,
  • PowerShell – nieco bardziej zaawansowany interpreter poleceń (wieloplatformowy). Do edycji skryptów polecam edytor PowerShell ISE dostępny w ramach Windows Management Framework. W większości systemów Windows’owych znajdziesz go w narzędziach administracyjnych. Siła PowerShella objawia się przy automatyzacji wielu procesów Azure’owych. Minimalna zalecana wersja – 4.0,
  • Visual Studio 2015 Community Edition – chyba jedno z najbardziej znanych narzędzi deweloperskich, myślę, że nie trzeba go nikomu przedstawiać 🙂
  • WebMatrix – jeśli Visual Studio Cię przeraża i wolałbyś na początku zacząć od czegoś mniej zaawansowanego, możesz sprawdzić WebMatrix’a. Narzędzie to jest wykorzystywane do tworzenia i rozwijania aplikacji internetowych z wykorzystaniem technologii takich jak: ASP.NET, PHP czy Node.js. Otwierasz bibliotekę z szablonami, a następnie wybierasz interesujący Cię wzór. Projekt tworzony jest automatycznie za Ciebie, a następnie konfigurowany. WebMatrix pozwala na automatyczne wdrożenie aplikacji w chmurę przy pomocy kilku kliknięć.

Wszystkie wymienione powyżej narzędzia możesz pobrać również za pomocą Web Platform Installer’a, niestety u mnie średnio się on sprawuje 🙁


Portale internetowe z dostępem do chmury

Microsoft udostępnił dwa portale internetowe, z pomocą których możemy zarządzać Azure’m. Pierwszy z nich to Azure Service Management (ASM), potocznie znany jako „stary” lub klasyczny portal. Sierpniem 2014 roku Microsoft wypuścił nową platformę internetową. Wtedy to w ręce użytkowników został oddany drugi, „nowy” portal, mianowicie Azure Resource Manager (ARM).


Azure Service Management (ASM)

Klasyczny portal możesz obejrzeć pod tym adresem. W ramach ASM wszystkie zasoby tworzone są w odizolowanych od siebie kontenerach, tzw. cloud service’ach. Każdy z nich posiada pewne podstawowe funkcjonalności, takie jak: load balancer, publiczny adres IP czy zbiór endpointów REST’owych – wykorzystywanych do zdalnego zarządzania kontenerem. Architektura w starym portalu opiera się o wykorzystanie REST API XML. Dokładanie kolejnych zasobów staje się po jakimś czasie uciążliwe, ze względu na to, że każdy komponent Azure’owy został odizolowany od następnego, przez co trzeba nim osobno zarządzać. W dużej mierze portal ten opiera się na dostarczaniu rozwiązań typu IaaS.

Część usług udostępniona za pośrednictwem nowego portalu (ARM) jest dostępna z poziomu ASM. Klasyczny portal wykorzystuje swój oddzielny moduł PowerShell’owy, natomiast dla interpretera CLI został przygotowano specjalny tryb, dzięki któremu bez problemu można komunikować się z cloud service’ami. Przykładowe polecenia PowerShellow’e dla starego portalu zostały przedstawione poniżej:

Warto wspomnieć, że do poprawnegodziałania ASM wymagane jest jeszcze dodatkowe konto magazynu danych (Storage Account), potrzebne do przechowywania wirtualnych dysków twardych (VHD) dla maszyn wirtualnych.

Klasyczny portal Azure (ASM)
Klasyczny portal Azure (ASM)

Jakiś czas temu Microsoft udostępnił pakiet o nazwie Windows Azure Pack (WAP). Za pomocą tej paczki każda firma może skonfigurować i wdrożyć swój własny portal ASM w ramach prywatnego centrum danych. Pakiet uruchamiany jest z pomocą systemu Windows Server oraz SQL Server’a.


Azure Resource Manager (ARM)

Nowy portal można odwiedzić pod tym linkiem. Architektura została całkowicie przebudowana. W tym przypadku wszystko opiera się o wykorzystanie REST API JSON. Zasoby stały się bardziej zintegrowane, zamykane są w specjalne grupy zasobów (tzw. Resource Groups).  Dzięki temu można tworzyć paczki z różnego rodzaju komponentami np. zestaw zawierający dwie aplikacje webowe wraz z noSQL’ową bazą danych, dodatkowym magazynem na dane oraz modułem map Bing Maps. Każdy komponent może istnieć tylko w jednej grupie zasobów. W każdym momencie możemy dodawać kolejne zasoby do grup, usuwać je czy przenosić pomiędzy grupami.

Umiejscowienie wszystkich zasobów w ramach jednej grupy pozwala nam na bardzo proste zarządzanie całym zestawem komponentów. W przypadku klasycznego portalu wszystkie komponenty były od siebie odizolowane. Przy pomocy kilku kliknięć można od razu przenieść całą grupę z jednego rejonu geograficznego w inny, usunąć lub wdrożyć ją na innym środowisku. W ramach grupy zasobów możliwe jest umieszczanie komponentów, znajdujących się w różnych miejscach na świecie (np. aplikacja w USA, a baza danych w Europie). Zalecane jest, aby każdy zasób znajdował się jak najbliżej kolejnego.

Większość funkcjonalności dostępnych w klasycznym portalu znajduje się również w ARM, aczkolwiek jeszcze nie wszystkie. Z pomocą nowego portalu możemy również tworzyć komponenty wykorzystywane przez klasyczny ASM – podczas tworzenia np. maszyny wirtualnej możesz wybrać odpowiedni model wdrożenia (klasyczny dla ASM lub resource manger dla ARM).

Podobnie jak to miało miejsce w ASM, nowy portal korzysta ze swojego modułu PowerShell’owego. Komendy wykorzystywane przez ARM posiadają dodatkową frazą RM:

Wspomnę jeszcze o prostej, ale jakże mnie cieszącej, funkcjonalności nowego portalu, a mianowicie możliwość stworzenia własnego dashboard’u 🙂 Możesz wrzucić na pulpit najbardziej interesujące Cię komponenty znajdujące się w ramach Twojego środowiska. Niby taka prosta rzecz, a cieszy, zwłaszcza dlatego, że w klasycznym ASM’ie nie była dostępna.

Nowy portal Azure (ARM)
Nowy portal Azure (ARM)

Odpowiednikiem ASM’owego Windows Azure Packa jest ARM’owy Windows Azure Stack.


Szablony zasobów

Najciekawszą rzeczą, udostępnioną wraz z nowym portalem, są tzw. szablony zasobów (resource templates). Jest to nic innego jak zwykłe pliki JSON’owe, definiujące komponenty (wraz z ich parametrami) jakie powinny się znajdować w danej grupie zasobów. Wykorzystywane są one do deployment’u konfiguracji na nowe środowiska czy nowe subskrypcje. Poniżej przedstawiam fragment dowolnego szablonu zasobów:

Szablon każdej z grup możesz podejrzeć wybierając opcję Skrypt automatyzacji w kategorii Ustawienia grupy. Dzięki udostępnionej w sieci galerii szablonów możemy instalować całe środowiska na naszej chmurze przy pomocy kilku kliknięć. Serwer do Minecraft’a w kilka minut? Proszę bardzo link 🙂


Kontrola dostępu do zasobów (RBAC)

Ostatnią funkcjonalnością portalu ARM godną uwagi jest RBAC (Role-based access control). Jest to nic innego jak mechanizm kontrola dostępu do poszczególnych zasobów za pomocą systemu ról czy uprawnień. Możemy oddelegować innemu użytkownikowi np. rolę administratora. Z menu Subskrypcje wybieramy interesujący nas plan, a następnie zakładkę kontrola dostępu. W klasycznym portalu ASM właściciel subskrypcji jest jedynym możliwym administratorem.


Podsumowanie

Reasumując, który portal wybrać? Uważam, że każdy nowy projekt, każde nowe wdrożenie powinno opierać się na architekturze ARM’owej. Rozwiązanie to jest o wiele bardziej elastyczniejsze, a przede wszystkim prostsze, choćby dzięki możliwości grupowania zasobów czy zarządzania nimi jako całość. W praktyce, niestety, najczęściej kończy się to tak, że pracujemy jednocześnie na jednym jak i drugim portalu. Jak już wspomniałem w artykule, nie wszystkie komponenty są w pełni wspierane na każdym z portali, przez co często trzeba się pomiędzy nimi przelogowywać, żeby coś skonfigurować lub uruchomić.