Terraform vs. Crossplane - wie sieht die Zukunft von Cloud Native aus?
- Alexander Riehr
- 21. Juni 2023
- 2 Min. Lesezeit

Viele Unternehmen möchten auf ihrer Cloud Journey einen Vendor Lock-in vermeiden und setzen daher auf Kubernetes. Abhängigkeiten (wie Datenbanken oder Message Broker) werden typischerweise mit Terraform bereitgestellt. Jetzt gibt es hierzu aber eine verlockende und zukunftsträchtige Alternative: Crossplane.
Crossplane – das perfekte Bindeglied zwischen Kubernetes und der Cloud?
Crossplane ist eine Open-Source-Software, die es Unternehmen ermöglicht, Cloud-Infrastrukturen so zu verwalten, wie jede andere Kubernetes Resource auch. Zu einer komplexen Kubernetes Applikation gehören typischerweise eine Vielzahl an Objekten, wie Pods, ReplicaSets, Secrets, und viele mehr. Welche Objekte genau existieren und welche Gestalt sie haben, wird dabei in Kubernetes Manifest Dateien definiert und ein Prozess, der im Cluster läuft, sorgt für die Einhaltung der Manifeste. Das funktioniert wunderbar. Es ist auch deshalb so effizient und angenehm, weil dieses Vorgehen einheitlich ist. Ganz gleich, welches Addon für Kubernetes installiert wird: alles kann in YAML Dateien definiert und an die Kubernetes API geschickt werden. Alles, bis auf Abhängigkeiten in der Cloud. Hier muss auf separate IaaC Templates zugegriffen werden, und das kann kompliziert werden. Wer kennt nicht die Terraform Repositories, die ohne Ende wachsen und am Ende von niemandem mehr überblickt werden können? Crossplane kann hier helfen.
Macht Crossplane Terraform überflüssig?
Mit Crossplane können Cloud Resourcen als Kubernetes Manifest Dateien definiert und bereitgestellt werden. Eine Manifest Datei für einen AWS S3 Bucket sieht zum Beispiel so aus:

Einmal an die Kubernetes API geschickt, sorgt ein Controller dafür, dass ein S3 Bucket mit der korrekten Konfiguration existiert. Die Kubernetes API ist also ein Stück weit in die Cloud “hinein gewachsen”.
So schön das auch klingt, man darf dabei aber nicht vergessen: damit Crossplane funktioniert, muss ein Kubernetes Cluster existieren. Dieser muss auch irgendwie aufgesetzt werden. Insgesamt könnte Crossplane also die IaaC Repositories stark verschlanken und vereinheitlichen: weniger verschachtelte Terraform Module, mehr Helm Templates. Ganz verschwinden wird Terraform aber deshalb nicht. Die grundlegende Cluster Infrastruktur muss noch mit Terraform bereitgestellt werden, alles darum könnte vielleicht in der Zukunft über Crossplane laufen. Allerdings ist das Projekt noch in einem recht frühen Stadium und fühlt sich bisweilen noch wie eine Beta an.
Trotzdem: Wir glauben, dass verschachtelte Terraform Module ein Problem sind und Crossplane hier auch den “Self Service” Gedanken weiter nach vorne bringen kann. Deshalb sollte man das Projekt unbedingt im Auge behalten. Es könnte maßgeblich verändern, wie die Cloud Native Applikationen der Zukunft aussehen.
Comments