Infrastructure-as-Code

Abgeschlossen

Infrastructure-as-Code (IaC) ist der Prozess zum Verwalten und Bereitstellen von Cloudinfrastrukturressourcen durch computerlesbaren Code, der in der Quellcodeverwaltung gespeichert ist. Aufgrund der Möglichkeit, Ihre Infrastruktur wie jeden anderen Quellcode zu behandeln, wird diese Methode als Infrastructure-as-Code bezeichnet.

IaC ist eine zentrale Komponente von DevOps, weil IaC die Automatisierung der Infrastrukturkonfiguration und -bereitstellung ermöglicht. Durch diese Automatisierung wird der erforderliche Zeit- und Arbeitsaufwand für die Verwaltung und Bereitstellung der Infrastruktur reduziert und gleichzeitig sichergestellt, dass die Infrastruktur konsistent und zuverlässig konfiguriert wird. IaC trägt auch dazu bei, sicherzustellen, dass die Infrastruktur sicher ist und den Organisationsrichtlinien entspricht.

Native Azure-Tools im Vergleich zu cloudunabhängigen Tools

Einer der wichtigsten Faktoren bei der Auswahl eines IaC-Tools ist Ihre Cloudumgebung:

  • Native Azure-Tools: IaC-Tools wie Azure CLI, Azure PowerShell und Bicep sind nur in Azure verfügbar. Da sowohl die Cloudinfrastruktur als auch die IaC-Tools von ein und demselben Unternehmen bereitgestellt werden, verkürzt sich die Zeit zwischen der Veröffentlichung von Cloudfeatures und der Unterstützung in den Tools.

  • Cloudunabhängige Tools: Mit IaC-Tools wie Terraform können Sie Infrastructure-as-Code in Umgebungen mit verschiedenen Clouds verwalten. Je nach IaC-Tool werden neu veröffentlichte Azure-Features möglicherweise nicht sofort unterstützt.

Imperative IaC-Tools im Vergleich zu deklarativen IaC-Tools

Es gibt zwei Typen von IaC-Konfigurationstools:

  • Imperative IaC-Tools: Ein imperatives Tool (oder eine imperative Sprache) ist ein Tool, in dem der Code explizit angibt, was wie ausgeführt werden muss. Der von Ihnen geschriebene Code führt Aktionen in einer bestimmten Reihenfolge (Schritt für Schritt) aus, um Ihre Infrastruktur zu konfigurieren. Die meisten imperativen IaC-Tools sind nicht idempotent, da die Konfiguration Schritt für Schritt ausgeführt wird.

    Zu den imperativen IaC-Tools zum Verwalten und Bereitstellen von Ressourcen in Azure gehören die folgenden:

    • Die Azure CLI
    • Azure PowerShell
  • Deklarative IaC-Tools: Mit einem deklarativen Tool (oder einer deklarativen Sprache) können Sie das gewünschte Ergebnis angeben, anstatt wie die einzelnen Schritte ausgeführt werden sollen. Die meisten deklarativen IaC-Tools folgen einem gängigen Muster. Nachdem Sie die Definition Ihrer Infrastruktur erstellt haben, führen Sie einen Befehl aus, um das bereitzustellen, was Sie definiert haben. Deklarative IaC-Tools sind idempotent, weil die Konfiguration unabhängig vom Zustand der Infrastrukturkonfiguration mehrmals angewendet werden kann. Dadurch können Sie Konfigurationsabweichungen verhindern, indem Sie die Compliance einer nicht konformen Infrastruktur wiederherstellen.

    Zu den deklarativen IaC-Tools zum Verwalten und Bereitstellen von Ressourcen in Azure gehören die folgenden:

    • Bicep
    • Terraform

Empfehlungen

  • Verfolgen Sie bei der Bereitstellung, Verwaltung, Steuerung und Unterstützung von Azure-Bereitstellungen einen IaC-Ansatz.
  • Verwenden Sie native Azure-Tools für IaC in den folgenden Szenarien:
    • Sie möchten nur native Azure-Tools verwenden. Ihre Organisation hat bereits Erfahrung mit der Bereitstellung von Azure Resource Manager-Vorlagen (ARM-Vorlagen).
    • Ihre Organisation wünscht sofortige Unterstützung für alle Vorschau- und allgemein verfügbaren Versionen (General Availability, GA) von Azure-Diensten.
  • Verwenden Sie nicht native Tools für IaC in den folgenden Szenarien:
    • Ihre Organisation verwaltet die Infrastruktur in gemischten Cloudumgebungen.
    • Ihre Organisation benötigt keine sofortige Unterstützung für alle Vorschau- und GA-Versionen von Azure-Diensten.