Was ist Infrastructure as Code?

Infrastructure as Code (IaC) ist die Fähigkeit, Ihre Computerinfrastruktur mithilfe von Code anstelle manueller Prozesse und Einstellungen bereitzustellen und zu unterstützen. Jede Anwendungsumgebung erfordert viele Infrastrukturkomponenten wie Betriebssysteme, Datenbankverbindungen und Speicher. Entwickler müssen die Infrastruktur regelmäßig einrichten, aktualisieren und warten, um Anwendungen zu entwickeln, zu testen und bereitzustellen. 

Manuelles Infrastrukturmanagement ist zeitaufwändig und fehleranfällig – insbesondere, wenn Sie Anwendungen in großem Maßstab verwalten. Mit Infrastructure as Code können Sie den gewünschten Status Ihrer Infrastruktur definieren, ohne alle Schritte zu berücksichtigen, um zu diesem Status zu gelangen. Es automatisiert das Infrastrukturmanagement, sodass sich Entwickler auf die Entwicklung und Verbesserung von Anwendungen konzentrieren können, anstatt Umgebungen zu verwalten. Unternehmen nutzen Infrastructure as Code, um Kosten zu kontrollieren, Risiken zu reduzieren und schnell auf neue Geschäftschancen zu reagieren.

Was sind die Vorteile von Infrastructure as Code?

Automatisierung ist ein zentrales Ziel in jeder Computerumgebung. Infrastructure as Code (IaC) wird für die Infrastrukturautomatisierung zur Erstellung von Umgebungen verwendet. IaC wird am häufigsten in der Softwareentwicklung zum Erstellen, Testen und Bereitstellen von Anwendungen verwendet.

Davor verwendeten Systemadministratoren eine Kombination aus Skripten und manuellen Prozessen, um Infrastrukturumgebungen einzurichten. Der Prozess war komplex und zeitaufwändig. Heute können Sie IaC verwenden, um Ihre Umgebung innerhalb von Minuten automatisch einzurichten und effizienter zu verwalten. Als Nächstes stellen wir einige Vorteile vor.

Einfache Duplizierung einer Umgebung

Dieselbe Umgebung kann auf einem anderen System an einem anderen Standort mit derselben IaC bereitgestellt werden, sofern die Infrastrukturressourcen verfügbar sind.

Stellen Sie sich zum Beispiel vor, die regionale Niederlassung eines Unternehmens verfügt über IaC, um die gesamte Unternehmensumgebung der Filiale zu beschreiben, einschließlich Server, Netzwerke und benutzerdefinierter Konfigurationen. Wenn das Unternehmen eine weitere regionale Niederlassung eröffnen würde, könnte es IaC verwenden, um genau dieselbe Umgebung zu duplizieren und die Filiale schnell online und betriebsbereit zu machen. IaC entfernt die sich wiederholenden manuellen Schritte und Checklisten, die in der Vergangenheit erforderlich waren.

Weniger Konfigurationsfehler

Die manuelle Konfiguration ist aufgrund menschlicher Eingriffe fehleranfällig. Menschen machen Fehler. Oder es könnte zu Konfigurationsabweichungen aufgrund von Änderungen in einer Einrichtung (z. B. einer Entwicklerumgebung) kommen, die in einer anderen Einrichtung (z. B. einer Testumgebung) übersehen wurden.

Im Gegensatz dazu reduziert IaC Fehler und optimiert die Fehlerprüfung. Wenn aufgrund von IaC-Code-Updates Fehler auftreten, können Sie die Situation schnell beheben, indem Sie die Codebasis auf die letzten bekannten stabilen Konfigurationsdateien übertragen. Es ist auch möglich, Umgebungen, die frühere Versionen von IaC-Konfigurationsdateien verwenden, aus anderen Gründen rückgängig zu machen, z. B. für die Bereitstellung älterer Anwendungsversionen.

In Best-Practice-Umgebungen iterieren

Die Quellcodeverwaltung ermöglicht es Softwareentwicklern, Umgebungen einfach zu erstellen und zu erweitern. Stellen Sie sich zum Beispiel vor, dass eine Anwendung um ein optionales Modul für Machine Learning erweitert wird. Ein Entwickler könnte das IaC der Anwendung verzweigen, um eine leistungsstarke Trn1-Instance von Amazon Elastic Compute Cloud (Amazon EC2) zu initiieren, zu verwenden und zu beenden. Sie können die Bereitstellungsregion so festlegen, dass sie von der Region der Anwendungsbereitstellung abhängt.

Wie funktioniert Infrastructure as Code?

Ähnlich wie Softwarecode eine Anwendung und ihre Funktionsweise beschreibt, beschreibt Infrastructure as Code (IaC) eine Systemarchitektur und ihre Funktionsweise. Eine Infrastrukturarchitektur umfasst Ressourcen wie Server, Netzwerke, Betriebssysteme und Speicher. IaC steuert virtualisierte Ressourcen, indem sie Konfigurationsdateien wie Quellcodedateien behandelt. Sie können sie verwenden, um die Infrastruktur auf kodifizierte, wiederholbare Weise zu verwalten. 

IaC-Konfigurationsmanagement-Tools verwenden unterschiedliche Sprachspezifikationen. Sie können IaC ähnlich wie Anwendungscode in Python oder Java entwickeln. Sie schreiben die IaC auch in einer integrierten Entwicklungsumgebung (IDE) mit integrierter Fehlerprüfung. Und Sie können sie unter Quellcodeverwaltung verwalten, indem Sie bei jeder Codeänderung Commits vornehmen. IaC-Dateien sind als Teil der breiteren Codebasis enthalten.

Ansätze für IaC

Es gibt zwei verschiedene Ansätze für Infrastructure as Code.

Deklarativ

Deklarative IaC ermöglicht es einem Entwickler, Ressourcen und Einstellungen zu beschreiben, die den Endzustand eines gewünschten Systems ausmachen. Die IaC-Lösung erstellt dieses System dann aus dem Infrastrukturcode. Dies macht die Verwendung von deklarativem IaC einfach, sofern der Entwickler weiß, welche Komponenten und Einstellungen er für die Ausführung seiner Anwendung benötigt.

Imperativ

Imperative IaC ermöglicht es einem Entwickler, alle Schritte zu beschreiben, um die Ressourcen einzurichten und den gewünschten System- und Betriebsstatus zu erreichen. Es ist zwar nicht so einfach wie bei deklarativer IaC, imperative IaC zu schreiben, aber der imperative Ansatz wird bei komplexen Infrastrukturbereitstellungen notwendig. Dies gilt insbesondere dann, wenn die Reihenfolge der Ereignisse entscheidend ist.

Welche Rolle spielt IaC in DevOps?

DevOps ist der Prozess zur Verbesserung der Zusammenarbeit zwischen Softwareentwicklungs- und IT-Betriebsteams. Ziel ist es, den Lebenszyklus der Anwendungsentwicklung zu verkürzen und die kontinuierliche Bereitstellung hochwertiger Software zu gewährleisten. DevOps-Teams integrieren Betriebsaktivitäten mit Entwicklertools und Code-Commits, sodass Anwendungen extrem schnelle Release-Zyklen haben können.

Ein Hauptziel von DevOps ist die Automatisierung von Infrastrukturaufgaben im gesamten Entwicklungsprozess. Sie können Infrastructure as Code (IaC) in Pipelines für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) integrieren. Auf diese Weise können die erforderlichen Infrastrukturänderungen parallel vorgenommen werden, wenn die Software ihren Build- und Release-Prozess durchläuft.

DevOps-Teams verwenden Infrastructure as Code für viele Zwecke:

  • Komplette Umgebungen schnell einrichten, von der Entwicklung bis zur Produktion
  • Für konsistent reproduzierbare Konfigurationen zwischen Umgebungen sorgen
  • Nahtlos in Cloud-Anbieter integrieren und die Infrastrukturressourcen je nach Bedarf effizient nach oben oder unten skalieren

IaC bietet eine gemeinsame Sprache für Entwickler und Betrieb. Änderungen können transparent überprüft werden, was eine bessere Zusammenarbeit in einer DevOps-Umgebung fördert.

Weitere Informationen über DevOps »

Wie kann AWS Ihre IaC-Anforderungen unterstützen?

Die Angebote von Amazon Web Services (AWS) wurden unter Berücksichtigung von Infrastructure as Code (IaC) entwickelt. So können Sie komplexe Cloud-Architekturen sicher verwalten, indem Sie sie im Code definieren und ausführen.

Hier sind AWS-Services, die Ihnen bei Ihren IaC-Anforderungen helfen können:

  • Mit dem AWS Cloud Development Kit (AWS CDK) können Entwickler Cloud-Anwendungsressourcen mit vertrauten Programmiersprachen und interaktiven Konfigurationstools definieren – alles in der IDE. Dadurch entfällt die Notwendigkeit, neue Sprachen und Tools zur Manipulation von Cloud-Ressourcen zu erlernen.
  • Mit AWS CloudFormation können Entwickler eine über die AWS-Infrastruktur hinausgehende Entwicklung und Skalierung vornehmen. Entwickler können IaC verwenden, um Cloud-Ressourcen zu definieren und zu verwalten, die in der CloudFormation-Registry, in der Entwickler-Community und in internen Bibliotheken veröffentlicht wurden.
  • Für die vollständig verwaltete Quellcodeverwaltung von IaC und Ihrem gesamten Anwendungscode ist AWS CodeCommit ein sicherer, skalierbarer Service zum Hosten Ihrer privaten Git-Repositorys.

Beginnen Sie mit Infrastructure as Code in AWS, indem Sie noch heute ein Konto erstellen.

Nächste Schritte in AWS

Zusätzliche produktbezogene Ressourcen ansehen
Entwickler-Tools-Services ausprobieren 
Registrieren Sie sich und erhalten Sie ein kostenloses Konto

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole starten

Starten Sie mit der Entwicklung in der AWS-Managementkonsole.

Anmelden