iX Developer 2023
S. 50
Platform Engineering
Infrastructure-as-Code
Modularisierte Infrastructure-as-Code in TerraformViele Admins wählen Terraform zum Verwalten von Infrastruktur. Seine Flexibilität, Logikbausteine und Modularisierung helfen aber auch Developern.
Modularisierte Infrastructure-as-Code in TerraformViele Admins wählen Terraform zum Verwalten von Infrastruktur. Seine Flexibilität, Logikbausteine und Modularisierung helfen aber auch Developern.

Modularisierte Infrastructure-as-Code in Terraform

Viele Admins wählen Terraform zum Verwalten von Infrastruktur. Seine Flexibilität, Logikbausteine und Modularisierung helfen aber auch Developern.

Von Steffen Hupp und Christoph Müller

Cloud-native Anwendungen laufen typischerweise in Kubernetes-Umgebungen, die über YAML-Dateien konfiguriert werden. Da die manuelle Kubernetes-Verwaltung basierend auf den Konfigurationsdateien mühsam ist und in vielen Duplikaten resultiert, entscheiden sich viele Admins für das Infrastructure-as-Code-Tool Terraform von HashiCorp. Mit dem Einbringen von Logikbausteinen, der Modularisierung, der Unterstützung von Variablen und der technologieunabhängigen Erweiterbarkeit ermöglicht Terraform es, verschiedene Infrastrukturkomponenten (wie Kubernetes, Datenbanken, S3 etc.) über eine gemeinsame Schnittstelle zu verwalten.

HashiCorp Configuration Language HCL

Terraform ermöglicht die Deklaration von Komponenten über zwei unterschiedliche Syntaxen: HashiCorp Configuration Language (HCL) oder JSON, wobei die Unterscheidung anhand der Dateiendung (*.tf bzw. *.tf.json) erfolgt. JSON erleichtert das Einbinden von Terraform in automatisierte Prozesse, im Folgenden liegt der Fokus jedoch auf HCL. Zu definierende Ressourcen sind in HCL stets als Block dargestellt. Jeder Block trägt einen Typ und einen Namen. Der Typ leitet sich entweder aus dem Built-In-Wortschatz von Terraform ab oder wird über einen zusätzlich installierten Terraform-Provider bereitgestellt. Offiziell gibt es über hundert dieser Provider, und sie bilden als Plug-ins eine wichtige Schittstelle zu Infrastruktur-Komponenten wie Kubernetes, AWS oder Azure (weitere Informationen dazu siehe ix.de/zhxa).

Kommentieren