Was ist Terraform?

Terrafom ist ein Werkzeug für die effiziente und sichere Provisionierung von einzelnen Ressourcen bis hin zu komplexen Infrastrukturen. Dabei kann Terraform alle gängigen Cloudanbieter und Inhouse Lösungen ansteuern.
Die Konfigurationen der Ressourcen werden in Dateien gespeichert. Gewünschte Änderungen werden durch Terraform in einem Ausführungsplan generiert, verprobt und erst im Anschluss umgesetzt. Damit kann man vorab sicherstellen, welche abhängigen Ressourcen ebenfalls geändert werden.
Dabei ist Terrraform in der Lage Low- sowie High-Level Komponenten zu provisionieren. Unter Low Level Komponenten versteht man Serverinstanzen, Storage und Netzwerk. High-Level Komponenten sind DNS Einträge oder auch SaaS Features.
5 technische Business Cases die mit Terraform möglich sind….
Infrastructure as code verwenden
Terraform bietet mit der HashiCorp Configuration Language eine Codesprache an, um Ressourcen und Infrastrukturen zu planen, betreiben und zu ändern. Ebenfalls wird der Status der Komponenten gespeichert und die Änderungen können einfach nachvollzogen werden. Um wertvolle Zeit bei der Entwicklung von zusätzlichen Ressourcen und Infrastrukturen zu sparen, kann der Code für weitere Projekte wiederverwendet werden.
Multi-Cloud Deployment durchführen
Die Umsetzungen von Multi-Cloud-Implementierungen ist eine große Herausforderung, da viele bestehende Tools für das Infrastrukturmanagement Cloud-spezifisch sind. Terraform ist Cloud unabhängig und ermöglicht es, mit einer einzigen Konfiguration mehrere Anbieter zu verwalten und übergreifende Abhängigkeiten zu handhaben. Dies vereinfacht die Verwaltung und Orchestrierung und hilft beim Aufbau großer Multi-Cloud-Infrastrukturen.
Bereitstellungszeit von Ressourcen verkürzen
Klassisch werden die VMs und die Ressourcen über das Portal zusammenn geklickt. Bei komplexen Landschaften kann das Tage dauern und sind zudem fehleranfällig. Mit Terraform kann die vollständige Bereitstellung von Ressourcen in wenigen Minuten durchgeführt werden. Ebenfalls können mehrere Cloud-Services auf standardisierte Weise bereigestellt werden.
Entwicklungskosten reduzieren
Mit Terraform kann das Wissen, wie ein Service oder eine Ressource aufgebaut und skaliert werden soll, in einer Konfiguration „kodifiziert“ werden. Terraform-Konfigurationen können innerhalb einer Organisation geteilt werden, so dass die Teams die Konfiguration als Blackbox nutzen und Terraform als Tool zur Verwaltung ihrer Dienste einsetzen können.
Self-Services
Bei größeren Unternehmen wird es für ein zentrales Betriebsteam schwierig, eine große und wachsende Infrastruktur zu verwalten. Stattdessen wird es attraktiver, eine „Self-Serve“-Infrastruktur zu erstellen, die es den Produktteams ermöglicht, ihre eigene Infrastruktur mithilfe von Tools zu verwalten, die vom zentralen Betriebsteam bereitgestellt werden.
5 technische Funktionen die mit Terraform möglich sind….
Windows Domainjoin durchführen
Terraform kann einen Domainjoin durchführen. Das hat den Vorteil, dass man sich direkt nach der Provisionierung einer neuen VM mit einem Domainadminuser anmelden und die Nacharbeiten für das System abschließen kann.
Passwörter und Secrets ablegen
Terrafrom kann Kennwörter generieren und diese in einen KeyVault von Azure schreiben. Damit wird gewährleistet, dass die Kennwörter für den Loginuser nicht nativ im Code dargestellt wird und diese nur berechtigte User im Zugriff haben.
WebService deployen
Mit Terrafrom ist es möglich eine VM mit einem aktiven WebServer wie z.B.: dem Ngix auszurollen. Damit kann man sehr agil auf ändernde Testszenarien des Fachbereichs reagieren und mehrmals mit dem identischen Code ein Testszenario bereitstellen
Firewallregeln aktivieren
Mit Terraform kann man einmalig Firewallregeln definieren und über die NetworkSecurityGroups über alle relevanten Ressourcengruppen aktivieren. Damit spart man sich den zeitlichen Aufwand pro Ressourcengroup die identischen Regeln einzustellen.
VM Backup Policy verteilen
Mit Terraform kann man die konfigurierte BackupPolicy in kürzester Zeit verteilen und damit sicherstellen, dass alle Vm Ressourcen auch ordnungsgemäß im Backup enthalten sind.