Verwenden von Infrastruktur als Code zum Aktualisieren von Azure-Zielzonen
In diesem Artikel werden die Vorteile der Verwendung von Infrastruktur als Code (IaC) zum Aktualisieren von Azure-Zielzonen beschrieben. Organisationen müssen ihre Zielzonen während des Betriebs aktualisieren, um sicherzustellen, dass die Konfigurationen korrekt sind und auf die Notwendigkeit von Änderungen reagieren.
IaC kann den gesamten Lebenszyklus verwalten und zeichnet sich durch die Verwaltung der Ressourcen aus, die es bereitstellt. Organisationen sollten planen, ihre Azure-Zielzonen mit IaC bereitzustellen. Es erfordert eine Planung, um die vorhandenen Nicht-IaC-Ressourcen mit den IaC-Ressourcen abzustimmen, die durch eine Zustandsverwaltung unterstützt werden. Sie müssen die vorhandenen Ressourcen dem gewünschten Zustand zuordnen.
Weitere Informationen finden Sie unter Halten Sie Ihre Azure-Zielzone auf dem neuesten Stand.
Funktionsweise von Infrastruktur als Code
IaC bezieht sich auf die Praxis und die Tools zum Verwalten des Lebenszyklus von Infrastrukturressourcen mithilfe von maschinenlesbaren Definitionsdateien. Die Definition für die Infrastruktur wird geschrieben, versioniert, über Pipelines bereitgestellt, und wird dann Teil der Bereitstellung für Workloads.
IaC-Technologien sind deklarativ, d. h., wenn IaC ausgeführt wird, wird die Konfiguration auf den im Code beschrieben Zustand festgelegt, unabhängig vom aktuellen Zustand. Wenn Sie die Infrastruktur über Skripts wie die Azure CLI oder Azure PowerShell konfigurieren, sind diese imperativ. Imperative Skripts führen eine Reihe von Aktionen aus, und das Ergebnis hängt vom aktuellen Status und dem Zustand nach den Aktionen ab.
Wenn Sie also über eine Infrastruktur als Code-Definition für eine Azure-Ressource verfügen, können Sie diese Definition so oft ausführen, wie Sie möchten, und dies führt nur zu einer Änderung, wenn:
- Die Definition ändert sich, um neue Ressourcen hinzuzufügen, zuvor bereitgestellte Ressourcen zu entfernen oder zuvor bereitgestellte Ressourcen zu ändern.
- Die bereitgestellte Ressource weicht von der Konfiguration ab, um die Konfiguration auf die definierte zurückzusetzen.
Sie können IaC verwenden, um den Zustand wiederherzustellen, indem Sie nicht mehr benötigte Ressourcen entfernen und den Lebenszyklus von Ressourcen durch viele Änderungen verwalten.
Hinweis
Die spezifischen Mechanismen zum Entfernen von Ressourcen mit IaC variieren. Beispielsweise erfordert Azure Bicep die Verwendung eines complete
-Bereitstellungstyps, um Ressourcen außerhalb des Bereichs zu korrigieren. Dieser Befehl funktioniert nur in bestimmten Bereichen. Für Terraform verfügen Ressourcen über ein lifecycle
-Metaargument, das Anweisungen zum Umgang mit Ressourcen in Terraform bereitstellt.
Für Azure-Zielzonen gibt es zwei Hauptoptionen für Infrastruktur als Code:
- Azure Bicep, eine domänenspezifische Sprache, die zum Bereitstellen von durch Microsoft entwickelte Azure-Ressourcen verwendet wird. Weitere Informationen finden Sie unter Azure-Zielzonen – Überlegungen zum Entwurf von Bicep-Modulen.
- Terraform, ein von Hashicorp produziertes Produkt, um Infrastruktur in der Cloud und lokal bereitzustellen. Terraform verfügt über bestimmte von Microsoft erstellte Ressourcenanbieter für die Bereitstellung von Azure-Ressourcen. Weitere Informationen finden Sie unter Azure-Zielzonen – Überlegungen zum Entwurf von Terraform-Modulen.
Die Vorteile der Aktualisierung der ALZ mit Infrastruktur als Code
Die folgenden Nutzen beschreiben, warum Sie Infrastruktur als Code verwenden sollten, um Ihre Zielzone zu aktualisieren.
Entlastung
Die Verwendung von Infrastruktur als Code zur Durchführung von Aktualisierungen ist weniger aufwändig als manuelle Änderungen. Die IaC-Bereitstellung hilft ihnen, die folgenden Fragen zu beantworten:
- Wie werden Ressourcen heute konfiguriert?
- Wie werden sie durch dieses Update konfiguriert?
- Welche Änderungen werden vorgenommen, um sie mit diesem Update in Einklang zu bringen?
Wenn ein Infrastruktur als Code-Toolset ausgeführt wird, kann es einen Vergleich oder ein „differenzielles“ Auslesen der Änderungen erzeugen. Überprüfen Sie diese Anzeige, bevor Sie Änderungen an der Umgebung committen.
Das Toolset kann die Informationen für die Änderung anstelle eines Operators oder Technikers erstellen.
Reduzieren von Fehlern
Aufgrund der programmgesteuerten Natur der Bereitstellungen reduziert Infrastruktur als Code menschliche Fehler, während Änderungen vorgenommen werden. Es ändert nur, was definiert ist, und es verfügt über Vorschauoptionen, sodass Ausfälle reduziert werden, die durch fehlerhafte oder unvollständige Änderungen verursacht werden. Außerdem wurden die Testoptionen verbessert.
Versionskontrolle und Verlauf
Infrastruktur als Code-Bereitstellungen werden durch eine Definitionsdatei unterstützt, sodass Sie die Quellcodeverwaltung verwenden können, um die Versionen Ihrer Definitionen zu verwalten. Abhängig von der verwendeten IaC-Methode können Sie auf die Bereitstellungen in Azure für Bicep oder auf Ihre Zustandsdatei für Terraform verweisen, um den Verlauf früherer Bereitstellungen zu überprüfen.
Wenn Sie Quellcodeverwaltungsmethoden verwenden, wird ein neuer Branch Ihrer IaC erstellt, um Änderungen und Überarbeitungen hinzuzufügen. Der Verlauf der Branch in Ihrem Quellcodeverwaltungssystem erfasst die Iterationen und Änderungen. Sie können dies verwenden, um Änderungen in einer Testumgebung bereitzustellen, bis Sie bereit sind, die Änderungen zusammenzuführen und in der Produktion bereitzustellen. Weitere Informationen finden Sie unter dem Testvorgehen für Azure-Zielzonen. Während dieses gesamten Zyklus erfassen die Bereitstellungsdatensätze die verwendete Version und die bereitgestellten Ressourcen, sodass der Verlauf deutlich sichtbar ist.
Verwenden Sie diese Testmethoden mit Bicep für allgemeine Testzwecke. Mit diesen Methoden können Sie Tests durchführen, bevor Sie den Code bereitstellen, und Sie können in Nicht-Produktionsumgebungen von Ihrem Branch aus testen.
Testumgebungen
IaC-Bereitstellungen sind wiederholbar, sodass Sie dieselbe Definition verwenden können, um eine zweite (oder weitere) Umgebung basierend auf der Bereitstellung bereitzustellen. Diese Methode ist für das Testen von Änderungen sehr nützlich.
Wenn Sie beispielsweise Ihre Azure Firewall mithilfe der Premium-SKU ersetzen möchten, können Sie eine Testumgebung bereitstellen und die Änderungen überprüfen, ohne die Produktion zu ändern.
Abfangen von Konfigurationsabweichungen
IaC bietet eine einzigartige Option zum Abfangen von Konfigurationsabweichungen während Updates. Die Bereitstellung fängt Änderungen an der Definitionsdatei ab und zeigt Instanzen an, in denen sich die Ressourcenkonfiguration von der Definition unterscheidet.
Zielzonenupdates mit IaC können Ihnen dabei helfen, diese Konfigurationsabweichungen zu erkennen und den Code entsprechend zu aktualisieren, diese Fehlkonfigurationen über das Update zu beheben oder sie auf andere Weise anzugehen.
Wenn Sie eine Änderung an Ressourcen über das Portal, die CLI oder eine Nicht-IaC-Methode vornehmen, wird die Änderung implementiert. Wenn Sie das nächste Mal eine Bereitstellung über IaC ausführen, wird der Vergleich zwischen dem im Code definierten Zustand und dem aktuellen Zustand im Portal mithilfe von Was-wäre-wenn- oder Planungsfunktionen gekennzeichnet. Verwenden Sie diese Methode, um zu ermitteln, ob eine Umgebung außerhalb der Codedatei geändert wird.
Nachdem die Fehlausrichtung identifiziert ist, können Sie IaC ausführen, um zu versuchen, die Bereitstellung an der Definition auszurichten. Verwenden Sie diese Methode, um Probleme zu identifizieren und Szenarien zu beheben, die von der Art der Probleme, der Art der Ausführung und der Art der vorgenommenen Änderungen abhängen. Terraform versucht beispielsweise, die Baseline auf den von ihr bereitgestellten Ressourcen wiederherzustellen, und eine Complete
-Modusbereitstellung in Bicep entfernt Ressourcen in einer Ressourcengruppe, die nicht Teil der Definition sind. Diese Tools erkennen und reparieren Konfigurationsabweichungen, aber möglicherweise werden nicht alle Probleme behoben.
Weitere Informationen finden Sie unter Out-of-Band-Änderungen und Erkennen und Verwalten von Abweichungen mit Terraform.
Änderungen, die im Portal definiert sind, lassen sich nur umständlich wieder in IaC implementieren. Sie müssen den Code so aktualisieren, dass er dem aktuellen Zustand entspricht. Dies umfasst häufig die Überprüfung jeder einzelnen Ressourcenänderungen und das Aktualisieren der zugehörigen Parameter, sodass sie mit der Konfiguration „wie besehen“ übereinstimmen.
Wenn Sie IaC verwenden, um Ihre Zielzone oder andere Ressourcen zu verwalten, sollten Sie Änderungen außerhalb von IaC nur im Rahmen eines Notfalls vornehmen. Treffen Sie Vorsichtsmaßnahmen für Konten, die Zugriff haben, um Änderungen direkt vorzunehmen, z. B. Privileged Identity Management.
Überprüfen Sie allgemeine Automatisierungs- und Sicherheitsmethoden in den folgenden Artikeln:
- Übersicht über die Disziplin „Sicherheitsbaseline“
- Übersicht über die Disziplin „Identitätsbaseline“
- Empfehlungen zur betriebsbezogenen Compliance
- Entwurfsempfehlung für die Plattformautomatisierung
Nächste Schritte
Erkunden Sie eine Einführung in die IaC-Tools in den folgenden Artikeln: