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.
Infrastructure as Code bedeutet, Infrastruktur wie Hardware, virtuelle Ressourcen, Plattformen, Container-Systeme, Dienste und Topologien über deklarative oder skriptbasierte Definitionen – also Code – bereitzustellen und zu verwalten, statt sie manuell oder mit klassischen Konfigurationstools einzurichten. IaC trennt Konfigurationen, Richtlinien, Profile, Skripte und Vorlagen von der Hard- oder Software, auf der sie laufen. So können Sie diese wie Code speichern, teilen, anpassen und anwenden.
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.
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.
Mit IaC konfigurieren Sie Server, Load Balancer, virtuelle Maschinen und andere Rechenzentrums- oder Cloud-Ressourcen entweder mittels imperativer Ansätze, die konkrete Anweisungen geben (ohne das Endergebnis zu definieren), oder deklarativer Ansätze, die das gewünschte Konfigurationsergebnis festlegen (ohne zu erläutern, wie dieses erreicht wird – basierend auf bestehenden Workflows und Vorlagen). Der Unterschied lässt sich damit erklären, dass Sie entweder ein Sandwich bestellen und darauf vertrauen, dass der Hersteller die einzelnen Schritte und deren Reihenfolge kennt (deklarativ) – oder dass Sie jeden einzelnen Schritt zur Zubereitung genau vorgeben, ohne ausdrücklich 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.
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.