Warum manuell, wenn’s auch automatisch geht? Was ist ein Software Operator?
Anbieter zum Thema
Immer höher legen Anwender und Kunden die Messlatte für den Betrieb anspruchsvoller Websites und Dienste. Sie erwarten, dass Dienste rund um die Uhr online, funktionsfähig und performant sind. Site Reliability Engineering- und DevOps-Teams automatisieren ihre Aufgaben, um diese Erwartungen zu erfüllen. Wer besonders effektiv den Betrieb von IT-Anwendungen automatisieren will, sollte sich genauer mit dem Software-Operator-Konzept, das zuletzt stark an Bedeutung gewonnen hat, befassen.

Ein Software Operator kapselt das Wissen und Abläufe eines Teams aus der realen Welt in ein Computerprogramm, das dabei hilft, komplexe Deployments aus Datenbanken, Messaging-Systemen oder Web-Anwendungen zu betreiben.
Der Ansatz ist vor allem für den Einsatz von „Kubernetes“ populär, dem Open-Source-Orchestrierungssystem für Container, das die Bereitstellung und den Betrieb komplexer Serveranwendungen erleichtert. Das Konzept Software Operator bietet sich aber auch für den Anwendungs- und Infrastrukturbetrieb auf Plattformen jenseits von Kubernetes an. Am populärsten ist der Ansatz indes für Kubernetes, da er dazu beiträgt, die Komplexität der Vorgänge auf dieser leistungsstarken Plattform zu reduzieren.
Was macht ein Operator?
Ein Operator automatisiert die mit der Administration einer Serveranwendung verbundenen Aufgaben. Die Automatisierung kann einige oder alle der folgenden Aufgaben abdecken:
- Deployment: Die korrekte Installation einer Anwendung kann komplexe Aufgaben umfassen, insbesondere für verteilte, serverseitige Systeme. Sicherzustellen, dass eine Anwendung korrekt und konsistent auf wiederholbare Weise bereitgestellt wird, ist heute in der Regel eine obligatorische Anforderung in der IT vieler Organisationen.
- Konfiguration: Die korrekte Konfiguration einer Anwendung kann schwierig sein, und Änderungen an einem Wert können sich auf vielfältige Weise auswirken. Manchmal können Einstellungen von zusätzlichen Orientierungshilfen und Checks profitieren. Und oft müssen sinnvolle Voreinstellungen vorgenommen werden. Der Operator bietet einen zusätzlichen Rahmen für Konfigurationswerte, quasi Leitplanken, womit er aktiv dazu beiträgt, Ausfälle zu reduzieren.
- Upgrades: Upgrades, insbesondere Upgrades von zustandsbehafteten Systemen wie Datenbankservern und Message Brokern, sind notorisch riskant und fehleranfällig. Wenn hingegen bewährte und eingespielte Upgrade-Abläufe in einen Operator implementiert werden, einschließlich einer Logik zur Behandlung von Corner Cases oder einem Rollback, können viele dieser Risiken reduziert werden.
- Skalieren: Wenn zustandslose Anwendungen skaliert werden, wie eine Webfarm, können Zum Beispiel Einträge für neue Nodes zu einer Load-Balancer-Konfiguration (so genanntes Scale-out) hinzugefügt werden. Es kann dabei auch darum gehen, dass Instanzen mit höherer Kapazität (so genanntes Scale-up) bereitgestellt und alte Instanzen mit geringerer Kapazität außer Betrieb genommen werden.
Das Skalieren von zustandsbehafteten Anwendungen, wie einem Datenbankserver-Cluster, ist häufig komplexer: So müssen neue Instanzen des Datenbankservers, die dem Cluster beitreten, wahrscheinlich zuerst durch einen Mechanismus wie State Snapshot Transfer (SST) initialisiert werden.
In beiden Fällen vereinfacht Software in Form eines Operators rund um Hochverfügbarkeit und Skalierung den Betrieb. Gleichzeitig verbessert der Operator Zuverlässigkeit und Stabilität im Vergleich zu manuellen Eingriffen durch Administratoren deutlich.
- Backups: Administratoren müssen Konfigurationsdaten und Anwendungsdaten routinemäßig sichern und wiederherstellen. Diese Aufgaben effektiv auszuführen, kann sich jedoch als komplex und fehleranfällig erweisen. So sollte von Zeit zu Zeit getestet werden, ob die Datenintegrität der Sicherungen gewährleistet ist. Das gleiche gilt für die Wiederherstellung.
Ein Operator, der ein Backup und die Wiederherstellung implementiert, unterstützt Administratoren dabei, anspruchsvolle Zeitziele und geringe Verlusttoleranzen für serverseitige Anwendungen wie Datenbanksysteme umzusetzen.
Operatoren für Routine-Aufgaben
Neben den genannten Beispielen sind sicherlich noch weitere Anwendungsfälle denkbar. Dabei kann es sich um regelmäßige Änderungen von Zugangsdaten zur Risikominderung handeln oder um das Erneuern abgelaufener Server- und Client-PKI-Zertifikate. Häufig implementieren Operatoren einige oder alle dieser Verfahren, um wiederkehrende Jobs für Administratoren zu vereinfachen. Zusammenfassend sind es zumeist Routineverfahren, die Administratoren durchführen müssen. Übernimmt diese ein Operator, macht das den Betrieb laufender Software effizienter.
Operatoren für die Anwendungsintegration
Heutzutage sind die meisten Serveranwendungen eher Kompositionen von Applikationen, statt isolierte Monolithen. Sie bestehen aus Diensten oder Bausteinen wie Datenbanken, Caches, Proxy-Servern, Messaging-Busses und vielem mehr. In produktiven Umgebungen müssen häufig Observability-, Protokollierungs- und Überwachungssysteme integriert werden. Diese Systeme ermöglichen Administratoren den Einblick in Zustand und Nutzung der Anwendung, um deren Betrieb zu verbessern.
Einige Operatoren decken auch die Definition von Service-Interfaces ab. Basierend auf den Interfaces kann die Plattform die technische Integration erleichtern, beispielsweise kann sie die Netzwerkverbindung zwischen bereitgestellten Anwendungen konfigurieren.
Decken Operatoren auch die Integration mittels Interface-Definitionen ab, können diese auch für automatisch konfigurierte Kompositionen von Anwendungen zusammengestellt werden. Verfügt ein Operator auch über Integrationsfunktionen, hilft dies Administratoren, die Anfälligkeit und Fragilität in komplexen Servicelandschaften zu reduzieren.
Warum Operatoren verwenden?
Im Allgemeinen machen Operatoren das menschliche Wissen und die Erfahrung in Form einer Implementierung explizit. Dies hilft Organisationen, den Wissenstransfer sicherzustellen, wenn Administratoren die Organisation verlassen. Operatoren sind aus einer Reihe von Gründen vorteilhaft:
- Erhöhte Zuverlässigkeit durch konsistente Bereitstellung und Konfiguration.
- Zuverlässige und vorhersehbare Anwendungs-Upgrades durch automatisierte, getestete und bewährte Upgrade-Verfahren, die Sonderfälle handhaben.
- Vereinfachung von Verfahren im Zusammenhang mit Scale-up, Scale-out, Scale-down und Scale-in von Anwendungen.
- Unterstützung bei Post-Mortem-Analysen durch Automatisierung der Aufgaben: Dies hilft dem Site-Reliability Engineering, die Ursachen eines Ausfalls zu identifizieren und das Risiko zu verringern, dass der Ausfall in Zukunft erneut auftritt.
- Das Offenlegen von Konfigurationsschnittstellen erleichtert anderen Betreiber eine dynamische, automatisierte Neukonfiguration von Anwendungskompositionen.
- Nicht jeder Operator bietet alle aufgeführten Vorteile. Einige Implementierungen decken nur einen kleinen Teil der möglichen Funktionen ab. Deswegen sollte jeder, die über den Einsatz von Operatoren nachdenkt, die verfügbaren Software-Tools vorab nach den Anforderungen evaluieren.
(ID:48658426)