Infrastructure as Code (IaC) ist ein Ansatz zur Verwaltung von IT-Systeminfrastrukturen, der auf der Verwendung wiederholbarer Konfigurationsdateien basiert, um konsistente Bereitstellungsumgebungen für die CI/CD-Entwicklung zu generieren.

Was ist Infrastruktur als Code?

Infrastruktur als Code bezieht sich auf die Bereitstellung und Verwaltung von Infrastruktur, einschließlich Hardware, virtuellen Ressourcen, Plattformen, Containersystemen, Diensten und Topologien, durch deklarative oder skriptbasierte Definitionen – Code – und nicht durch manuelle Konfiguration oder die Verwendung herkömmlicher Konfigurationstools. IaC trennt Konfigurationen, Richtlinien, Profile, Skripte und Vorlagen von der Hardware oder Software, auf der sie bereitgestellt werden, sodass sie wie Code gespeichert, freigegeben, überarbeitet und angewendet werden können.

Dieser Ansatz, der mit der Popularität von Cloud-Infrastrukturen gewachsen ist, entspringt einer DevOps-Denkweise und wendet auf die Orchestrierung der Infrastruktur dieselbe Art von Versionskontrolle und Wiederholbarkeit an, die Entwickler für den App-Quellcode verwenden. Ein IaC-Ansatz unterstützt kontinuierliche Integration, Bereitstellung und Implementierung, indem bei jeder Anwendung dieselbe Infrastrukturumgebung erstellt wird.

Warum ist Infrastruktur als Code wichtig?

Die Fähigkeit, Infrastruktur wie Code zu behandeln, bringt die Vorteile von Automatisierung, Transparenz, Effizienz und Skalierbarkeit in das Infrastrukturmanagement ein, sodass Anwendungen schneller und zuverlässiger bereitgestellt werden können, mit weniger manuellem Aufwand und dem Risiko menschlicher Fehler oder Sicherheitslücken. Da die Konfiguration vom System entkoppelt ist, kann sie einfacher auf einem ähnlichen System an anderer Stelle bereitgestellt werden. Auf diese Weise werden die Herausforderungen bei der Migration von einem Rechenzentrum in eine Cloud oder von einer Cloud in eine andere reduziert.

IaC unterstützt auch agile Entwicklung und CI/CD-Strategien, indem es sicherstellt, dass Sandbox-, Test- und Produktionsumgebungen identisch sind und im Laufe der Zeit konsistent bleiben, da sie alle mit demselben deklarativen Code oder denselben Skripten konfiguriert sind.

Wie funktioniert Infrastruktur als Code?

Die IaC-Konfiguration von Servern, Lastenausgleichsmodulen, virtuellen Maschinen und anderen Rechenzentrums- oder Cloud-Ressourcen kann entweder durch imperative Ansätze erreicht werden, die Anweisungen vorgeben (ohne das Ergebnis im Detail anzugeben), oder durch deklarative Ansätze, die das gewünschte Konfigurationsergebnis vorgeben (ohne im Detail anzugeben, wie man dorthin gelangt, was auf bereits vorhandenen Arbeitsabläufen und Vorlagen basieren kann). Der Unterschied lässt sich damit vergleichen, ob man ein Sandwich bestellt und darauf vertraut, dass der Sandwich-Macher weiß, welche Schritte er in welcher Reihenfolge ausführen muss (deklarativ) – oder ob man alle für die Zubereitung erforderlichen Schritte aufführt, ohne notwendigerweise zu erwähnen, dass am Ende ein Sandwich entsteht (imperativ).

Unabhängig davon, ob ein deklarativer oder imperativer Ansatz verwendet wird, automatisiert IaC die Bereitstellung und das Infrastrukturmanagement.

Wie geht F5 mit Infrastruktur als Code um?

Die F5 BIG-IP-Plattform kann mit Plug-ins oder F5 Application Services 3 (AS3)-Erweiterungen für IaC-Konfigurations- und Versionierungstools wie Terraform und Ansible „als Code“ behandelt werden.

Die F5 Automation Toolchain umfasst AS3-Erweiterungen und F5 Declarative Onboarding (DO)-Erweiterungen. AS3 ist ein flexibler, auf JSON-Deklarationen basierender Mechanismus mit geringem Overhead zum Konfigurieren von L4–L7-Anwendungsdiensten auf einem BIG-IP-System. DO-Erweiterungen ermöglichen deklaratives L–L3-Onboarding für BIG-IP-Produkte.