Alle 14 Tage aktuelle News aus der IT-Szene >
Gastbeitrag: Die beiden Amazon Web Services (AWS) Solutions Architekten Luis Morales und Andreas Juffinger erklären, was hinter dem Begriff "Infrastructure-as-Code" steckt und warum es eine zentrale Rolle in modernen Entwicklungsmethodiken und Rechenzentren spielt.
Foto: AWS Die Autoren Andreas Juffinger (li.) und Luis Morales (re.) sind Solutions Architekten bei Amazon Web Services (AWS) Infrastruktur-as-Code (IaC) hat sich mittlerweile als Best Practice in der Bereitstellung von Infrastrukturdiensten etabliert. IaC spielt für die Provisionierung von IT Ressourcen wie Rechenkapazität, Datenspeicher und Netzwerk, also die klassischen Datenverarbeitungskomponenten, aber auch Datenbanken, Auditierungs-, Monitoring- und viele andere IT-Dienste eine wichtige Rolle. Die manuelle Bereitstellung von Infrastruktur für ein Projekt oder neue Softwareanwendungen erfordern die Zusammenarbeit und zeitliche Orchestrierung von mehreren IT-Betriebsexperten. Übergabeschritte im Bereitstellungsprozess lassen sich kaum vermeiden und häufig kommt es zu langen Durchlaufzeiten. Höhere Automatisierung und Self-Service sind daher gefragt.
Bei dem Infrastructure-as-Code-Ansatz wird die Bereitstellung und Konfiguration der benötigten IT-Infrastruktur auf Basis von menschenlesbarem Code zur Verfügung gestellt. Die IaC-Software stellt den Unterschied zwischen dem so definierten gewünschten Zielzustand und dem Ist-Zustand fest und übernimmt die automatisierte Provisionierung und Konfiguration der Infrastruktur mit Hilfe der bereitgestellten Programmierschnittstellen (APIs).
Gut eingesetzt werden konnte es zum Beispiel beim österreichischen IT-Unternehmen Dynatrace, um schnell auf Kundenanforderungen reagieren zu können. Mit AWS IaC-Werkzeugen kann nun innerhalb von wenigen Stunden die Infrastruktur für 1.000 Enterprise-Kunden bereitgestellt werden. Ein anderes Szenario im Software-as-a-Service-Bereich sind dedizierte Kundenumgebungen, wenn aus datenschutzrechtlichen Gründen für viele Kunden identische, aber isolierte Infrastrukturen automatisiert erzeugt und gewartet werden müssen.
Die wesentlichen Teile eines IaC-Baukastens sind:
Die Agilität einer IT-Organisation kann nur so hoch sein, wie der am wenigsten agile Prozess, der durchlaufen werden muss, um Ergebnisse zu liefern. Damit die Bereitstellung von Infrastruktur hier nicht zu einem Flaschenhals wird, unterstützen IaC-Werkzeuge wie AWS CloudFormation die Bereitstellung von Ressourcen auf Knopfdruck.
Durch den Infrastructure-as-Code-Ansatz erhöht sich nicht nur die Lesbarkeit für die Administratoren, sondern auch die Nachvollziehbarkeit. Denn die Infrastrukturbeschreibung kann in einer Versionsverwaltung wie Git geführt werden. Dadurch können mehrere Personen gleichzeitig die Infrastrukturdefinition bearbeiten, Änderungen mit Hilfe der Versions-Historie nachvollziehen und überprüfen. Die Infrastruktur wird also genau wie Anwendungscode behandelt. IT-Betriebsexperten können zudem komplexe Standards und Compliance-Aspekte als IaC-Module bereitstellen und kontrollieren, wodurch IaC zur Verbesserung von Sicherheit und Compliance beitragen kann. IaC ist ein zentraler Baustein, um das Risiko für Fehler durch den Wegfall von manuellen Schritten zu reduzieren. Der IaC-Ansatz hilft allerdings nicht nur bei der Definition der notwendigen Infrastruktur-Komponenten, sondern auch beim Ausrollen. Durch die in sich geschlossene Beschreibung lässt sich ein System nicht nur einmalig provisionieren, sondern auch wiederverwenden. Neben höherer Agilität und Wiederverwendbarkeit erlaubt IaC auch, nicht benötigte Infrastruktur automatisiert zu löschen und so Kosten zu verringern. Zusätzlich werden Aufwände um Experimentierumgebungen aufzusetzen verringert und die Erprobung neuer Technologien vereinfacht. Das fördert Innovation und Wissensaufbau in den Teams.