Infrastructure-as-Code (IaC) ist ein Ansatz zur Verwaltung von IT-Systeminfrastrukturen, der sich auf die Verwendung wiederholbarer Konfigurationsdateien zur Erzeugung konsistenter Einsatzumgebungen für die CI/CD-Entwicklung stützt.
Infrastructure-as-Code bezieht sich auf die Bereitstellung und Verwaltung von Infrastrukturen, einschließlich Hardware, virtueller Ressourcen, Plattformen, Containersystemen, Diensten und Topologien, durch deklarative oder skriptbasierte Definitionen bzw. Code, und nicht durch manuelle Konfiguration oder die Verwendung traditioneller Konfigurations-Tools. IaC trennt Konfigurationen, Richtlinien, Profile, Skripte und Vorlagen von der Hardware oder Software, auf der sie bereitgestellt werden, sodass sie wie Code gespeichert, gemeinsam genutzt, überarbeitet und angewendet werden können.
Dieser Ansatz, der mit der Popularität von Cloud-Infrastrukturen gewachsen ist, entspringt der DevOps-Mentalität und wendet die gleiche Art von Versionskontrolle und Wiederholbarkeit auf die Orchestrierung der Infrastruktur an, wie sie Entwickler für den Quellcode von Anwendungen nutzen. Ein IaC-Ansatz unterstützt die kontinuierliche Integration, Bereitstellung und Implementierung, indem bei jeder Anwendung die gleiche Infrastrukturumgebung geschaffen wird.
Die Möglichkeit, die Infrastruktur wie Code zu behandeln, erweitert die Infrastrukturverwaltung um die Vorteile der Automatisierung, Transparenz, Effizienz und Skalierbarkeit, sodass Anwendungen schneller und zuverlässiger bereitgestellt werden können, mit weniger manuellem Aufwand und einem geringeren Risiko für menschliche Fehler oder Sicherheitslücken. Da die Konfiguration vom System entkoppelt ist, kann sie leichter auf einem ähnlichen System an einem anderen Standort eingesetzt 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 Entwicklungs- 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.
Die IaC-Konfiguration von Servern, Load-Balancern, virtuellen Maschinen und anderen Rechenzentrums- oder Cloud-Ressourcen kann entweder durch imperative Ansätze, die Anweisungen spezifizieren (ohne das Ergebnis im Detail zu beschreiben), oder durch deklarative Ansätze erfolgen, die das gewünschte Konfigurationsergebnis spezifizieren (ohne den Weg dorthin im Detail zu beschreiben, der auf bereits vorhandenen Workflows und Vorlagen basieren kann). Stellen Sie sich den Unterschied folgendermaßen vor: Sie fragen nach einem Sandwich und vertrauen darauf, dass der Sandwich-Hersteller weiß, welche Schritte in welcher Reihenfolge durchzuführen sind (deklarativ), oder Sie spezifizieren jeden der erforderlichen Schritte, 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 Infrastrukturverwaltung.
Die F5-BIG-IP-Plattform kann mit Plug-ins oder F5 Application Services 3 (AS3)-Erweiterungen für IaC-Konfigurations- und Versionierungs-Tools wie Terraform und Ansible „as Code“ behandelt werden.
Die F5 Automation Toolchain umfasst AS3-Erweiterungen und F5 Declarative Onboarding (DO)-Erweiterungen. AS3 ist ein flexibler Mechanismus mit geringem Aufwand, der auf JSON-Deklarationen basiert, um Anwendungsdienste der Schichten 4–7 auf einem BIG-IP-System zu konfigurieren. DO-Erweiterungen ermöglichen die deklarative Einbindung der Schichten 1–3 bei BIG-IP-Produkten.