Es besteht kein Zweifel, dass Cloud-Computing einen großen Einfluss darauf hat, wie Unternehmen sich entwickeln und skalieren. Die Möglichkeit, mit wenigen Tastenklicks die Bereitstellung von Servern, Datenbanken und anderen Infrastrukturen zu realisieren, hat zu einer Steigerung der Produktivität geführt, die man so zuvor noch nicht erlebt hat.

Während es gar nicht so komplex ist einfache Cloud-Architekturen zu erstellen, können Fehler bei der Bereitstellung großer Architekturen leicht passieren. Das gilt umso mehr, wenn sich die Cloud-Infrastruktur durch das Anklicken von Schaltflächen in einer Web-Applikation starten lässt.

Der einzige Weg, diese Art von Fehlern zu vermeiden ist Automatisierung. Infrastructure as Code hilft Technikern selbst komplexe Cloud-Umgebungen schnell, fehlerfrei und automatisiert zu starten.

Wie die IT-Infrastruktur in der Vergangenheit bereitgestellt wurde

In der Vergangenheit war der Aufbau der IT-Infrastruktur eher ein manueller Prozess. Menschen mussten Server physisch in ein Rack stellen. Dann musste diese Hardware von Hand an die Anforderungen und Einstellungen des verwendeten Betriebssystems und der zu hostenden Anwendung angepasst werden. Schließlich musste die Anwendung auf der Hardware bereitgestellt werden. Erst dann konnte die Anwendung gestartet werden. Klingt fehleranfällig – ist es auch.

Dieser manuelle Prozess hat aber auch noch andere Nachteile.

Erstens kann es lange dauern, bis die notwendige Hardware beschafft ist. Man ist den den Produktions- und Lieferplänen des Hardwareherstellers ausgeliefert. Und wenn man Produkte benötigt, die auf spezifische Anforderungen zugeschnitten sind, kann es Monate dauern, bis man die Bestellung in Händen hält.

Als nächstes müssen qualifizierte Leute eingestellt werden, die die Setup-Arbeiten durchführen. Man benötigt Netzwerk-Teams, Storage-Teams und viele andere, um die Hardware zu warten. Das führt zu Overhead, Management und Kosten.

Aber damit fängt es erst an: Es müssen Immobilien erworben und Rechenzentren gebaut werden, in denen die gesamte Hardware untergebracht ist. Darüber hinaus müssen diese Rechenzentren gewartet werden, was bedeutet, dass entsprechende Mitarbeiter, aber auch Strom- und viele andere Kosten kalkuliert und bezahlt werden müssen.

Das Erreichen einer hohen Verfügbarkeit der benötigten Anwendungen ist ebenfalls ein Problem. So muss ein Backup-Rechenzentrum gebaut werden, was die gerade eben aufgezählten Kosten multipliziert.

Und dann ist es eine Sisyphos-Aufgabe, bis eine Anwendung für den Einsatz bei hohem Traffic skaliert ist. Ein langwieriger Prozess, der dafür sorgt, dass viele Anwendungen bei der Einrichtung der Hardware unter Nutzungsspitzen leiden werden. Das hat wiederum einen direkten Einfluss auf die Fähigkeit eines Unternehmens Kunden zu bedienen oder neue Produkte und Dienstleistungen schnell auf den Markt zu bringen.

Um Traffic-Spitzen zu berücksichtigen, müssen also möglicherweise mehr Server bereitgestellt werden, als tatsächlich täglich benötigt werden. Auf diese Weise stehen Server für große Zeiträume im Leerlauf. Das erhöht die Kosten und verschiebt den ROI weiter nach hinten.

Und da verschiedene Personen die Server manuell einrichten, sind die Konfigurationen höchst wahrscheinlich inkonsistent. Das führt zu unerwünschten Abweichungen in den Konfigurationen und wirkt sich nachteilig auf die Ausführung von Anwendungen aus.

Cloud-Computing adressiert diese Probleme und liefert Antworten

Dank der Cloud muss ein Unternehmen keine Server mehr verwenden, was alle Probleme und Kosten, die mit Humankapital und Immobilien verbunden sind, verringert. Außerdem lassen sich Server, Datenbanken und andere notwendige Infrastrukturen sehr schnell in Betrieb nehmen, was Schwierigkeiten der Skalierbarkeit, Hochverfügbarkeit und Agilität löst.

Bleibt das Problem mit der Konfigurationskonsistenz, bei dem die manuelle Einrichtung der Cloud-Infrastruktur zu Abweichungen führen kann: Menschen machen eben Fehler.

Hier kommt Infrastruktur als Code ins Spiel.

Infrastructure as Code ist der Ansatz zur Verwaltung der IT-Infrastruktur im Zeitalter von Cloud, Microservices und Continuous Delivery.“ – Sven Singer, Cloud Solution Specialist bei Braintower.

Definition: Infrastruktur als Code

Infrastruktur als Code (IaC) ist eine Methode zur Bereitstellung und Verwaltung der IT-Infrastruktur durch die Verwendung von Quellcode und nicht durch Standardbetriebsverfahren oder manuelle Prozesse. Im Grunde behandelt man Server, Datenbanken, Netzwerke und andere Infrastrukturen wie Software. Der Code kann helfen die Infrastrukturkomponenten schnell und konsistent zu konfigurieren und einzusetzen.

Konfigurationseinstellungen werden in Konfigurationsdateien geschrieben und dann verwendet. Diese Konfigurationsdateien beschreiben den gewünschten Zustand eines Systems und werden dann auf alle Zielsysteme angewendet. Das geschieht in der Regel mit einem Konfigurationsmanager wie Ansible oder Terraform.

Vorteile von Infrastructure as Code

Schnelligkeit und Einfachheit

IaC ermöglicht es, die gesamte Infrastrukturarchitektur durch die Ausführung eines Skripts zu erweitern. So lassen sich nicht nur virtuelle Server bereitstellen, sondern auch vorkonfigurierte Datenbanken, Netzwerkinfrastruktur, Speichersysteme, Load Balancer und alle anderen Cloud-Services starten. Außerdem kann man problemlos überall Standardinfrastrukturumgebungen bereitstellen, die damit auch als Backup und Disaster Recovery verwendet werden können.

Konsistenz der Konfiguration

Wenn die Adresse des Syslog-Servers in der IaC-Konfigurationsdatei falsch ist, ist die Einstellung auf allen Geräten falsch. Bei der bisherigen, manuellen Herangehensweise besteht der Fehler vielleicht nur bei einem von hundert Geräten. So einen Fehler zu finden, gleicht der Suche nach der Nadel im Heuhaufen.

IaC standardisiert jetzt den Aufbau der Infrastruktur vollständig. So wird die Wahrscheinlichkeit von Fehlern oder Abweichungen reduziert. Das sorgt für weniger Inkompatibilitätsproblemen mit der Infrastruktur und hilft Anwendungen reibungslos zu arbeiten.

Durch die Verwendung von IaC wird die Konfigurationsdatei zu einer Art Bestandsdokumentation. Ziel sollte es sein, innerhalb der Konfigurationsdatei so viele Konfigurationseinstellungen wie möglich festzulegen. So lässt sich mithilfe der Konfigurationsdatei ganz einfach der Ist-Zustand der Umgebung darstellen.

Risikominimierung

IaC automatisiert nicht nur Prozesse, sondern dient auch als Dokumentation und zur Instanziierung von Infrastruktur. Sie ist de facto eine Versicherung, falls Mitarbeiter mit institutionellem Wissen das Unternehmen verlassen. Da Code versionskontrollierbar ist, ermöglicht IaC die Dokumentation, Protokollierung und Nachverfolgung jeder Änderung aller Serverkonfigurationen. Und diese Konfigurationen können wie Code getestet werden.

Man kann in einem IaC-Skript auch das Herunterfahren von Umgebungen einbeziehen, wenn diese nicht verwendet werden. So wird man nicht mit einem Haufen verwaister Cloud-Komponenten konfrontiert, vor deren Bereinigung jeder zu viel Respekt hat. Das steigert die Produktivität der technischen Mitarbeiter, weil sie einen sauberen und organisierten Cloud-Account haben.

Kosteneinsparungen

Die Automatisierung des Infrastrukturbereitstellungsprozesses ermöglicht es Technikern, weniger Zeit mit manueller Arbeit und mehr Zeit mit der Ausführung hochwertiger Aufgaben zu verbringen.

Wie bereits erwähnt, kann ein IaC-Skript Cloud Umgebungen automatisch herunterfahren, wenn sie nicht genutzt werden, was die Kosten für Cloud-Computing weiter reduziert.

Fazit

Infrastructure as Code kann Infrastruktur-Bereitstellungsprozess vereinfachen und beschleunigen, Fehler vermeiden und Richtlinien etablieren, die Cloud Umgebungen konsistent halten und Unternehmen viel Zeit und Geld sparen. IT Spezialisten können produktiver sein, wenn sie sich auf höherwertige Aufgaben konzentrieren. Und Unternehmen ihre Kunden besser bedienen. Deshalb sind wir bei Braintower gerade begeistert von IaC. Dabei gilt, je komplexer die Architektur, desto höher der Nutzen durch IaC.

IaC ist möglicherweise nichts, wenn man nur einfache Cloud Umgebungen bereitstellen muss oder nur einen schnellen Prototyp der Umgebung machen will; denn hinter IaC steckt schon eine Menge komplexer Arbeit.

Trotzdem: Wenn IaC etwas ist, dass ihr noch nicht macht, ist es Zeit sich damit intensiver zu beschäftigen.

Hast du Fragen oder Anmerkungen, dann lass uns einen Kommentar da. Wir antworten garantiert.

Tim Hassdenteufel

Tim Hassdenteufel

Marketing

Tim mag Menschen, Ideen die ihn nervös machen und seinen Hund Stevie (meistens). Als er aufwuchs träumte er davon, der nächste van Gogh zu werden oder Werbung zu machen. Träume werden eben doch wahr. Dieser Music-Snob pflegt eine gefährliche Liebschaft zu Instagram und bestellt sich auf der Speisekarte mit Sicherheit das Seltsamste.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook
Facebook
0Share on LinkedIn
Linkedin
Email this to someone
email
Tweet about this on Twitter
Twitter