ADMIN
2023
06
2023-05-30T12:00:00
Automatisierung
AKTUELL
010
Interview
Netzwerk
Ethernet
Interview
»IT-Landschaften auf Basis von IaC bieten mehr Kontrolle«
Redaktion IT-Administrator
Veröffentlicht in Ausgabe 06/2023 - AKTUELL
Der Zug der Automatisierung rollt unaufhörlich in Richtung Infrastructure-as-Code. Wie der Ansatz des deklarativen Codes zum Aufbau von IT-Infrastrukturen die Arbeit von IT-Abteilungen verändert, besprachen wir mit Sebastian Weiss, Area Vice President DACH bei HashiCorp, dem Anbieter des bekannten IaC-Werkzeugs Terraform.
IT-Administrator: Für IT-Verantwortliche ist einer der schwierigsten Schritte auf dem Weg zur Automatisierung via Infrastructure-as-Code die Standardisierung. Können Sie hier Best Practi- ces nennen und erklären, warum diese so wichtig sind – sprich, was droht, wenn sie nicht berück- sichtigt werden?
Sebastian Weiss:Wir haben verschiedene Best Practices identifiziert, die für eine erfolgreiche IaC-Automatisierung von zentraler Bedeutung sind. Diese beinhalten zunächst mit der Versionierung eine Methode zur Nachverfolgung von Änderungen, Zusammenarbeit und Rollbacks – falls erforderlich. Daneben sollten ITVerantwortliche auf Modularität achten und kleine, wiederverwendbare Komponenten zur Skalierung und einfachen Wartung einsetzen, die im gesamten Ökosystem verwendet werden können. Entscheidend ist auch deklarativer Code. Dies ist eine Methode zur Vereinfachung des Codes und Verbesserung der Lesbarkeit, indem der Code den gewünschten Endzustand widerspiegelt. Außerdem ist hier der deklarative Ansatz dem imperativen Ansatz weit überlegen. Einfach gesagt: Admins legen den Zielzustand fest – quasi unabhängig vom Ausgangspunkt. Auch kommt Automatisierung innerhalb der Automatisierung zum Tragen, um Konsistenz zu gewährleisten und die manuelle Eingabe von Befehlen zu minimieren. Dies erlaubt außerdem eine Trennung von Know-how und Know-what. Dies bedeutet ebenfalls einen Zeitgewinn beim Etablieren der notwendigen Kenntnisse und Fähigkeiten. Last not least ist das Konfigurationsmanagement zu berücksichtigen – ein Prozess, der die Konsistenz der Softwarekonfiguration gewährleistet. Schließlich ist natürlich auch das Testen ein entscheidender Prozess zur Überprüfung des erwarteten und unerwarteten Verhaltens der Software, um ihre Funktionsfähigkeit innerhalb des Ökosystems zu gewährleisten. Nur so sind IT-Verantwortliche in der Lage, in einer dynamischen, sich schnell verändernden und ständig wachsenden IT mitzuhalten. Andernfalls sind Fehlkonfigurationen, Betriebsausfälle, Sicherheitslöcher oder gar Schatten-IT programmiert – ganz zu schweigen vom Wettbewerbsnachteil gegenüber der Konkurrenz.
IT-Infrastrukturen sind heutzutage hochkomplex. Welche Ansätze haben sich bewährt, damit ITTeams die für IaC notwendige Übersicht darüber haben und alle Abhängigkeiten berücksichtigen?
IT-Administrator: Für IT-Verantwortliche ist einer der schwierigsten Schritte auf dem Weg zur Automatisierung via Infrastructure-as-Code die Standardisierung. Können Sie hier Best Practi- ces nennen und erklären, warum diese so wichtig sind – sprich, was droht, wenn sie nicht berück- sichtigt werden?
Sebastian Weiss:Wir haben verschiedene Best Practices identifiziert, die für eine erfolgreiche IaC-Automatisierung von zentraler Bedeutung sind. Diese beinhalten zunächst mit der Versionierung eine Methode zur Nachverfolgung von Änderungen, Zusammenarbeit und Rollbacks – falls erforderlich. Daneben sollten ITVerantwortliche auf Modularität achten und kleine, wiederverwendbare Komponenten zur Skalierung und einfachen Wartung einsetzen, die im gesamten Ökosystem verwendet werden können. Entscheidend ist auch deklarativer Code. Dies ist eine Methode zur Vereinfachung des Codes und Verbesserung der Lesbarkeit, indem der Code den gewünschten Endzustand widerspiegelt. Außerdem ist hier der deklarative Ansatz dem imperativen Ansatz weit überlegen. Einfach gesagt: Admins legen den Zielzustand fest – quasi unabhängig vom Ausgangspunkt. Auch kommt Automatisierung innerhalb der Automatisierung zum Tragen, um Konsistenz zu gewährleisten und die manuelle Eingabe von Befehlen zu minimieren. Dies erlaubt außerdem eine Trennung von Know-how und Know-what. Dies bedeutet ebenfalls einen Zeitgewinn beim Etablieren der notwendigen Kenntnisse und Fähigkeiten. Last not least ist das Konfigurationsmanagement zu berücksichtigen – ein Prozess, der die Konsistenz der Softwarekonfiguration gewährleistet. Schließlich ist natürlich auch das Testen ein entscheidender Prozess zur Überprüfung des erwarteten und unerwarteten Verhaltens der Software, um ihre Funktionsfähigkeit innerhalb des Ökosystems zu gewährleisten. Nur so sind IT-Verantwortliche in der Lage, in einer dynamischen, sich schnell verändernden und ständig wachsenden IT mitzuhalten. Andernfalls sind Fehlkonfigurationen, Betriebsausfälle, Sicherheitslöcher oder gar Schatten-IT programmiert – ganz zu schweigen vom Wettbewerbsnachteil gegenüber der Konkurrenz.
IT-Infrastrukturen sind heutzutage hochkomplex. Welche Ansätze haben sich bewährt, damit ITTeams die für IaC notwendige Übersicht darüber haben und alle Abhängigkeiten berücksichtigen?
Bewährte Methoden und eine zentrale Quelle, die sogenannte "central source of truth", für alle relevanten Daten beziehungsweise Informationen beim Plattformteam können dazu beitragen, dass der Betrieb optimiert, Entwicklungsprozesse effizienter gestaltet und die Last auf der Softwareentwicklung verringert werden. Zudem erlauben sie, das Risiko im Zusammenhang mit mangelhafter Beobachtung und benutzerdefinierter Implementierung zu reduzieren. Das Plattformteam ist spezialisiert auf die Entwicklung wiederverwendbarer Module, die die Anwendungsteams nutzen können. Durch das Einbinden von Mitgliedern des Plattformteams in die Anwendungsteams verbessert sich die Akzeptanz neuer Produkte. Eine agile Feedbackschleife ermöglicht zudem eine fortlaufende Optimierung und Modularisierung des Codes.
»Manchmal ist die einfachste Lösung auch die beste!«
In diesem Zusammenhang spielt natürlich auch die Sicherheit eine Rolle.
IT-Landschaften, die mithilfe von IaC eingerichtet werden, bieten im Vergleich zu manuellen Implementierungen und "ClickOps" mehr Kontrolle. Der Grund dafür liegt darin, dass menschliches Eingreifen hier eine wesentlich kleinere Rolle spielt und somit weniger Raum für menschliche Fehler besteht. Sollte es dennoch zu Fehlern kommen, lassen sich diese über IaC zurückverfolgen, beheben und Umgebungen auf konsistente Weise erneut bereitstellen. Durch die Industrialisierung von IaC und die Nutzung von Best Practices werden Abhängigkeiten und Schwachstellen im gesamten Ökosystem einheitlich und effizient behoben. Das allein erhöht die Sicherheit der Infrastruktur.
Gibt es bei Infrastructure-as-Code Grenzen der Skalierbarkeit? Wie sollten IaC-Code und IT-Infrastruktur geplant sein, um Skalierbarkeit zu gewährleisten?
Organisationen stoßen bei der Skalierung von IaC oft auf Herausforderungen, die direkt mit ihrer Struktur zusammenhängen. Insbesondere in komplexen Organisationen kann es schwierig sein, ein einziges Plattformteam für das gesamte Unternehmen einzurichten. Die Definition von Parametern und inhaltliche Abgrenzung für Plattform und Module ist dabei eine echte Herausforderung. Um die Komplexität zu reduzieren, bieten sich größere Module an, kleinere Module bieten jedoch mehr Flexibilität. Das optimale Gleichgewicht zwischen beiden ist für die erfolgreiche Skalierung eines IaC-Programms entscheidend.
Was empfehlen Sie IT-Verantwortlichen in Sachen Versionskontrolle, um sicherzustellen, dass Änderungen auf konsistente Weise erfolgen?
Eine erfolgreiche IaC-Implementierung erfordert eine klare Versionierung. Dadurch können die Flexibilität gewährleistet und Risiken im Zusammenhang mit Modularität innerhalb des CI/CD-Prozesses vermieden werden. Eine einheitliche Versionierungsstrategie reduziert das Risiko menschlicher Fehler. Die Versionierung muss konsistent, dokumentiert und für die Nutzer verständlich sein. Um dies zu erreichen, sollten branchenübliche Methoden zum Einsatz kommen, die eine schnelle Anpassung der Teams ermöglichen.
Wie lässt sich IaC-Code am besten vor dem Ausrollen testen?
Vorausgesetzt, dass die Validierung der Infrastruktur durch "Policy-as-Code" bereits etabliert ist und Designtests erfolgt sind, unterscheidet sich das Testen von IaC nicht wesentlich vom traditionellen Code-Testing. Grundsätzlich sollten folgende Tests laufen: automatisierte Unit- Tests, um die Funktionalität einzelner Ressourcen zu überprüfen, Integrationstests, um die Ressourcen in einem breiteren Ökosystem zu kontrollieren, Abnahmetests, um sicherzustellen, dass die Infrastruktur den Anforderungen entspricht, sowie Code-Analysen, um Anomalien und potenzielle Schwachstellen zu erkennen. Diese Tests sind entscheidend für den Einsatz von IaC. IT-Verantwortliche sollten sie kontinuierlich und automatisiert durchführen, um eine optimale Funktionalität der Infrastruktur zu gewährleisten.
Die Einführung von Automatisierung via IaC kann zunächst hohe Kosten verursachen, da sie die Einführung neuer Technologien und Ressourcen erfordert. Auf was sollten IT-Verantwortliche dabei achten?
Bevor Unternehmen mit digitaler Transformation, der Automatisierung ihrer Prozesse oder IaC beginnen, müssen sie sich klar darüber werden, welche Strategie und welches Ziel sie damit verfolgen: Soll es vor allem um Geschwindigkeit, Kosten oder Sicherheit gehen? Oder ist es eine Kombination daraus? Damit Entwickler innerhalb der organisatorischen Vorgaben arbeiten, sind klare Leitplanken mithilfe von "Policy as Code" festzulegen. Einmal definiert, können Engpässe automatisiert werden, um die Prozesse zu beschleunigen. Wichtig dabei ist jedoch, zunächst wirklich Engpässe anzugehen und nicht sofort auf Optimierung zu setzen, um mögliche Auswirkungen auf Mitarbeiter und Prozesse zu minimieren. Manchmal ist die einfachste Lösung auch die beste – selbst wenn das bedeutet, eine bisherige Implementierung zu verwerfen.
Neue Ressourcen umfasst gewiss auch neues Know-how für das IT-Team. Welche Aspekte in Sachen Fortbildung und Schulung sind für IT-Verantwortliche in diesem Umfeld unverzichtbar?
Bei Transformationsprogrammen ist es von entscheidender Bedeutung, dass die Mitarbeiter eine umfassende Schulung in der zugrundeliegenden Technologie erhalten und das gesamte Ökosystem verstehen. Experten bestimmter Bereiche sollten mit Generalisten zusammenarbeiten und passiven Wissenstransfer ermöglichen, um die Produktentwicklung zu optimieren. Darüber hinaus ist eine angemessene Schulung für Infrastruktur- als-Code-Tools notwendig, damit alle Teams, die damit arbeiten oder dazu beitragen, diese Werkzeuge optimal nutzen können.
Bleiben wir beim Thema Personal unter dem Stichwort "Fachkräftemangel". Kann Infrastructureas- Code helfen, mittel- und langfristig interne Personalressourcen freizuschaufeln? Und wie ändert sich die Arbeit des IT-Teams durch IaC?
Infrastruktur-as-Code ist ein wirksames Mittel, um den Fachkräftemangel in der IT-Branche zu bekämpfen. IT-Verantwortliche können mit IaC ihre kognitive Belastung reduzieren und auf vorgefertigte Vorlagen und Blaupausen zugreifen, ohne dass sie alles von Grund auf neu aufbauen müssen. Dies führt zu einer Reduzierung des Bedarfs an Ressourcen und Fachkräften, indem es den IT-Workflow vereinfacht. Unternehmen können somit effizienter arbeiten und ihre Fachkräfte für innovative Projekte einsetzen, anstatt sie mit Routineaufgaben zu belasten oder das Rad neu zu erfinden.
Vielen Dank für das Gespräch.