Suchen

Automatisieren bis nichts mehr geht Was ist Infrastructure as Code (IaC)?

| Autor / Redakteur: Ariane Rüdiger / Ulrike Ostler

Je größer und je agiler Infrastrukturen werden, desto komplexer gestalten sich Bereitstellung, Konfiguration und Konfigurationsmanagement. Hier kann Infrastructure as Code (IaC) helfen, denn diese Technologie automatisiert die Abläufe.

Firmen zum Thema

Infrastructure as Code flexibilisiert, automatisiert und beschleunigt die Infrastrukturbereitstellung und -konfiguration
Infrastructure as Code flexibilisiert, automatisiert und beschleunigt die Infrastrukturbereitstellung und -konfiguration
(Bild: © djama - stock.adob.com )

Administratoren verbrachten bislang viel Zeit damit, Maschinen zu konfigurieren und zu rekonfigurieren. Da die Infrastrukturen immer größer werden und die Ansprüche an die Flexibilität steigen, kommt dieses Verfahren an seine Grenzen.

Das gilt erst recht, wenn sich die betroffene Infrastruktur in einer Public Cloud befindet, etwa bei AWS, Google oder Microsoft. Auch die agile Softwareentwicklung mit DevOps-Verfahren überfordert herkömmliche Konfigurationsabläufe.

Einmal entwickeln, immer wieder benutzen

Hier hilft Infrastructure as Code. Das bedeutet letztendlich nichts anderes, als Infrastrukturen von einem zentralen Admin-Server aus durch Skripte bereitzustellen, zu konfigurieren, zu rekonfigurieren und gegebenenfalls auch wieder freizugeben, wenn ihre Aufgabe erfüllt ist. Gleichartige Infrastrukturen, beispielsweise ein Server mit bestimmten virtualisierten Ressourcen, Speicher und Netzverbindungen, können mit ein und demselben Skript wieder und wieder bereitgestellt werden.

Infrastrukturskripte lassen sich versionieren, sprich: Skripte für Serverumgebungen können auf Basis eines Grundskripts in verschiedenen Versionen erstellt werden – beispielsweise 'mal mit mehr, 'mal mit weniger Speicher. Hat das Administrationsteam die nötigen Versionen und Varianten eines Skripts erstellt, können auch Mitarbeiter aus anderen Bereichen, etwa der Entwicklung, die Skripte verwenden, um schnell und ohne Belastung des Administrationsteams entsprechende Ressourcen für sich herbeizuschaffen.

Tools und Sprachen

Entsprechende Tools arbeiten entweder nach dem Push- oder nach dem Pull-Verfahren. Bei ersterem schickt der Master-Server seine Skripte an die bereitzustellenden Server, die sie dann ausführen, im zweiten Fall ziehen sich die Server die Skripte herunter.

Für IaC braucht man spezielle Softwarewerkzeugen und viele Tools verwenden domain-spezifische Sprachen (DSL). Das bedeutet natürlich, dass diese erlernt und beherrscht werden müssen, was einen gewissen Aufwand bedeutet.

Orchestrierung und Konfiguration

Es gibt Werkzeuge, die vor allem beschreiben, wie die erwünschte Infrastruktur aussieht (deklarativ). Die Software erledigt dann die nötigen Abläufe im Hintergrund. Andere ermöglichen es, neben der Konfiguration auch den Entstehungsprozess in einzelnen Befehlsschritten vorzugeben (instruktiv).

Es wird zwischen Orchestrierungs- und Konfigurations-Management-Tools unterschieden. Erstere stellen Infrastrukturkomponenten wie Server, Storage oder Netzverbindungen bereit. Die zweitgenannten konfigurieren Software und Systeme in diesen Infrastrukturen. Meist haben aber die Tools auch wenigstens einige Funktionen des jeweils anderen Bereichs.

Quellen für Iac-Tools

IaC-Tools kommen in der Regel aus drei möglichen Quellen: Cloud-Provider, Open Source und Tools von auf das Thema spezialisierten Herstellern.

Durch Orchestrierungstools wie Terraform wird das Ad-hoc-Deployment der Wunsch-Infrastruktur verschlankt, automatisiert und sicherer gemacht
Durch Orchestrierungstools wie Terraform wird das Ad-hoc-Deployment der Wunsch-Infrastruktur verschlankt, automatisiert und sicherer gemacht
(Bild: HashiCorp )

Das erste IaC-Tool gab es mit „CFEngine“ schon 1993. Es ist in C geschrieben und beschreibt den erwünschten Status der betroffenen Umgebung in einer domänenspezifischen Sprache. Anschließend überwachen Agenten die Umgebungen daraufhin, dass sie sich in Richtung der erwünschten Zustände bewegen.

Cloud-Provider und Open Source

Ein bekanntes Beispiel für ein IaC-Tool eines Cloud-Providers ist der Orchestrierer „AWS Cloud Formation“. Auch Google und Azure haben ähnliche Lösungen aufzuweisen.

Ein typisches Beispiel für ein Open-Source-Projekt ist das beliebte Orchestrierungs-Tool „Red Hat Ansible“. Mit Ansible und seiner speziellen DSL lassen sich Umgebungen in sogenannten Playbooks definieren, die immer wieder verwendet und modifiziert werden können.

Eine andere Herangehensweise wählt Saltstack. Hier benutzt man keine spezielle DSL, sondern Python, um die gewünschte Infrastruktur zu beschreiben. Das soll die Lesbarkeit erleichtern. Man spricht in Zusammenhang mit Saltstack von Infrastructure as Data.

Spezialisierte Hersteller

Eine ganze Reihe Softwarehersteller hat sich auf Automatisierungs-Tools für virtualisierte (Cloud-)Umgebungen spezialisiert. Ein relativ umfassendes Portfolio hat Hashicorp: Terraform orchestriert große Multicloud-Umgebungen, Vagrant kleinere Entwicklungsumgebungen, Nomad übernimmt das Management der Netzinfrastruktur und so weiter. Zwei Anbieter von Konfigurations-Management-Tools für IaC sind Puppet und Chef.

HPE baut seine Lösungsfamilie „Composable Infrastructure“ auf dem IaC-Prinzip auf. Hardwareplattform ist hier „HPE Synergy“, deren Ressourcen per Befehlszeile Anwendungen fertig konfiguriert bereitgestellt und nach Gebrauch wieder freigegeben werden können.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 46382839)