Was ist eine unveränderliche Infrastruktur?

Ein Laptop, auf dem Code in einem Serverraum ausgeführt wird

Autoren

Annie Badman

Staff Writer

IBM Think

Derek Robertson

Staff Writer

IBM Think

Was ist eine unveränderliche Infrastruktur?

Bei einer unveränderlichen Infrastruktur werden Server und andere IT-Ressourcen ersetzt, nicht verändert, wenn Änderungen erforderlich sind.

Unternehmen können ihre Infrastruktur auf zwei Ansätze verwalten: veränderlich und unveränderlich. Eine unveränderliche Infrastruktur ersetzt Server vollständig, anstatt sie zu verändern. Die veränderliche Infrastruktur verändert die Server vor Ort und wendet Updates, Patches und Konfigurationsänderungen direkt auf die Produktionsserver an.

Da in erster Linie vorhandene Server geändert werden, kann eine veränderliche Infrastruktur effizienter erscheinen. Zwei Faktoren machen eine unveränderliche Infrastruktur jedoch oft praktischer und vorzuziehen.

Erstens haben Cloud Computing und Containerisierung die Bereitstellungsgeschwindigkeit verändert. Unternehmen können jetzt virtuelle Maschinen (VMs) und Container innerhalb von Minuten ersetzen, anstatt in Stunden, wie es bei physischen Servern der Fall ist. Tools zur Infrastrukturautomatisierung können neue Server und IT-Ressourcen bereitstellen und konfigurieren sowie einheitliche Änderungen in großem Maßstab anwenden.

Zweitens kann eine unveränderliche Infrastruktur die Konfigurationsabweichung erheblich verringern – eine häufige Funktion veränderlicher Infrastrukturen, bei der ein System allmählich von seinem beabsichtigten Zustand abweicht, wenn sich die Änderungen häufen. Eine Konfigurationsabweichung tritt besonders häufig auf, wenn Netzwerkprobleme den Bereitstellungsprozess unterbrechen und zu teilweisen oder fehlgeschlagenen Updates führen. Diese Abweichung kann zu einer suboptimalen Leistung, Sicherheitslücken und Compliance-Verstößen führen. 

Wenn beispielsweise ein Sicherheitsupdate auf 100 Produktionsservern bereitgestellt wird, können Automatisierungstools 100 neue Server mit vorinstalliertem Update erstellen und diese isoliert validieren. Nach der Validierung leiten sie den Datenverkehr um und nehmen die alten Server außer Betrieb – und das alles innerhalb von Minuten und ohne Ausfallzeit.

Wie funktioniert eine unveränderliche Infrastruktur?

Eine unveränderliche Infrastruktur folgt einem dreistufigen Workflow: Bereitstellung neuer Ressourcen, ihre Bereitstellung und Ermöglichung einer sofortigen Wiederherstellung bei Bedarf.

Dieser Workflow gilt für Server, Container, VMs, Funktionen oder andere Infrastrukturressourcen während ihres gesamten Lebenszyklus.

Provisioning mit Infrastructure-as-Code

Durch die Bereitstellung werden automatisch neue IT-Infrastrukturkomponenten erstellt, die Infrastruktur als Code (IaC) verwenden– eine Praxis, bei der deklarative Vorlagen oder Code verwendet werden, um beabsichtigte Infrastrukturzustände zu definieren.

Um eine unveränderliche Umgebung zu aktualisieren, erstellen die Teams eine völlig neue Ressource mit der definierten Konfiguration, anstatt SSH (ein Netzwerkprotokoll für den sicheren Remote-Serverzugriff) zu verwenden, um die bestehenden Ressourcen zu ändern. 

Alle Infrastrukturänderungen werden dann in Versionskontrollsystemen wie Git dokumentiert, damit sie getestet und reproduzierbar sind.

Zu den gängigen Bereitstellungstools gehören: 

  • Terraform: Die Infrastructure-as-Code-Plattform von HashiCorp stellt die Infrastruktur für AWS, Google Cloud, Azure und lokale Umgebungen über ihre APIs bereit und verwaltet sie mit deklarativer HCL-Syntax und Statusdateien zur Verfolgung von Änderungen.

  • Docker: Erstellt leichtgewichtige Container-Images auf Basis von geschichteten Dateisystemen und Virtualisierung auf Betriebssystemebene, primär auf Linux-Systemen, aber auch auf Windows und macOS, wodurch eine schnellere Bereitstellung als bei herkömmlichen VMs ermöglicht wird.

  • Packer: DasTool von HashiCorp erstellt aus einer einzigen JSON- oder HCL-Konfiguration identische Maschinenbilder gleichzeitig für mehrere Cloud-Provider und -Plattformen (AMIs für AWS, VMware-Vorlagen, Docker-Container).

  • AWS CloudFormation: AWS-natives Tool, das auf JSON/YAML-Vorlagen basiert, um AWS-Ressourcen mit integrierter Rollback- und Drift-Erkennung bereitzustellen. 

  • Pulumi: IaC-Plattform, die vertraute Programmiersprachen (Python, TypeScript, Go) anstelle von domänenspezifischen Sprachen verwendet, sodass Entwickler Standard-Programmierkonstrukte wie Schleifen und Bedingungen verwenden können.

Es ist erwähnenswert, dass Puppet und Chef ursprünglich für eine veränderliche Infrastruktur entwickelt wurden, in der sie Server an Ort und Stelle aktualisieren, obwohl einige Teams sie inzwischen zusammen mit unveränderlichen Ansätzen anpassen.

Bereitstellung über CI/CD-Pipelines

Bereitstellungen in unveränderlichen Infrastrukturen sind atomar – sie führen entweder vollständig zum Erfolg oder finden überhaupt nicht statt. Dieser Ansatz entspricht den DevOps -Praktiken und kontinuierlichen Integrationspipelines, bei denen der Schwerpunkt auf automatisierten Tests, schnellen Iterationen und zuverlässigen Bereitstellungen liegt.

Automatisierungstools bereitstellen die neue Version der Ressourcen, leiten den Datenverkehr dorthin um und deaktivieren dann die alte Version. Wenn während der Bereitstellung Probleme auftreten, bleibt die alte Ressourcen unangetastet und betriebsbereit, wodurch Ausfallzeit und Abhängigkeitsrisiken vermieden werden.

Zu den gängigen Deployment- und Orchestrierungstools gehören: 

  • Kubernetes: Open-Source-Plattform für die Container-Orchestrierung, die cloudnativ Container-Anwendungen in großem Maßstab durch automatische Fehlerbehebung, automatische Skalierung und rollende Aktualisierungen über Cluster hinweg verwaltet.

  • Jenkins: Serverbasierte CI/CD-Pipelines, die Erstellung, Test und Bereitstellung mit einem umfangreichen Ökosystem (1.800+ Plug-ins) zur Anpassung von Build-, Test- und Bereitstellungspipelines automatisieren.
  • GitHub-Aktionen: Ereignisgesteuerte CI/CD-Plattform, die in GitHub-Repositorys integriert ist und durch Code-Commits, Pull Requests oder Zeitpläne ausgelöst wird, ohne dass externe Server erforderlich sind.

  • Ansible (Red Hat): In erster Linie ein Konfigurationsmanagement-Tool, wird aber auch für die Bereitstellung verwendet. Es verwendet YAML-Playbooks für die Automatisierung und erfordert im Gegensatz zu Puppet oder Chef keine Softwareinstallation auf Knoten. 

Externer Datenspeicher

Da Server in einer unveränderlichen Infrastruktur kurzlebig sind und ständig ersetzt werden, müssen persistente Daten extern gespeichert werden. Unternehmen nutzen cloud databases, block storage oder object storage -Dienste, um Daten getrennt von den Servern, die ersetzt werden, zu verwalten. 

Wenn ein neuer Server online geht, verbindet er sich über diese externen Speichersysteme wieder mit den vorhandenen Daten. Konfigurations- und Metadaten befinden sich häufig in Versionskontrollsystemen wie Git. 

Wiederherstellung

Bei jeder Aktualisierung wird eine neue Instanz erstellt, wobei ein sauberes Image für das Rollback beibehalten wird. Mit denselben Automatisierungstools, die bereitstellen und bereitstellen, können frühere Versionen innerhalb von Minuten wiederhergestellt werden. Die Teams stellen das vorherige Image erneut bereit, anstatt geänderte Server zu debuggen und Fehler zu beheben. Dadurch wird die Detektivarbeit, die normalerweise erforderlich ist, wenn Änderungen am Konfigurationsmanagement fehlschlagen, erheblich reduziert.

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben sich angemeldet.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Vorteile einer unveränderlichen Infrastruktur

Die Vorteile einer unveränderlichen Infrastruktur sind größtenteils mit dem Vorteil des Bereitstellungsprozesses zusammenhängend, der durch die Unveränderlichkeit einfacher und konsistenter wird.

Vorhersagbarer Serverstatus

Eine unveränderliche Infrastruktur eliminiert mehrdeutige Serverzustände durch atomare Bereitstellungen – Aktualisierungen sind entweder vollständig oder überhaupt nicht erfolgreich.

Veränderliche Infrastrukturen bergen das Risiko von Teilaktualisierungen, die zu unvorhersehbaren "Zwischenzuständen" führen, mit Merkmalen, die Administratoren nicht vollständig bekannt sind. Diese Situation kann die Fehlersuche erschweren und die Sicherheitsrisiken erhöhen.

Eine unveränderliche Infrastruktur schließt die Möglichkeit eines solchen Zustands aus. Wenn eine Aktualisierung fehlschlägt, bleibt der Server in seinem gut dokumentierten Zustand. Wenn dies erfolgreich ist, kommt der neue Server vollständig konfiguriert und getestet an.

Verbesserte horizontale Skalierbarkeit

Die unveränderliche Infrastruktur ermöglicht eine schnelle horizontale Skalierung, d. h. die Praxis, den Bedarf durch Hinzufügen einer größeren Anzahl kleinerer Maschinen zu einem Netzwerk zu decken (im Gegensatz zu einer großen Maschine). Ein horizontal skaliertes System ist fehlertoleranter und kann durch Verteilung seiner Workload Verarbeitungsengpässe reduzieren.

Dieser Ansatz wird durch den Einsatz von Load Balancern erreicht, die den Netzwerkverkehr auf mehrere Server verteilen, um die Leistung zu verbessern. Tools wie Nginx und Amazons AWS Elastic Load Balancing (ELB) unterstützen diese Praxis, indem sie einen Algorithmus verwenden, um Benutzeranfragen zu einem bestimmten Zeitpunkt dem effizientesten Server zuzuweisen.

Diese Kombination aus Lastausgleich und Container-Orchestrierung macht eine unveränderliche Infrastruktur mit ihren reproduzierbaren Vorlagen unverzichtbar, um kurzfristig mehrere identische Server einzurichten. Diese Einrichtung kann besonders nützlich sein, wenn Netzwerke massive Traffic-Spitzen erwarten, z. B. während eines Einkaufsfeiertags oder des Ticketverkaufs. Es hilft auch bei der Koordination über globale Regionen hinweg, in denen der Datenverkehr zu unterschiedlichen und sich manchmal überschneidenden Zeiten seinen Höhepunkt erreicht.

Erhöhte Sicherheit

Eine unveränderliche Infrastruktur erhöht die Sicherheit, indem sie unvorhersehbare „Schneeflockenzustände“ – Server mit unbekannten Konfigurationen nach fehlgeschlagenen Aktualisierungen – beseitigt und lückenlose Prüfprotokolle für alle Änderungen führt.

Jeder Server entspricht genau der Quell-Image-Datei, die ihn beschreibt, was die Identifizierung von Sicherheitslücken - wie z.B. nicht autorisierte Software-Installationen oder Privilegienerweiterungen - und die Durchführung von Sicherheitsaudits vereinfacht. Versionskontrollsysteme verfolgen jede am System vorgenommene Änderung, einschließlich der Person, die sie wann und warum vorgenommen hat. Dieser unveränderliche Verlauf ermöglicht eine schnellere forensische Analyse und Reaktion auf Vorfälle. Teams können kompromittierte Konfigurationen sofort identifizieren und bei Bedarf ein Rollback auf den zweifelsfrei funktionierenden Zustand durchführen.

Eine unveränderliche Infrastruktur macht es auch überflüssig, Secure Shell (SSH)-Anmeldungen zu verwenden, um Server vor Ort zu bearbeiten, wodurch die gesamte Angriffsfläche des Netzwerks reduziert wird.

Mixture of Experts | 12. Dezember, Folge 85

KI entschlüsseln: Wöchentlicher Nachrichtenüberblick

Schließen Sie sich unserer erstklassigen Expertenrunde aus Ingenieuren, Forschern, Produktführern und anderen an, die sich durch das KI-Rauschen kämpfen, um Ihnen die neuesten KI-Nachrichten und Erkenntnisse zu liefern.

Herausforderungen unveränderlicher Infrastrukturen

Die Unveränderlichkeit weist auch Funktionen auf, die Kompromisse im Vergleich zu einer traditionelleren, veränderlichen Infrastruktur aufweisen, hauptsächlich in Bezug auf die Datenspeicher.

In einer veränderlichen Infrastruktur kann ein Server kritische Anwendungsdaten auf die lokale Festplatte schreiben, sodass das Löschen und Ersetzen dieses Servers und dieser Festplatte gefährlich oder potenziell systemschädlich ist. Daher müssen die Daten in einer unveränderlichen Infrastruktur extern gespeichert werden, was das System noch komplexer macht.

Diese Methode kann durch Verwendung externer Datenspeicher wie cloud databases, block storage oder object storage durchgeführt werden. Wenn eine neue virtuelle Maschine online geht, kann sie sich über diesen externen Speicher nahtlos wieder mit den vorhandenen Daten verbinden. Unternehmen verwalten Konfigurationen und Metadaten im Allgemeinen in Versionskontrollsystemen wie Git.

Die wahre „Unveränderbarkeit“ einer unveränderlichen Infrastruktur ist jedoch manchmal umstritten. Diese Einschränkung ist darauf zurückzuführen, dass extern gespeicherte Netzwerkbenutzerdaten in einem ständigen Fluss befinden und daher nicht mit einem bekannten Zustand verglichen werden können.

Illustratives Flussdiagramm, das Verbindungen darstellt
Weiterführende Lösungen
IBM Turbonomic

Skalieren Sie Ihre vorhandene IT-Infrastruktur automatisch, um eine höhere Leistung zu geringeren Kosten zu erzielen.

IBM Turbonomic erkunden
AIOps-Lösungen

Erfahren Sie, wie KI für den IT-Betrieb die Erkenntnisse liefert, die Sie benötigen, um die Leistung Ihres Unternehmens entscheidend zu verbessern.

AIOps-Lösungen erkunden
Beratungsleistungen für Automatisierung

Gehen Sie über einfache Aufgabenautomatisierungen hinaus und bewältigen Sie anspruchsvolle, kundenorientierte und umsatzfördernde Prozesse mit integrierter Akzeptanz und Skalierung.

Erkunden Sie die Beratungsleistungen von IBM zur Automatisierung
Machen Sie den nächsten Schritt

Erfahren Sie, wie KI für den IT-Betrieb Erkenntnisse liefert, um die Leistung Ihres Unternehmens entscheidend zu verbessern.

Mehr über Turbonomic AIOps-Lösungen erkunden