What is Infrastructure as Code (IaC)?

Infrastructure as Code (IaC) ist eine Methode zum Verwalten und Bereitstellen von Recheninfrastruktur. Die Konfiguration erfolgt über maschinenlesbare Definitionsdateien, nicht über manuelle Anpassungen der physischen Hardware oder interaktive Konfigurationstools. Wenn die Infrastruktureinrichtung genauso behandelt wird wie der Anwendungscode, können Teams die Bereitstellung von Netzwerken, virtuellen Maschinen, Kubernetes-Clustern, Datenbanken und Load Balancern schnell und zuverlässig automatisieren. Sie ist ein Bestandteil moderner DevOps-Praktiken und hilft Unternehmen, konsistent und schnell zu skalieren.

Funktionsweise von Infrastruktur als Code

Bei IaC wird der Bereitstellungsprozess durch Code automatisiert, sodass keine manuellen Einstellungen in einer Cloud Console erforderlich sind. Zuerst definieren die Entwickler die gewünschten Infrastrukturspezifikationen in Konfigurationsdateien, die in der Regel in einem Versionsverwaltungssystem gespeichert werden. Ein Automatisierungstool wie Terraform verarbeitet diese Dateien und führt die erforderlichen API-Aufrufe an den Cloud-Anbieter aus, um die tatsächlichen Ressourcen zu erstellen, zu aktualisieren oder zu löschen. Dieser Workflow folgt in der Regel einem Pfad vom Code (Definition) zur Versionsverwaltung, durch eine CI/CD-Pipeline und schließlich zur Bereitstellung.

Infografik zum Workflow „Infrastruktur als Code“

Deklarativ oder imperativ

Bei der Implementierung von IaC haben Teams in der Regel die Wahl zwischen zwei Ansätzen: deklarativ und imperativ. Der Hauptunterschied besteht darin, ob Sie sich auf das Endergebnis oder die Schritte dorthin konzentrieren.

Ansatz

Beschreibung

Beispiel

Erklärend


Sie definieren, wie der Endzustand aussehen soll. Das Tool ermittelt die notwendigen Schritte, um diesen Zustand zu erreichen. Dies ist der moderne Standard für Tools wie Terraform und Kubernetes.

„Ich möchte drei virtuelle Maschinen mit jeweils 8 GB RAM.“

Imperativ

Sie definieren, wie die Infrastruktur geändert werden soll, indem Sie bestimmte Befehle oder Skripts auflisten, die in der angegebenen Reihenfolge ausgeführt werden sollen.

„Führen Sie Skript A aus, um Server 1 zu starten. Führen Sie dann Skript B aus, um das Netzwerk zu konfigurieren. Führen Sie dann Skript C aus…“

Ansatz

Beschreibung

Beispiel

Erklärend


Sie definieren, wie der Endzustand aussehen soll. Das Tool ermittelt die notwendigen Schritte, um diesen Zustand zu erreichen. Dies ist der moderne Standard für Tools wie Terraform und Kubernetes.

„Ich möchte drei virtuelle Maschinen mit jeweils 8 GB RAM.“

Imperativ

Sie definieren, wie die Infrastruktur geändert werden soll, indem Sie bestimmte Befehle oder Skripts auflisten, die in der angegebenen Reihenfolge ausgeführt werden sollen.

„Führen Sie Skript A aus, um Server 1 zu starten. Führen Sie dann Skript B aus, um das Netzwerk zu konfigurieren. Führen Sie dann Skript C aus…“

IaC-Sicherheit und ‑Scans

Da Infrastrukturdefinitionen in Code-Repositories verschoben werden, müssen Sicherheitsverfahren angepasst werden, um diese Dateien zu schützen. „IaC-Sicherheit“ und „IaC-Scanning“ beziehen sich auf die Praxis, Konfigurationsdateien auf Sicherheitslücken zu analysieren, bevor die Infrastruktur bereitgestellt wird – ein Konzept, das als Shift Left bezeichnet wird. Spezielle Tools scannen die Code-Pipeline, um Fehlkonfigurationen zu erkennen, z. B. Storage-Buckets, die öffentlich zugänglich sind, oder unverschlüsselte Datenbanken. So wird verhindert, dass Sicherheitsrisiken in die Produktionsumgebung gelangen.

Anwendungsfälle für IaC

Neben der Unterstützung gängiger Bereitstellungsmuster wie RAG-Anwendungen (Retrieval-Augmented Generation) hilft IaC bei der Bewältigung von Herausforderungen bei komplexen operativen Bereitstellungen.

Unternehmen müssen Arbeitslasten oft in verschiedenen Umgebungen ausführen. Mit einem Tool wie Terraform kann ein Team mit einem einzigen Konfigurationsworkflow Ressourcen in Google Cloud oder anderen Cloud-Umgebungen und in lokalen Rechenzentren gleichzeitig bereitstellen und verwalten. So müssen Sie nicht für jede Plattform ein anderes proprietäres Tool lernen.

Entwickler benötigen häufig sichere Umgebungen, um neue Funktionen zu testen. Mit IaC kann ein Team eine temporäre Staging-Umgebung erstellen, die die Produktionsumgebung exakt widerspiegelt, Tests durchführen und die Umgebung anschließend sofort wieder löschen. So können Sie die Genauigkeit der Tests sicherstellen, ohne die Kosten für einen permanenten Staging-Server zu haben, der rund um die Uhr läuft.

Bei einem katastrophalen regionalen Ausfall kann die manuelle Wiederherstellung Tage dauern. IaC ermöglicht die Notfallwiederherstellung als Code, sodass ein Unternehmen seine gesamte Infrastruktur in einer anderen Region mithilfe seiner vorhandenen Code-Definitionen schnell neu bereitstellen kann. So lassen sich Ausfallzeiten drastisch reduzieren und die Geschäftskontinuität sicherstellen.

Vorteile von IaC

Die Einführung von IaC kann für Unternehmen, die ihre IT-Abläufe modernisieren möchten, erhebliche Vorteile bieten.

Geschwindigkeit

Mit Automatisierung können Sie komplexe Umgebungen in wenigen Minuten bereitstellen, anstatt Tage oder Wochen zu benötigen.

Konsistenz

Da derselbe Code jedes Mal dieselbe Umgebung bereitstellt, verhindert IaC die sogenannte Konfigurationsdrift, bei der Server aufgrund manueller Ad-hoc-Änderungen inkonsistent werden.

Kosteneinsparungen

Teams können ungenutzte Ressourcen einfach herunterfahren, wenn sie nicht benötigt werden, z. B. Entwicklungsumgebungen am Wochenende. So lassen sich die Cloud-Ausgaben besser verwalten.

Versionsverwaltung

Da die Infrastruktur als Code definiert ist, wird der gesamte Verlauf der Änderungen an Ihrer Infrastruktur an einem Ort gespeichert. So lässt sich leichter nachvollziehen, wer was geändert hat, und bei Bedarf kann zu einer früheren Version zurückgekehrt werden.

IaC in Google Cloud implementieren

Google Cloud bietet ein umfassendes Set an Tools, um Sie bei der Implementierung von Infrastructure as Code zu unterstützen – vom ersten Entwurf über die Bereitstellung bis hin zur laufenden Verwaltung. Ein guter Ausgangspunkt ist das App Design Center. Dort können Sie vordefinierte Referenzarchitekturen untersuchen, anpassen und darauf aufbauen. So können Sie Ihren Anwendungs-Stack auf der Grundlage von Best Practices von Google Cloud entwerfen, bevor Sie auch nur eine Zeile Code schreiben. Ihre Infrastruktur ist also von Anfang an gut strukturiert.

Sobald Sie ein Design haben, können Sie es dank des offenen Ökosystems von Google Cloud ganz einfach als Code implementieren. Die Plattform behandelt Open-Source-Standards wie Terraform als erstklassige Bürger, nicht als nachträgliche Überlegung. Mit Diensten wie Infrastructure Manager können Sie Google Cloud-Ressourcen direkt mit Terraform bereitstellen und verwalten. Mit Config Connector können Sie Google Cloud-Ressourcen über Kubernetes verwalten und so die Lücke zwischen Cloud-Infrastruktur und Container-Orchestrierung schließen.

Cloud Resource Manager

Cloud Resource Manager ist der Dienst für die programmatische Verwaltung der Google Cloud-Ressourcenhierarchie, einschließlich Organisationen, Ordnern und Projekten. Viele Teams verwenden IaC, um Ressourcen wie virtuelle Maschinen bereitzustellen. Mit Cloud Resource Manager können Sie jedoch auch die Projektstruktur selbst als Code definieren. So können Teams die Einrichtung neuer Umgebungen mit einheitlichen IAM-Richtlinien (Identity and Access Management) und organisatorischen Einschränkungen automatisieren und dafür sorgen, dass die Governance von Anfang an in die Infrastruktur eingebunden ist.

Automatisierung temporärer Vorschauumgebungen

Eine der wertvollsten Anwendungen von IaC ist die Lösung eines häufigen Problems von Entwicklern: „Auf meinem Computer hat es funktioniert, warum also nicht in der Produktion?“ Sie können dieses Problem lösen, indem Sie temporäre Umgebungen erstellen.

In diesem Workflow wird beim Öffnen einer Pull-Anfrage (PR) durch einen Entwickler mit IaC-Tools automatisch eine temporäre, isolierte Kopie der Anwendung erstellt. Wenn die PR zusammengeführt wird, wird die Umgebung automatisch gelöscht.

Schritt 1: Dynamische Benennung in Terraform

Dazu dürfen in Ihrem Terraform-Code keine fest codierten Namen enthalten sein. Sie müssen Variablen verwenden, um für jeden Pull Request eindeutige Ressourcen zu erstellen.

main.tf (Snippet)

  • Terraform
Wird geladen...

Schritt 2: Die Cloud Build-Konfiguration

In der cloudbuild.yaml fügen Sie die PR-Nummer mit der von Cloud Build bereitgestellten Substitutionsvariable _PR_NUMBER in Terraform ein.

cloudbuild.yaml (Snippet)

  • YAML
Wird geladen...

Dieser Workflow macht IaC von einer statischen Wartungsaufgabe zu einem dynamischen Produktivitäts-Tool, das den Prüfzyklus beschleunigt.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.

Zusätzliche Ressourcen

  • Dokumentation zu Infrastruktur als Code: Hier finden Sie eine Übersicht, Anleitungen und Tools zur Implementierung von Infrastruktur als Code in Google Cloud.
  • Running Infrastructure as Code with least privilege: In diesem technischen Blogpost erfahren Sie, wie Sie die Sicherheit verbessern können, indem Sie das Prinzip der geringsten Berechtigung auf Ihre IaC-Workflows anwenden.
  • Lab „Infrastructure as Code mit Terraform“: In dieser geführten Google Cloud Skills Boost-Aufgabe sammeln Sie praktische Erfahrungen beim Bereitstellen von Cloud-Ressourcen mit Terraform.
  • Adopting Infrastructure as Code on GCP for repeatable scale: In diesem Einführungsartikel erfahren Sie, warum die Einführung von IaC für wiederholbare, skalierbare Abläufe unerlässlich ist.
  • Infrastruktur als Code mit Terraform verwalten: Hier erfahren Sie mehr über bestimmte Strategien und Best Practices für die effektive Verwaltung Ihrer Infrastrukturdefinitionen, wenn Sie Terraform in Google Cloud verwenden.
  • App Design Center: Vordefinierte Referenzarchitekturen ansehen, anpassen und darauf aufbauen So können Sie Ihren Anwendungs-Stack auf der Grundlage von Google Cloud-Best Practices entwerfen, bevor Sie auch nur eine Zeile Code schreiben.
  • Infrastructure Manager: Ein vollständig verwalteter Dienst, der die Bereitstellung und Verwaltung von Google Cloud-Ressourcen mit Terraform automatisiert und es Teams ermöglicht, Infrastruktur zuverlässig und konsistent bereitzustellen.

Gleich loslegen

Profitieren Sie von einem Guthaben in Höhe von 300 $, um Google Cloud und mehr als 20 immer kostenlose Produkte kennenzulernen.

Google Cloud