c't 16/2023
S. 136
Praxis
Infrastructure as Code
Bild: KI Stable Diffusion | Bearbeitung c't

Alles nach Plan

Infrastructure as Code mit Terraform und Proxmox

Wer mit den großen Cloudanbietern wie Google, Amazon und Microsoft arbeitet, nutzt Werkzeuge wie Terraform, um Workflows zu beschleunigen und zu automatisieren. Terraform hilft Ihnen aber auch im Proxmox-Homelab, um blitzschnell Testumgebungen zu schaffen.

Von Niklas Dierking

Planung von IT-Infrastruktur ist den vergangenen Jahren deutlich komplexer geworden. Die Umstellung auf Microservices und die Verlagerung von Applikationen in sogenannte Public Clouds wie AWS, Azure und Google Cloud führt dazu, dass die klassische Definition von Infrastruktur als Rechenleistung (Compute), Netzwerk (Networking) und Speicher (Storage), die man früher als Gesamtpaket gemietet hat, nicht mehr ausreicht. Die vielfältigen Angebote der Cloud-Provider bilden eine zusätzliche Abstraktionsschicht zwischen physischer Hardware und Anwendungen in Containern, die meist von Orchestrierern wie Kubernetes oder Nomad gesteuert werden und außerdem externe Ressourcen wie Datenbanken, Objektspeicher sowie Loadbalancer für die Lastverteilung brauchen.

Diese komplexen Anforderungen kann man theoretisch manuell erfüllen, indem ein Administrator im Auftrag des Entwicklungsteams in der Verwaltungsoberfläche eines Cloudanbieters die nötigen Komponenten zusammenklickt. Doch das ist langsam, mühselig und führt außerdem schnell zum sogenannten Konfigurationsdrift. Der tatsächliche Zustand der Infrastruktur weicht dann vom angestrebten Zustand ab, beispielsweise, weil jemand vergessen hat, die drei angemieteten Server für eine Kubernetes-Testumgebung abzustellen, obwohl sie nicht mehr benötigt werden. Das Konzept Infrastructure as Code (IaC) ist angetreten, diese Probleme zu lösen, indem es DevOps-Prinzipien wie Versionskontrolle und Continuous Integration / Continuous Delivery (CI/CD) auf die Bereitstellung von Infrastruktur überträgt [1]. Nach dieser Philosophie sollte die Definition von Infrastruktur genau wie anderer Quellcode behandelt werden, beispielsweise versioniert in einem Git-Repository.

Kommentare lesen (1 Beitrag)