Infrastructure as Code

Im Jahre 2016 scheint man nicht mehr an dem Trend „Infrastructure as Code“ (IaC) vorbeizukommen. Überall kann man davon lesen. Doch handelt es sich genau bei „Infrastructure as Code“ und was macht die Sache so spannend? Anhand von zwei Beispielen möchte ich das Thema aufgreifen und erklären warum die ganze „IT-Welt“ darüber redet.

„Infrastructure as Code“ ist Teil der DevOps Kultur und kann unter dem Punkt „Continuous Configuration Automation“, kurz CCA angewendet werden. CCA umfasst Methoden und Prozesse für die Automatisierung von: Deployments, Configuration Settings sowie Software Deployments.

Die Idee ist es, nicht mit einem „Golden Image“ oder „Master Image“ zu arbeiten, wie in den Anfängen der Virtualisierung, sondern vielmehr mit Code bzw. Skripten. Der Vorteil von IaC liegt u.a. darin, dass Umgebungen dynamischer und agiler werden als mit „Golden Images“. Der Code beschreibt wie Server-Umgebungen aussehen sollen und anhand dessen werden die Umgebungen bereitgestellt.

Out-of-the-Box Lösung

AWS als auch Azure verfügen über proprietäre Mittel um „Infrastructure as Code“ bzw. CCA zu leisten. AWS hat mit dem Service CloudFormation die Möglichkeit geschaffen Server-Umgebungen mittels Templates zu erstellen. Azure hat mit der Einführung von ARM-Templates nun auch seit geraumer Zeit die Möglichkeit dazu.

Bei den Templates handelt es sich schlussendlich um einfache Text-Files, bei denen JSON als Grundlage wirkt und mit der sich Templates aufbauen lassen. JSON eignet sich besonders gut für das Beschreiben von Server Umgebungen, da es für viele leichter zu lesen ist als XML. Ebenso sind diese Text-Files sehr einfach in eine Versionsverwaltung Tool (Github o.ä.) zu integrierten.

Unterstützende Tools

Um die Lesbarkeit und die Funktionalität der Templates noch zu verbessern, haben 3rd Party Firmen Tools geschaffen, die auf CloudFormation oder ARM-Templates aufsetzen und diese Verbessern. Die 3rd Party Lösungen sind dabei so konzipiert, dass die Syntax für sämtliche Ressource- bzw. Cloud-Provider gleich bleibt.

Einer der meist genutzen 3rd Party Tools ist Terraform von HashiCorp. Es ist mit TerraForm deutlich einfacher ein Template zu erstellen und bietet mehr Übersicht über Infrastructure Updates und Deployments. Damit ergänzt TerraForm die Bordmittel-Lösung CloudFormation um, wichtige Funktionalitäten.

Für Azure ist TerraForm noch nicht besonders ausgereift zumindest für den Azure PaaS Bereich, dennoch kann man schon jetzt darauf zurückgreifen wenn man IaaS Umgebungen beschreibt.

Fazit

Aufgrund der stetigen Weiterentwicklung und starke Community wird TerraForm immer interessanter für Firmen, die eine Multi-Cloud Strategie fahren. TerraForm ist in der Open Source Version kostenlos und kann von Github bezogen werden. Die Enterprise Version bietet weitere Vorteile wie Github Integration, Notifications etc. für Preise sollte man sich direkt an HashiCorp wenden.

Viel Spaß beim Ausprobieren, 

Lennart 

  • Erstellt am .
Copyright by Orange Networks GmbH