Wprowadzenie

W tym wpisie zajmiemy się zarządzaniem usługami platformy Microsoft Azure. Dowiemy się, jakimi narzędziami możemy posługiwać się, korzystając z platformy oraz jakie są ich benefity, oraz ograniczenia. Oprócz sporej dawki wiedzy teoretycznej, omówimy sobie również praktyczne zastosowania danych narzędzi. Jeżeli chcesz wiedzieć więcej na ten temat, to cytując piłkarskiego klasyka „Siadamy głęboko w fotelach, zapinamy pasy i startujemy”.

Podczas tej lekcji dowiesz się:

  • W jaki sposób możemy zarządzać usługami platformy
  • Jak korzystać z Azure CLI
  • Jak korzystać z Azure PowerShell
  • Jak korzystać z Azure Cloud Shell
  • Jak korzystać z ARM templates
  • Jak korzystać z zapytań REST
  • Czym jest Azure Resource Manager
  • …. i wiele więcej

Azure Portal

Pierwszym z narzędzi, które można wykorzystać do „zabawy” z Azure’m, to Azure Portal. Jeżeli uważnie śledziłeś poprzednie wpisy oraz wykonywałeś zadania praktyczne, to miałeś już z portalem styczność. Azure Portal pozwala tworzyć, konfigurować oraz monitorować wszelkie rozwiązania Azure’owe z poziomu ujednoliconej konsoli. Korzystając z tego narzędzia mamy dostęp do takich funkcjonalności jak:

  • Przeszukiwanie zasobów oraz dostęp do dokumentacji
  • Zarządzanie zasobami
  • Tworzenie listy ulubionych serwisów
  • Tworzenie personalizowanych tablic – dashboard
  • Dostęp do Cloud Shella
  • Otrzymywanie powiadomień

Więcej informacji: https://docs.microsoft.com/pl-pl/azure/azure-portal/azure-portal-overview

Demo – Azure Portal

Strona Główna

  1. W celu otwarcia portalu Azure’a kierujemy się pod adres www.portal.azure.com, gdzie zostaniemy poproszeni o wybranie z listy konta lub zalogowanie się nowym kontem.

2. W kolejnych krokach zostaniemy poproszeni o podanie loginu, hasła i dodatkowej metody uwierzytelnienia o ile taka jest wymagana.

3. Dostaniemy się na stronę główną lub nasz dashboard. W poniższym przykładzie opisujemy stronę główną.

NumerOpis
1Pasek wyszukiwania
2Skrót do kolejno: Cloud Shell, Katalogi oraz subskrypcje, notyfikacje, ustawienia portalu, pomoc, feedback, ustawienia konta
3Pasek ulubionych
4Ostatnio używane serwisy
5Ostatnio używane zasoby
6Pasek nawigacyjny

Pasek ulubionych

  1. W pasku ulubionych serwisów możemy dodawać kolejne serwisy, zmieniać ich kolejność oraz usuwać niepotrzebne.
  2. W celu zmiany kolejności wystarczy złapać za ikonę danego serwisu i ją przenieść w pożądane miejsce.

3. W celu usunięcia, należy najechać na niechcianą usługę i odznaczyć gwiazdkę.

4. W celu dodania usługi, robimy odwrotnie niż w przypadku usunięcia. Wyszukujemy usługę, najeżdżamy na nią myszką oraz zaznaczamy gwiazdkę.

Dashboard

  1. W celu otworzenia strony Dashboardu, możemy zjechać niżej do paska nawigacji i wybrać Dashboard

2. Otworzy nam się strona wcześniej stworzonego Dashboard’u lub domyślnego, przygotowanego przez Microsoft.

3. W celu stworzenia nowego Dashboardu klikamy New Dashboard -> Blank, a następnie możemy dodać interesujące nas informacje z listy po prawej stronie.

Azure Cloud Shell

Azure Cloud Shell jest to interaktywny, dostępny z poziomu przeglądarki wiersz poleceń, który może zostać wykorzystany do zarządzania platformą Microsoft’u. Narzędzie to pozwala na wybór pomiędzy obsługą za pomocą PowerShella lub Basha. Do funkcjonalności tego narzędzia należą:

  • Wymaga nowego lub istniejącego Azure File Share, storage account oraz resource grupy
  • Z jego poziomu posiadamy dostęp do graficznego edytora tekstu
  • Automatyczne uwierzytelnienie
  • Cloud Shell jest uruchamiany na hoście tymczasowym dostarczanym dla 1 sesji, dla 1 użytkownika.

Więcej informacji: https://docs.microsoft.com/pl-pl/azure/cloud-shell/overview

Demo Azure Cloud Shell

  1. W celu otwarcia Azure Cloud Shell wybieramy ikonkę znajdującą się w prawym górnym rogu portalu.

2. Jak już wiesz, wymagane jest stworzenie Azure storage account, więc jesteśmy o to poproszeni podczas pierwszego użycia.

3. Wybieramy subskrypcję, w której storage account powinien powstać i klikamy „Create”. W ciągu paru minut powinien powstać storage account i automatycznie otworzy się terminal.

4. W lewym górnym rogu terminala możemy wybrać czy chcemy korzystać z Basha, czy Azure PowerShell. Na daną chwilę wybierzmy PowerShell’a

5. Uwierzytelnienie powinno wykonać się automatycznie, więc od razu możemy spróbować wykonać jakąś komendę.

6. Jeżeli komenda wykona się poprawnie to możemy przejść teraz do Basha i wypróbować jego działalność.

7. Ostatnia z funkcjonalności jaką wypróbujemy, to wbudowany graficzny edytor tekstu.

Azure PowerShell

Azure PowerShell jest to moduł, który pozwala na korzystanie z Windows PowerShell lub PowerShell Core w celu zarządzania platformą Azure. Możemy używać tego modułu na dwa sposoby: otwierając Azure Cloud Shell, który posiada wbudowany moduł Az, lub za pomocą lokalnej instalacji modułu na maszynie takiej jak: Linux, macOS lub Windows. Wspomniałem moduł Az, jest to formalna nazwa na moduł Azure PowerShell. Instalując ten moduł, otrzymujemy dostęp do setek komend, które pozwalają kontrolować niemal każdy z zasobów istniejący na platformie.

Przykładowa komenda:

New-AzResourceGroup -name <name> -location <location>

Więcej informacji: https://docs.microsoft.com/en-us/powershell/azure/new-azureps-module-az?view=azps-7.1.0Demo Azure PowerShell

Azure CLI

Jest to rozwiązanie wiersza poleceń, które pozwala na zarządzanie platformą Microsoft’u. Podobnie do PowerShell’a, Azure CLI współpracuje z Linux’em, macOS czy Windows’em. Kolejnym z podobieństw do modułu Azure PowerShell, jest fakt, iż za pomocą Azure CLI możemy kontrolować niemal wszystkie zasoby istniejące na platformie Azure. Korzystając z Azure CLI możemy wykonywać pojedyncze komendy lub pisać całe skrypty za pomocą składni cmd (Windows) lub Bash.

Przykładowa komenda:

az group create --name <name> --location <location>

Więcej informacji: https://docs.microsoft.com/pl-pl/cli/azure/what-is-azure-cli

REST API

Możemy zarządzać platformą Azure jeszcze w jeden sposób. REST API są to endpointy usług Azure’a, które w pełni wspierają operacje HTTP. Dzięki nim, możemy tworzyć, usuwać, konfigurować czy pobierać informacje na temat usług platformy Microsoft’u.

Więcej informacji: https://docs.microsoft.com/pl-pl/rest/api/azure/

Demo Azure REST API

  1. W celu wypróbowania REST API, możemy otworzyć oficjalną dokumentację Microsoft’u i wypróbować dane zapytanie. https://docs.microsoft.com/pl-pl/rest/api/compute/virtual-machines/get
  2. Klikamy przycisk Wypróbuj i wypełniamy wymagane parametry

3. Jeżeli podamy wszelkie parametry poprawnie, to otrzymamy kod odpowiedzi:200 oraz zawartość odpowiedzi.

Azure Resource Manager

Tworząc rozwiązanie w ekosystemie Microsoft’u, zazwyczaj jesteśmy zobligowani do stworzenia licznych komponentów, które jako zbiór tworzą nasze rozwiązanie. Takim przykładem może być wirtualna maszyna, która do poprawnego funkcjonowania potrzebuje komponentów takich jak: wirtualna sieć, wirtualna maszyna czy karta sieciowa. Podobnym przykładem może być aplikacja webowa, która będzie wymagać dodatkowej bazy danych. Tworząc takie rozwiązanie, nie tworzymy zbioru niezależnych zasobów, ale w pełni zależny i połączony ze sobą system instancji usług Azure’a. W związku z tym, nie chcemy zarządzać czy monitorować pojedynczych usług takiego rozwiązania, ale cały zbiór. Taką funkcjonalność dostarcza nam Azure Resource Manager (ARM). ARM pozwala na konfigurowanie czy tworzenie rozwiązań, jako zbiór pojedynczych serwisów w jednej skoordynowanej operacji. Azure Resource Manager bazuję na szablonach, które opisują w sposób deklaratywny nasze rozwiązania. Dodatkowo ARM jest warstwą, która tworzy swego rodzaju połączenie między narzędziami a usługami Azure’a. Dzięki temu rozwiązaniu, możemy w łatwy sposób konfigurować usługi Azure’a za pomocą opisanych wyżej narzędzi. Co więcej, Azure Resource Manager daje nam możliwość do korzystania z funkcjonalności takich jak RBAC, tagowanie zasobów czy zbieranie informacji na temat kosztów.

Resource Manager request model
https://docs.microsoft.com/pl-pl/azure/azure-resource-manager/management/overview

W tym momencie warto również poznać parę pojęć, które są podstawą działania warstwy ARM.

Resource (zasób) – element, którym można zarządzać, który jest dostępny za pośrednictwem platformy Azure. Przykładami zasobów są maszyny wirtualne, konta magazynu, aplikacje sieci Web, bazy danych i sieci wirtualne. Przykładami zasobów są również grupy zasobów, subskrypcje, grupy zarządzania i tagi.

Resource group – kontener, który zawiera pokrewne zasoby dla rozwiązania platformy Azure. Grupa zasobów obejmuje te zasoby, którymi chcesz zarządzać jako grupą. 

Resource provider – usługa dostarczana do zasobów platformy Azure. Na przykład często spotykany dostawca zasobów to Microsoft.Compute, który dostarcza zasób maszyn wirtualnych. Część z nich jest automatycznie uruchamianych na platformie, a niektóre wymagają manualnego uruchomienia usługi dostawcy.

Template (szablon) – plik JSON (JavaScript Object Notation), który definiuje jeden lub więcej zasobów do wdrożenia w grupie zasobów, subskrypcji, grupie zarządzania lub dzierżawie. Za pomocą tego szablonu można stale i wielokrotnie wdrażać zasoby.

Składnia deklaratywna – składnia, która umożliwia określenie „Tutaj zamierzam utworzyć” bez konieczności pisania sekwencji poleceń programistycznych w celu utworzenia tego polecenia. Szablon Menedżer zasobów jest przykładem składni deklaratywnej. W pliku definiujesz właściwości infrastruktury, która ma być wdrażana na platformie Azure

Więcej informacji: https://docs.microsoft.com/pl-pl/azure/azure-resource-manager/management/overview

Resource Group

Resource group to kontener, który zawiera zbiór lub pojedynczy zasób stworzony w Azure. Jest to kontener logiczny, dzięki któremu możemy zarządzać zasobami jako grupa. To Ty decydujesz jakie zasoby znajdą się w resource grupie. Takie podejście pozwala na stworzenie ustandaryzowanego podejścia do grup zasobów. Przykładowo, każda pojedyncza aplikacja posiada swoją resource grupę, a wszelkie zasoby z nią powiązane są jej zawartością. Grupa zasobów przechowuje metadane dotyczące zasobów. Dlatego określając lokalizację grupy zasobów, określasz miejsce przechowywania tych metadanych. Ze względu na zgodność z przepisami może być konieczne zapewnienie, że Twoje dane są przechowywane w określonym regionie.

Locks

Resource Manager Locks jest to funkcjonalność, która pozwala na ochronę przed przypadkowym usunięciem danych z platformy Azure. Tę funkcjonalność możemy włączyć na poziomie subskrypcji, resource grupy lub pojedynczego zasobu. Blokady dzielimy na dwa różne rodzaje:

Read-Only locks – Blokuje użytkownikom możliwość jakiejkolwiek zmiany na zasobie. Tak jak nazwa mówi, pozwala tylko na dostęp read-only.

Delete locks – Blokuje użytkownikom możliwość usunięcia zasobu.

Tylko role RBAC takie jak, Owner czy User Access Administrator, pozwalają na tworzenie oraz usuwanie blokad.

Quotas

W Azure mamy zadeklarowane domyślne limity na poziomie subskrypcji. Mogą się one różnic w zależności od rodzaju subskrypcji, z jakiej korzystamy. Dla subskrypcji Enterprise Agreement będzie inny limit niż dla subskrypcji studenckiej. Przykładem takiego limitu jest maksymalna ilość vCPU, które możemy użyć w danym regionie. Limity dzielimy na dwa rodzaje: hard limits oraz soft limits. Hard limity są to limity, których nie możemy zmienić, przykładem takiego limitu jest liczba resource grup w jednej subskrypcji (980). Soft limitem są te, które możemy zmieniać, a jednym z nich jest podany już przykład z vCPU.

DEMO: Zarządzanie zasobami

Tworzenie resource grupy

  1. Otwieramy portal Azure i klikamy „Create a resource”

2. Wyszukujemy „resource group” i klikamy create

3. Podajemy wymagane wartości, czyli nazwę resource groupy oraz region gdzie będą przetrzymywane metadane. Następnie klikamy „review and create”

4. Po chwili resource grupa powinna zostać stworzona.

Tworzenie „Management Lock”

  1. Wyszukujemy zasób, grupę lub subskrypcję, na której poziomie chcemy zaaplikować naszą blokadę.
  2. Na pasku zakładek, po lewej stronie znajdziemy „Locks”

3. Klikamy „Add”

4. Nazywamy naszą blokadę oraz wybieramy jej typ, a następnie klikamy „OK”

Tworzenie zasobu

  1. Otwieramy portal Azure i klikamy „Create a resource”

2. Wyszukujemy usługę, która nas interesuje i klikamy „Create”. W naszym przypadku będzie to storage account

3. Wypełniamy wymagane parametry i klikamy „Review & Create”

4. Następnie „Create” i po paru minutach zasób powstanie.

Przenoszenie zasobu

  1. Zmierzamy do zasobu już stworzonego, który chcemy przenieść.
  2. Na ekranie podsumowującym nasz zasób klikamy przycisk „Move”

3. Wybieramy opcję przeniesienia do innej resource grupy, a następnie zaznaczamy, do jakiej resource grupy chcemy przenieść nasz zasób. Klikamy „Next”, czekamy na walidację naszego zasobu i klikamy ponownie „Next”.

4. Potwierdzamy zmiany i klikamy „Move”

Usuwanie zasobu

  1. Zmierzamy do zasobu już stworzonego, który chcemy usunąć.
  2. Na ekranie podsumowującym wybieramy opcję „Delete”.

3. Potwierdzamy naszą chęć usunięcia zasobu, wpisując jego nazwę do pola tekstowego. Klikamy „Delete”.

Zwiększenie Quota’y

  1. W celu zwiększenie limitu na poziomie subskrypcji, wybieramy się do ekranu podsumowującego subskrypcję. Możemy tego dokonać, wyszukując na pasku wyszukiwań „Subscriptions”
  2. Na liście zakładek wyszukujemy „Quotas and Usage”

3. Wybieramy limit, który nas interesuje, w naszym przykładzie będzie to regionalny limit na wirtualne CPU

4. Podajemy limit, który nas interesuje i klikamy „Save and continue”

5. Po paru minutach, limit zostanie zwiększony

ARM Templates

Azure Resource Manager Template służy do konfiguracji wdrożenia na platformie Azure. Dzięki szablonom, jesteś w stanie wdrożyć na poziomie resource grupy wiele zasobów w jednej operacji. Szablon jest plikiem notacji JSON (JavaScript Object Notation), który definiuje infrastrukturę i konfigurację projektu. Szablon ma składnię deklaracyjną, która pozwala na określenie, co zamierzasz wdrożyć bez konieczności pisania sekwencji poleceń programistycznych w celu utworzenia go. W szablonie określasz zasoby do wdrożenia oraz właściwości tych zasobów. Co ważne, wszystkie wdrożenia w platformie Azure, docelowo są wdrażane za pomocą szablonu. Takie podejście, to wielki krok w kierunku standaryzacji. Nie ma znaczenia, w jaki sposób probujesz wdrożyć zasób na platformie Azure, czy to będzie SDK, Portal czy zapytanie restowe, na końcu i tak powstanie szablon ARM. ARM Template pozwala na tworzenie skomplikowanych wdrożeń, zawierających wiele zależności oraz dodatkowych konfiguracji podczas jednego wdrożenia.

Kolejnymi plusami wynikającymi z używania szablonów są:

  • Możliwość wykorzystywania szablonów modularnych
  • Możliwość rozszerzenia szablonu o skrypty takie jak PowerShell lub Bash
  • Możliwość testowania szablonów
  • Wbudowana weryfikacja szablonu
  • Ustandaryzowanie wdrożeń
  • Ponowne wykorzystanie szablonów
  • Szablony są kodem – co pozwala na przykład na kontrolę wersji GIT
Template deployment comparison

ARM Template Schema

Jak już wiemy, ARM’y są napisane w języku JSON, który pozwala na pokazanie danych/zasobów jako obiekty w tekście. W głównej mierze ARM Template jest zbiorem par klucz-wartość. Przykładową schemą szablonu jest poniższy kod, poniżej znajdziesz również opis każdej z sekcji:


{
 "$schema": "http://schema.management.azure.com/schemas/2019-04- 01/
deploymentTemplate.json#",
 "contentVersion": "",
 "parameters": {},
86 
 "variables": {},
 "functions": [],
 "resources": [],
 "outputs": {}
}
NazwaWymaganeOpis
$schemaTakLokalizacja pliku schemy opisujący wersje języka szablonu. W przypadku ARM Template, korzystaj z powyższego przykładu
contentVersionTakWersja szablonu, która pozwala Ci na kontrolowanie zmian w szablonie oraz wdrożenia poprawnej wersji.
parametersNieWartości, które są podawane podczas wdrożenia oraz wykorzystywane w dalszych częściach szablonu. Przykładem parametru może być nazwa wirtualnej maszyny.
variablesNieWartości, które są wykorzystywane w dalszych częściach szablonu
functionsNieFunkcje zadeklarowane w szablonie
resourcesTakOpis zasobów, które powinny zostać wdrożone
outputsNieWartości, które są zwracane po wdrożeniu.

DEMO: ARM Templates

W poniższym demo nie będziemy pisać szablonu ARM, ale wykorzystamy ogólnie dostępną bazę już gotowych szablonów. Wykonamy wdrożenie na dwa sposoby: korzystając z opcji wdrożenia z poziomu portalu oraz z poziomu PowerShella.

  1. Przechodzimy na stronę, gdzie znajdziemy przykładowe szablony ARM do użycia. Szablony szybkiego startu platformy Azure (microsoft.com)
  2. Wyszukujemy szablon, który nas interesuje – w naszym przykładzie będzie to szablon tworzący „Storage Account”

3. Wybierając szablon, ukaże nam się strona opisująca dane rozwiązanie. Na górze strony znajdziemy również odnośniki do wdrożenia na portalu oraz GitHub’a.

4. Klikamy „Deploy to Azure” i po chwili pojawi nam się ekran wdrożenia, gdzie zostaniemy poproszeni o podanie parametrów. Podajemy wszelkie brakujące dane, a następnie klikamy „Review & Create”

5. Następuje walidacja, po której możemy wdrożyć nasz zasób. Na ekranie wdrożenia możemy również zobaczyć szablon, który posłużył w celu stworzenia naszego zasobu.

PowerShell

  1. W przypadku wdrożenia za pomocą PowerShella, możemy odwołać się do szablonu dostępnego w sieci. W tym celu otwieramy terminal PowerShella.
  2. Na stronie podsumowującej szablon znajdziemy dokładną komendę, jaką należy użyć w celu jego wdrożenia. W naszym przypadku będzie to:
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

3. Oczywiście, brakuje w niej parametrów. Możemy je dodać za pomocą referencji do pliku parametrów lub dodając je ręcznie z poziomu komendy. Docelowa komenda nabiera takiego kształtu:

New-AzResourceGroupDeployment -ResourceGroupName testaz104kurs -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json -storageAccountName testazarmpowershell -location westeurope -storageAccountType Standard_LRS

4. A w wyniku użycia tej komendy w terminalu PowerShella, powinniśmy otrzymać następującą wiadomość zwrotną:

Praca domowa – Lab

Dodatkowe materiały do nauki

Spis treści:

Wpis 00 – Wprowadzenie https://maciejpoborca.pl/2022/01/03/az-104-kurs-wprowadzenie/
Wpis 01 – Zarządzanie Tożsamością https://maciejpoborca.pl/2022/01/08/azure-az-104-kurs-zarzadzanie-tozsamoscia/
Wpis 02 – Zarządzanie oraz zgodność https://maciejpoborca.pl/2022/01/17/azure-az-104-kurs-zarzadzanie-oraz-zgodnosc/
Wpis 03 – Zarządzanie usługami Azure’a https://maciejpoborca.pl/2022/02/02/azure-az-104-kurs-zarzadzanie-uslugami-azurea/
Wpis 04 – Administracja infrastrukturą sieciową [Azure] AZ-104 Kurs: Administracja infrastrukturą sieciową • Maciej Poborca.
Wpis 05 – Administracja połączeniem między lokacjami (Początek czerwca)
Wpis 06 – Administracja ruchem sieciowym (Początek lipca)
Wpis 07 – Administracja magazynami Azure (Początek sierpnia)
Wpis 08 – Administracja Wirtualnymi Maszynami na portalu Azure (Początek września)
Wpis 09 – Administracja usług bezserwerowych (Początek października)
Wpis 10 – Administracja usług ochrony danych (Początek listopada)
Wpis 11 – Administracja rozwiązań monitorujących (Początek grudnia)
Wpis przygotowujący do egzaminu (Koniec roku)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.