Co to jest usługa Azure Resource Manager?

Ukończone

Poświęciliśmy trochę czasu zespołowi na naukę korzyści z infrastruktury jako kodu i różnych dostępnych metod. Twoja firma rozwija się w szybkim tempie, a Twój zespół wie, że wdroży znaczną liczbę zasobów na platformie Azure. Jako zespół zdecydowano, że deklaratywna infrastruktura jako kod jest właściwym podejściem do aprowizacji zasobów. Zespół nie chce obsługiwać skryptów, które wyświetlają listę każdego kroku wdrażania. Przed rozpoczęciem procesu tworzenia pierwszego szablonu należy zrozumieć, jak działa usługa Azure Resource Manager. Badanie typów szablonów, które są dostępne do użycia z platformą Azure, ułatwi określenie następnych kroków strategii infrastruktury jako kodu.

W tej lekcji poznasz usługę Resource Manager i dwa typy szablonów usługi Resource Manager.

Pojęcia dotyczące usługi Azure Resource Manager

Azure Resource Manager to usługa używana do wdrażania zasobów i zarządzania nimi na platformie Azure. Za pomocą usługi Resource Manager można tworzyć, aktualizować i usuwać zasoby w ramach subskrypcji platformy Azure. Możesz korzystać z usługi Resource Manager przy użyciu wielu narzędzi, w tym witryny Azure Portal. Usługa Resource Manager udostępnia również szereg innych funkcji, takich jak kontrola dostępu, inspekcja i tagowanie, które ułatwiają zarządzanie zasobami po wdrożeniu.

Terminologia

Podczas rozpoczynania podróży do chmury przy użyciu usługi Resource Manager ważne jest, aby zrozumieć niektóre terminy i pojęcia:

  • Zasób: zarządzany element dostępny na platformie Azure. Przykładami zasobów są sieci wirtualne, maszyny wirtualne, konta magazynu, aplikacje internetowe i bazy danych.

  • Grupa zasobów: kontener logiczny, który zawiera powiązane zasoby dla rozwiązania platformy Azure. Grupa zasobów zawiera zasoby, którymi chcesz zarządzać jako grupa. Większość zasobów platformy Azure znajduje się w grupie zasobów. Decydujesz, które zasoby należą do grupy zasobów na podstawie tego, co jest najbardziej zrozumiałe dla twojego rozwiązania.

    Uwaga

    Niewielka liczba zasobów nie jest zawarta w grupach zasobów. Te typy zasobów są przeznaczone do określonych celów, takich jak zarządzanie kontrolą dostępu i wymuszanie zasad. Więcej informacji na temat tych zasobów znajdziesz w późniejszym module.

  • Subskrypcja: logiczny kontener i granica rozliczeń dla zasobów i grup zasobów. Każdy zasób i grupa zasobów platformy Azure jest skojarzony tylko z jedną subskrypcją.

  • Grupa zarządzania: kontener logiczny używany do zarządzania więcej niż jedną subskrypcją. Można zdefiniować hierarchię grup zarządzania, subskrypcji, grup zasobów i zasobów, aby efektywnie zarządzać dostępem, zasadami i zgodnością przez dziedziczenie.

  • Szablon usługi Azure Resource Manager (szablon usługi ARM): plik szablonu definiujący co najmniej jeden zasób do wdrożenia w grupie zasobów, subskrypcji, grupie zarządzania lub dzierżawie. Szablon umożliwia wdrażanie zasobów w spójny i powtarzalny sposób. Istnieją dwa typy plików szablonów usługi ARM: JSON i Bicep. Ten moduł koncentruje się na Bicep.

Świadczenia

Usługa Resource Manager oferuje wiele korzyści i możliwości związanych z aprowizowaniem zasobów infrastruktury jako kodu:

  • Zasoby w rozwiązaniu można wdrażać, zarządzać nimi i monitorować jako grupę, a nie pojedynczo.
  • Możesz ponownie wdrożyć rozwiązanie w całym cyklu projektowania i mieć pewność, że zasoby są wdrażane w spójnym stanie.
  • Infrastrukturę można zarządzać za pomocą szablonów deklaratywnych zamiast za pomocą skryptów.
  • Możesz określić zależności zasobów, aby upewnić się, że zasoby są wdrażane w odpowiedniej kolejności.

Operacje: płaszczyzna sterowania i płaszczyzna danych

Na platformie Azure można wykonywać dwa typy operacji: operacje płaszczyzny sterowania i operacje płaszczyzny danych. Użyj płaszczyzny sterowania, aby zarządzać zasobami w ramach subskrypcji. Użyj płaszczyzny danych, aby uzyskać dostęp do funkcji udostępnianych przez zasób.

Na przykład używasz operacji płaszczyzny sterowania do utworzenia maszyny wirtualnej, ale używasz operacji płaszczyzny danych do łączenia się z maszyną wirtualną przy użyciu protokołu RDP (Remote Desktop Protocol).

Płaszczyzna sterowania

Gdy wysyłasz żądanie z dowolnego narzędzia, interfejsów API lub zestawów SDK platformy Azure, usługa Resource Manager odbiera, uwierzytelnia i autoryzuje żądanie. Następnie wysyła żądanie do dostawcy zasobów platformy Azure, który podejmuje żądaną akcję. Ponieważ wszystkie żądania są obsługiwane za pośrednictwem tego samego interfejsu API, widoczne są spójne wyniki i możliwości we wszystkich różnych narzędziach dostępnych na platformie Azure.

Na poniższej ilustracji przedstawiono rolę, jaką odgrywa usługa Resource Manager w obsłudze żądań platformy Azure:

Diagram that shows how Azure Resource Manager accepts requests from all Azure clients and libraries.

Wszystkie żądania operacji płaszczyzny sterowania są wysyłane do adresu URL usługi Resource Manager. Na przykład operacja tworzenia lub aktualizowania maszyn wirtualnych jest operacją płaszczyzny sterowania. Oto adres URL żądania dla tej operacji:

PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01

Płaszczyzna sterowania rozumie, które zasoby należy utworzyć i które zasoby już istnieją. Usługa Resource Manager rozumie różnicę między tymi żądaniami i nie tworzy identycznych zasobów ani nie usuwa istniejących zasobów, chociaż istnieją sposoby zastąpienia tego zachowania.

Płaszczyzna danych

Po uruchomieniu operacji płaszczyzny danych żądania są wysyłane do określonego punktu końcowego w ramach subskrypcji platformy Azure. Na przykład operacja Detect Language w usługach Azure AI to operacja płaszczyzny danych, ponieważ adres URL żądania to:

POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages

Funkcje usługi Resource Manager, takie jak kontrola dostępu i blokady, nie zawsze mają zastosowanie do operacji płaszczyzny danych. Na przykład użytkownik może nie mieć uprawnień do zarządzania maszyną wirtualną przy użyciu płaszczyzny sterowania, ale użytkownik może zalogować się do systemu operacyjnego.

Co to są szablony usługi ARM?

Szablony usługi Azure Resource Manager to pliki definiujące infrastrukturę i konfigurację wdrożenia. Podczas pisania szablonu usługi ARM należy zastosować podejście deklaratywne do aprowizacji zasobów. Te szablony opisują każdy zasób we wdrożeniu, ale nie opisują sposobu wdrażania zasobów. Po przesłaniu szablonu do usługi Resource Manager na potrzeby wdrożenia płaszczyzna sterowania może wdrożyć zdefiniowane zasoby w zorganizowany i spójny sposób. W poprzedniej lekcji przedstawiono różnice między kodem imperatywnego a kodem deklaratywnym.

Dlaczego warto używać szablonów usługi ARM?

Istnieje wiele korzyści związanych z używaniem szablonów usługi ARM — JSON lub Bicep — na potrzeby aprowizacji zasobów.

  • Powtarzalne wyniki: szablony usługi ARM są idempotentne, co oznacza, że można wielokrotnie wdrażać ten sam szablon i uzyskać ten sam wynik. Szablon nie duplikuje zasobów.

  • Orkiestracja: po przesłaniu wdrożenia szablonu do usługi Resource Manager zasoby w szablonie są wdrażane równolegle. Ten proces umożliwia szybsze zakończenie wdrożeń. Usługa Resource Manager organizuje te wdrożenia w odpowiedniej kolejności, jeśli jeden zasób zależy od innego.

  • Wersja zapoznawcza: narzędzie analizy co-jeżeli dostępne w programie Azure PowerShell i interfejsie wiersza polecenia platformy Azure umożliwia wyświetlenie podglądu zmian w środowisku przed wdrożeniem szablonu. To narzędzie zawiera szczegółowe informacje na temat tworzenia, modyfikowania i usuwania, które zostaną wprowadzone przez szablon.

  • Testowanie i walidacja: możesz użyć narzędzi takich jak linter Bicep, aby sprawdzić jakość szablonów przed wdrożeniem. Szablony usługi ARM przesłane do usługi Resource Manager są weryfikowane przed procesem wdrażania. Ta walidacja powiadamia o błędach w szablonie przed aprowizowaniem zasobów.

  • Modułowość: szablony można podzielić na mniejsze składniki i połączyć je razem we wdrożeniu.

  • Integracja ciągłej integracji/ciągłego wdrażania: Szablony usługi ARM można zintegrować z wieloma narzędziami ciągłej integracji/ciągłego wdrażania, takimi jak Azure DevOps i GitHub Actions. Za pomocą tych narzędzi można wersjonować szablony za pomocą kontroli źródła i potoków wydania kompilacji.

  • Rozszerzalność: za pomocą skryptów wdrażania można uruchamiać skrypty powłoki Bash lub programu PowerShell z poziomu szablonów usługi ARM. Te skrypty wykonują zadania, takie jak operacje płaszczyzny danych, podczas wdrażania. Dzięki rozszerzalności można użyć jednego szablonu usługi ARM do wdrożenia kompletnego rozwiązania.

Szablony JSON i Bicep

Obecnie dostępne są dwa typy szablonów usługi ARM: szablony JSON i szablony Bicep. JavaScript Object Notation (JSON) to standardowy format pliku, którego można używać w wielu językach. Bicep to nowy język specyficzny dla domeny, który został niedawno opracowany do tworzenia szablonów usługi ARM przy użyciu łatwiejszej składni. Możesz użyć dowolnego formatu szablonu dla szablonów usługi ARM i wdrożeń zasobów.