Consol
02.02.2021, 11:25 Uhr
Ansätze zur Infrastruktur-Automatisierung
Automatisierung hat in der Software-Entwicklung zu großen Erfolgen geführt. Der IT-Dienstleister Consol setzt dieses Vorgehen auch im Infrastrukturbereich ein und nennt die wichtigsten methodischen Ansätze für die Automatisierung im Rechenzentrum.
Nachdem IT-Infrastrukturen immer stärker virtualisiert und durch Software definiert werden, können die im Software-Segment gemachten Erfahrungen auch als Vorbild und Methodenlieferant für die Automatisierung im Rechenzentrum dienen.
(Quelle: Consol.de, iStock)
In der Software-Entwicklung sind Automatisierungsprozesse längst unverzichtbar. Für die Bereitstellung (Provisionierung) und Wartung (Maintenance) von Anwendungen hat dafür eine inzwischen weit fortgeschrittene Evolution von Werkzeugen und Methoden stattgefunden, die die Entwicklungsgeschwindigkeit, Effizienz und Ausfallsicherheit von Software enorm gesteigert hat. Nachdem IT-Infrastruktur wie Speichersysteme, Server und Netzwerk-Komponenten immer stärker virtualisiert und durch Software definiert werden, können die im Software-Segment gemachten Erfahrungen jetzt auch als Vorbild und Methodenlieferant für die Automatisierung im Rechenzentrum dienen. Der IT-Dienstleister Consol nennt die fünf wichtigsten methodischen Ansätze aus der Software-Entwicklung, die dafür übernommen werden können.
- Everything as Code: Die Definition von IT-Infrastruktur als Code in Form einer Art "Schablone" verhindert Varianzen in der Ausführung und ermöglicht unter anderem das einfache Handling komplexer Konstrukte, die mehrfache Erzeugung von Instanzen, die Nachverfolgung von Änderungen in einem Code-Repository, die Dokumentation von Soll-Zuständen sowie die automatische Ermittlung möglicher Abweichungen vom definierten Ist-Zustand ("Drift Detection").
- Automated Testing: Veränderungen an der Definition der Infrastruktur können automatisiert getestet werden. Dabei wird für den Testlauf die Infrastruktur automatisch als Instanz auf einem dedizierten Staging-System (identisches Abbild des Produktivsystems) bei einem Cloud-Provider aufgesetzt und dort anhand von softwaregetriebenen Tests überprüft. Anschließend kann das Staging-System ebenso selbständig wieder rückstandsfrei zurückgefahren werden.
- Parallelisierung: Sobald ein Provisioning-Prozess mit der Verwaltung von allen Diensten, Rechten und Ressourcen einmal automatisiert ist, kann er mehrfach parallel ausgeführt werden. So kann beispielsweise das Upgrade dutzender Instanzen eines Systems auf eine neue Version gleichzeitig gefahren werden.
- Parametrisierung: Ein IT-Automationscode lässt sich genauso wie Software über komplexe Parameter steuern. Dadurch kann man eine Infrastruktur-Vorlage mehrfach in unterschiedlichen Varianten als Instanzen für konkrete Systeme nutzen. Damit lassen sich beispielsweise mit geringem Aufwand individuelle Mandanten-Installationen mit leicht unterschiedlichen Ausprägungen realisieren.
- Idempotenz: In Anwendungen liefern idempotente Prozesse immer das gleiche Ergebnis, egal wie oft sie aufgerufen werden. Dadurch sind sie besonders robust. Übertragen auf die IT Automation erlauben sie das nachträgliche Einpflegen von Änderungen in einem komplexen Infrastruktur-Code, der anschließend auch auf bereits existierende Systeme angewendet werden kann.
Erstaunlich viele Konzepte und Vorgehensweisen aus der Software-Entwicklung lassen sich für die Infrastruktur-Automatisierung nutzen. Aber es gibt auch Unterschiede und Grenzen der Übertragbarkeit. So ist es in der Software-Entwicklung üblich, die Software auf dem lokalen System des Entwicklers bereits zu testen. Eine komplexe Cloud-Infrastruktur lässt sich für den Zweck natürlich nicht lokal abbilden. Dadurch sind Testläufe von Änderungen nur sehr eingeschränkt in virtuellen Maschinen oder Docker-Containern auf einem eigenen Rechner möglich. Die Grenzen der Infrastruktur-Automatisierung werden von der nach wie vor physischen Basis der Server-, Storage- und Netzwerk-Systeme vorgegeben. Sie können deshalb prinzipiell nicht so dynamisch verwaltet werden wie Software. Trotzdem sind weitere Automatisierungsschritte möglich, etwa durch das Konzept der "immutablen Systeme". Um ein System zu verändern, ändert man dabei nicht die aktuelle Instanz, sondern ersetzt sie durch eine neue, separat vorgetestete Instanz auf Basis einer veränderten Schablone. Das hat natürlich dort seine Grenzen, wo die alte Instanz auch Anwendungsdaten enthält und deswegen nicht einfach ersetzt werden kann. Noch weiter gehen hier Containerisierungs-Konzepte wie beispielsweise Kubernetes, die Installation und Daten strikt trennen, so dass erstere beliebig ersetzt werden kann, während letztere erhalten bleiben.