Was ist Azure Resource Manager?

Abgeschlossen

Sie haben mit Ihrem Team einige Zeit damit verbracht, die Vorteile von Infrastructure-as-Code und die verschiedenen verfügbaren Ansätze kennenzulernen. Ihr Unternehmen wächst in rasantem Tempo und Ihr Team weiß, dass es eine beträchtliche Anzahl von Ressourcen in Azure bereitstellen wird. Als Team haben Sie entschieden, dass der deklarative Ansatz „Infrastructure-as-Code“ der richtige Ansatz für die Ressourcenbereitstellung ist. Das Team möchte keine Skripts pflegen, in denen jeder Bereitstellungsschritt aufgeführt ist. Bevor Sie mit dem Erstellen Ihrer ersten Vorlage beginnen, müssen Sie die Funktionsweise von Azure Resource Manager verstehen. Durch Untersuchung der für Azure verfügbaren Arten von Vorlagen können Sie die nächsten Schritte in Ihrer Infrastructure-as-Code-Strategie festlegen.

In dieser Lerneinheit erfahren Sie mehr über Resource Manager und die beiden Arten von Resource Manager-Vorlagen.

Azure Resource Manager-Konzepte

Azure Resource Manager ist der Dienst zum Bereitstellen und Verwalten von Ressourcen in Azure. Sie können mit Resource Manager Ressourcen in Ihrem Azure-Abonnement erstellen, aktualisieren und löschen. Sie können mithilfe von Resource Manager mit vielen Tools interagieren, einschließlich des Azure-Portals. Resource Manager bietet auch eine Reihe weiterer Features, z. B. Zugriffssteuerung, Überwachung und Tagging, um die Verwaltung Ihrer Ressourcen nach der Bereitstellung zu unterstützen.

Begriff

Wenn Sie Ihren Weg in die Cloud mit Resource Manager angehen, ist es wichtig, einige Begriffe und Konzepte zu verstehen:

  • Ressource: Ein verwaltbares Element, das auf der Azure-Plattform verfügbar ist. Virtuelle Netzwerke, virtuelle Computer, Speicherkonten, Web-Apps und Datenbanken sind Beispiele für Ressourcen.

  • Ressourcengruppe: Container, der zu einer Azure-Lösung gehörige Ressourcen enthält. Die Ressourcengruppe enthält Ressourcen, die Sie als Gruppe verwalten möchten. Die meisten Azure-Ressourcen sind in einer Ressourcengruppe enthalten. Je nachdem, was für Ihre Organisation am sinnvollsten ist, entscheiden Sie, welche Ressourcen zu einer Ressourcengruppe gehören.

    Hinweis

    Eine kleine Anzahl von Ressourcen ist nicht in Ressourcengruppen enthalten. Diese Ressourcentypen sind für bestimmte Zwecke wie Verwalten der Zugriffssteuerung und Erzwingen von Richtlinien vorgesehen. In einem späteren Modul erfahren Sie mehr über diese Ressourcen.

  • Abonnement: Ein logischer Container und eine Abrechnungsgrenze für Ihre Ressourcen und Ressourcengruppen. Jede Azure-Ressource und -Ressourcengruppe ist nur einem Abonnement zugeordnet.

  • Verwaltungsgruppe: Ein logischer Container zum Verwalten mehrerer Abonnements. Sie können eine Hierarchie mit Verwaltungsgruppen, Abonnements, Ressourcengruppe und Ressourcen definieren, um Zugriff, Richtlinien und Compliance über Vererbung effizient zu verwalten.

  • Azure Resource Manager-Vorlage (ARM-Vorlage): Eine Vorlagendatei, mit der eine oder mehrere Ressourcen zum Bereitstellen einer Ressourcengruppe, eines Abonnements, einer Verwaltungsgruppe oder eines Mandanten definiert werden. Sie können mithilfe der Vorlage die Ressourcen konsistent und wiederholbar bereitstellen. Es gibt zwei Arten von ARM-Vorlagendateien: JSON und Bicep. Daher konzentrieren wir uns in diesem Modul auf Bicep.

Vorteile

Resource Manager bietet viele Vorteile und Möglichkeiten im Zusammenhang mit der Infrastruktur-as-Code-Bereitstellung von Ressourcen:

  • Sie können die Ressourcen in Ihrer Lösung als Gruppe statt einzeln bereitstellen, verwalten und überwachen.
  • Sie können Ihre Lösung während des gesamten Entwicklungslebenszyklus mit der Gewissheit wiederholt bereitstellen, dass Ihre Ressourcen konsistent bereitgestellt werden.
  • Sie können Ihre Infrastruktur mit deklarativen Vorlagen statt mit Skripts verwalten.
  • Sie können Ressourcenabhängigkeiten angeben, um sicherzustellen, dass die Ressourcen in der richtigen Reihenfolge bereitgestellt werden.

Vorgänge: Steuerungsebene und Datenebene

Sie können zwei Arten von Vorgängen in Azure ausführen, und zwar auf Steuerungsebene und auf Datenebene. Auf Steuerungsebene verwalten Sie Ressourcen in Ihrem Abonnement. Auf Datenebene greifen Sie auf Funktionen zu, die von einer Ressource verfügbar gemacht werden.

Das Erstellen eines virtuellen Computer ist z. B. ein Vorgang auf Steuerungsebene, aber das Herstellen einer Verbindung mit dem virtuellen Computer über RDP (Remotedesktopprotokoll) erfolgt auf Datenebene.

Steuerungsebene

Wenn ein Benutzer eine Anforderung über eines der Azure-Tools, eine der APIs oder eines der Softwareentwicklungskits (Software Development Kits, SDKs) sendet, wird diese von Resource Manager empfangen, authentifiziert und autorisiert. Anschließend wird die Anforderung an den Azure-Ressourcenanbieter gesendet, der die angeforderte Aktion ausführt. Da alle Anforderungen über die gleiche API abgewickelt werden, erhalten Sie in all den verschiedenen Tools, die in Azure verfügbar sind, konsistente Ergebnisse und Möglichkeiten.

Die folgende Abbildung zeigt die Rolle von Resource Manager bei der Verarbeitung von Azure-Anforderungen:

Diagramm, das zeigt, wie der Azure Resource Manager Anforderungen von allen Azure-Clients und -Bibliotheken annimmt.

Alle Vorgangsanforderungen auf Steuerungsebene werden an eine Resource Manager-URL gesendet. Beispielsweise erfolgt der Erstellungs- oder Aktualisierungsvorgang für virtuelle Computer auf Steuerungsebene. Hier ist die Anforderungs-URL für diesen Vorgang:

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

Die Steuerungsebene erkennt, welche Ressourcen erstellt werden müssen und welche bereits vorhanden sind. Resource Manager erkennt den Unterschied zwischen diesen Anforderungen und erstellt keine identischen Ressourcen oder löscht keine vorhandene Ressourcen, obwohl es Möglichkeiten gibt, dieses Verhalten zu überschreiben.

Datenebene

Beim Starten eines Vorgangs auf Datenebene werden Anforderungen an einen bestimmten Endpunkt in Ihrem Azure-Abonnement gesendet. Beispielsweise ist der Vorgang zur Spracherkennung in Azure KI Services ein Vorgang auf Datenebene, da die Anforderungs-URL wie folgt lautet:

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

Resource Manager-Features wie Zugriffssteuerung und Sperren gelten nicht immer für Vorgänge auf Datenebene. Ein Benutzer hat z. B. möglicherweise nicht die Berechtigung, einen virtuellen Computer über die Steuerebene zu verwalten, kann sich aber beim Betriebssystem anmelden.

Was sind ARM-Vorlagen?

Azure Resource Manager-Vorlagen (ARM) sind Dateien, die die Infrastruktur und Konfiguration Ihrer Bereitstellung definieren. Beim Schreiben einer ARM-Vorlage wählen Sie einen deklarativen Ansatz zur Ressourcenbereitstellung. Diese Vorlagen beschreiben jede Ressource in der Bereitstellung, aber sie beschreiben nicht, wie die Ressourcen bereitgestellt werden. Wenn Sie Ressource Manager eine Vorlage zur Bereitstellung übermitteln, kann die Steuerungsebene die definierten Ressourcen organisiert und konsistent bereitstellen. In der vorherigen Lerneinheit haben Sie die Unterschiede zwischen imperativem und deklarativem Code kennengelernt.

Gründe für ARM-Vorlagen

ARM-Vorlagen, entweder JSON oder Bicep, bieten für die Ressourcenbereitstellung viele Vorteile.

  • Wiederholbare Ergebnisse: ARM-Vorlagen sind idempotent, d. h., Sie können dieselbe Vorlage wiederholt bereitstellen und erhalten stets das gleiche Ergebnis. Die Vorlage dupliziert keine Ressourcen.

  • Orchestrierung: Wenn eine Vorlagenbereitstellung an Resource Manager übermittelt wird, werden die Ressourcen in der Vorlage parallel bereitgestellt. Dadurch können Bereitstellungen schneller erfolgen. Resource Manager orchestriert diese Bereitstellungen in der richtigen Reihenfolge, wenn eine Ressource von einer anderen abhängig ist.

  • Vorschau: Mit dem Was-wäre-wenn-Tool in Azure PowerShell und Azure CLI können Sie Änderungen an Ihrer Umgebung vor der Bereitstellung der Vorlage in der Vorschau anzeigen. Dieses Tool detailliert alle Vorgänge für Erstellungen, Änderungen und Löschungen die von Ihrer Vorlage vorgenommen werden.

  • Tests und Überprüfung: Sie können Tools wie den Bicep-Linter verwenden, um die Qualität Ihrer Vorlagen vor der Bereitstellung zu überprüfen. An Resource Manager übermittelte ARM-Vorlagen werden vor dem Bereitstellungsprozess validiert. Diese Validierung warnt vor der Ressourcenbereitstellung vor etwaigen Fehlern in Ihrer Vorlage.

  • Modularität: Sie können Ihre Vorlagen in kleinere Komponenten aufteilen und diese zum Zeitpunkt der Bereitstellung miteinander verknüpfen.

  • CI/CD-Integration: Ihre ARM-Vorlagen können in mehrere CI/CD-Tools integriert werden, wie z. B. Azure DevOps und GitHub Actions. Sie können mit diesen Tools Vorlagen in der Quellcodeverwaltung mit Versionen versehen und Releasepipelines erstellen.

  • Erweiterbarkeit: Mithilfe von Bereitstellungsskripts können Sie Bash- oder PowerShell-Skripts in Ihren ARM-Vorlagen ausführen. Diese Skripts führen zum Bereitstellungszeitpunkt Aufgaben wie Vorgänge auf Datenebene aus. Dank Erweiterbarkeit können Sie mit einer einzelnen ARM-Vorlage eine vollständige Lösung bereitstellen.

JSON- und Bicep-Vorlagen

Derzeit stehen zwei Arten von ARM-Vorlagen zur Verfügung: JSON-Vorlagen und Bicep-Vorlagen. JavaScript Object Notation (JSON) ist ein Dateiformat mit offenem Standard, das von mehreren Sprachen genutzt werden kann. Bicep ist eine neue domänenspezifische Sprache, die kürzlich mithilfe einer einfacheren Syntax für die Erstellung von ARM-Vorlagen entwickelt wurde. Sie können beide Vorlagenformate für Ihre ARM-Vorlagen und Ressourcenbereitstellungen einsetzen.