Docker und DevOps - Teil 2
Welche Vorteile bietet Infrastructure as Code (IaC)?
Dynamische Infrastrukturen sind beeindruckend, leicht zu erklären und die Vorteile liegen auf der Hand. Aber es gibt noch mehr zu entdecken! Infrastructure As Code (IaC) hat wie dynamisches Hosting ebenfalls ein enormes Potenzial. Um die Vorteile von Infrastructure As Code zu verstehen, werfen wir zunächst einen Blick auf den traditionellen Ansatz. Nicht nur die Server sind hier größtenteils statisch, sondern auch für deren Einrichtung und Konfiguration sind hauptsächlich manuelle Schritte notwendig.Das Öffnen des Kartons, in dem ein neuer Server geliefert wird und das Anschließen der Kabel sind zum Beispiel manuelle Tätigkeiten. Bei Infrastructure As Code laufen diese Prozesse hingegen in einer virtuellen Umgebung ab. Hier können diese Schritte wie auch alle weiteren Setup- und Konfigurationsarbeiten als Code geschrieben werden.
Ein großes Problem des manuellen Ansatzes, der das Management überraschen mag, aber kein Geheimnis für Server-Administratoren ist: Das Infrastruktur-Setup und Änderungen werden oft überhaupt nicht oder nur unzureichend dokumentiert. Mit anderen Worten, man kann in einen Raum mit Server-Administratoren eine große Stille erzeugen, wenn man nach einem Installations- und Änderungsblog fragt.
Auf der anderen Seite ist das Dokumentieren zeitaufwendig und Server-Administratoren stehen immer unter großem Druck, insbesondere wenn Änderungen durchzuführen sind. In einer Notfallsituation kann eine ordnungsgemäße Dokumentation jedoch „lebensrettend“ sein. Andersherum ist eine Änderung an der Infrastruktur ohne Dokumentation bis zu einem gewissen Grad wie das Fahren im Dunkeln mit ausgeschalteten Scheinwerfern.
Vorteile in der Übersicht
Nicht so bei IaC. Probleme, die bei einem manuellen Setup auftreten, lösen sich hier von selbst:- Vollständige Dokumentation: Die eben angesprochene mangelnde Dokumentation wird vermieden. Ein Mangel an Dokumentation in der IT ist ein nicht zu unterschätzendes Risiko für jedes Unternehmen bzw. jede Organisation. Mit Infrastructure As Code gibt es eine vollständige, lesbare und versionierte Dokumentation der Umgebung.
- Geringere Fehleranfälligkeit bei Änderungen: Es ist übliche Praxis für Source-Code, eine Versionskontrolle zu haben. Ebenso kann der Code, der die Serverinfrastruktur definiert, auch versioniert werden. Dadurch sind Infrastrukturänderungen kontrolliert, vollständig nachvollziehbar, versioniert und können, falls erforderlich, einfacher rückgängig gemacht werden. Ist beispielsweise nach einer Änderung der Infrastruktur die Leistung nicht mehr wie erwartet, ist es sehr einfach über einen Vergleich des darunter liegenden Source-Codes die Änderungen („Diff“) auf einen Blick zu sehen und so die Ursache einzukreisen. In einer traditionellen Umgebung ist das nahezu unmöglich oder zumindest kompliziert und fehlerbehaftet. Durch das geringere Risiko ist es sinnvoll, die Infrastruktur häufiger zu optimieren und so über mehr Leistung zu geringeren Kosten zu erzielen.
- Einrichten einer Testumgebung: Beim Ausrollen neuer Software-Versionen ist es üblich, sie in einer Staging- (oder Integrations-) Umgebung zu testen, bevor sie „live“ gehen. Das Einrichten der Testumgebung ist nicht nur schneller und einfacher, es ist auch garantiert, dass die Testumgebung absolut identisch ist. Die manuelle Einrichtung einer Staging-Umgebung, die mit der Produktionsumgebung identisch ist, erfordert lange und konzentrierte Arbeit, die aufgrund ihrer Monotonie meist fehlerbehaftet ist. Auch Failover-Redundanz und Backup-Lösungen sind klar definiert und es ist einfacher, Diskrepanzen zu erkennen, statt sich in falscher Sicherheit zu wiegen.
- Identische Einrichtung: Internationale Infrastrukturen sind mit Infrastructure As Code Servern weltweit auf identische Weise eingerichtet, was die Verwaltung und Kontrolle vereinfacht.
- Einfache Wiederherstellung: Im Falle eines Totalverlusts kann die Wiederherstellung der Infrastruktur Hunderte von manuellen Schritten und mehrere Arbeitstage in einer traditionellen Umgebung erfordern – abhängig von der Existenz und Qualität der Dokumentation. Mit der Infrastructure As Code kann sogar eine sehr komplexe Serverumgebung in 30 Minuten komplett eingerichtet und konfiguriert werden. Ein „Mausklick“ ist die einzige manuelle Arbeit, die dafür notwendig ist. Der totale Verlust der Infrastruktur ist natürlich kein allzu wahrscheinliches Szenario. Der Wiederaufbau einer Infrastruktur, verdeutlicht aber die allgemeine Idee von Infrastructure As Code.
- Dynamische Infrastrukturen: Infrastructure As Code ist eine hervorragende Idee für dynamische Infrastrukturen. Wenn Server nicht mehr benötigt werden, können sie einfach gelöscht werden, was Kosten spart und die Struktur transparent hält. Wenn ein neuer Server gestartet wird, wird er innerhalb von ein bis zwei Minuten automatisch „von Null auf neu“ eingerichtet und konfiguriert. Dies geschieht immer und immer wieder und dabei absolut zuverlässig.
- Einfachere Zusammenarbeit: Das Arbeiten an der Server-Infrastruktur in Teams ist ebenfalls einfacher, da zuerst der Code geschrieben wird, dann mögliche Teamarbeitskonflikte gelöst werden und zuletzt die endgültige Infrastrukturdefinition als Ganzes angewendet wird.
Wir unterstützen Sie beim Einrichten Ihrer IaC-Infrastruktur!
h.com verfügt über langjährige Erfahrung im Einsatz von Infrastructure as Code und hilft Ihnen gerne Ihre Anwendungen mit Hilfe dieses Infrastruktur-Setups zu betreiben oder mit Ihnen gemeinsam die notwendigen Anpassungen Ihrer bestehenden Infrastruktur vorzunehmen. Sprechen Sie uns an.Christian Haag, Gründer und Geschäftsführer von h.com networkers GmbH