- Heute reicht es, in der AWS-Konsole ein paar Mal zu klicken, um Server bereitzustellen, oder mit einer einzigen Befehlszeile verschiedenste Infrastrukturen aufzubauen
- IaC
- Infrastruktur per Code verwalten und bereitstellen
- Netzwerke, Server, Storage und alles Weitere, was wir brauchen, wird vollständig als Code gespeichert und verwaltet
- Dadurch lässt sich Infrastruktur durch Teilen, Testen und Wiederverwenden von Code produktiver verwalten
- Terraform
- Terraform ist eines der bekanntesten Werkzeuge im Bereich IaC
- Es verwaltet nicht nur Clouds wie AWS, GCP und Azure, sondern auch interne Lösungen
- Es verwendet einen deklarativen Ansatz, bei dem das gewünschte Endergebnis definiert wird, wodurch sich Ergebnisse leicht vorhersagen lassen
- Auch bei wiederverwendetem Code wird dasselbe Ergebnis garantiert
- Mit
terraform plan wird ein konkreter Plan erstellt, wie die Ressourcen in AWS angelegt werden
- Über
terraform apply wird dies tatsächlich angewendet
- Informationen zu mit Terraform erzeugten Ressourcen werden in einer JSON-Datei namens
tfstate verwaltet
- Arbeitsweise von Terraform
- Es stellt Funktionen bereit, um über verschiedene Schlüsselwörter Benutzereingaben entgegenzunehmen, Ressourcen zu erstellen und die Ausführungsergebnisse in der CLI auszugeben
- Provider
- Ein Plugin, das Ressourcentypen implementiert
- Man findet den passenden Provider für verwendete Cloud-Plattformen und Dienste wie AWS oder GCP, fügt ihn der Konfiguration hinzu und provisioniert mit den entsprechenden Ressourcen die Infrastruktur
- Module
- Eine wiederverwendbare kleine Terraform-Konfiguration, die eine Gruppe verwandter Ressourcen so verwaltet, als wäre sie eine einzelne Ressource
- Auch von anderen erstellte Module lassen sich frei nutzen, um mit wenig Code viele Ressourcen effizient zu verwalten
- Dasselbe Modul kann mit unterschiedlicher Konfiguration mehrfach aufgerufen werden
- Resource
- Ein Schlüsselwort zur Beschreibung eines oder mehrerer Infrastruktur-Objekte, etwa übergeordneter Komponenten wie virtuelle Netzwerke, Computing-Instanzen oder DNS-Records
- Variable
- Eingabevariablen ermöglichen das Festlegen von Ressourceneigenschaften, ohne den Quellcode des Moduls zu ändern
- Ähnlich wie Funktionsparameter in Programmiersprachen
- Über Eingabevariablen lassen sich Module flexibler teilen und wiederverwenden
- Output
- Ausgabewerte können Infrastrukturinformationen erzeugen, die in der Befehlszeile verwendet werden, und Informationen für andere Terraform-Konfigurationen offenlegen
- Ähnlich wie Rückgabewerte in Programmiersprachen
Noch keine Kommentare.