Software, die andere Software steuert Was ist ein guter Software-Operator?

Ein Gastbeitrag von Michael C. Jaeger* 4 min Lesedauer

Anbieter zum Thema

Software-Operatoren erfreuen sich wachsender Beliebtheit, reduzieren sie doch signifikant den IT-Operations-Aufwand. Der Software-Operator ist kein Mensch, sondern ein Design Pattern, das Wissen und Abläufe eines Teams aus der realen Welt in ein Computerprogramm kapselt. So hilft er dabei, komplexe Deployments aus Datenbanken, Messaging-Systemen oder Web-Anwendungen zu betreiben.

Die Aufgabe von einem Software-Operator ist der Betrieb von Anwendungen auf der IT- Infrastrukturebene. (Bild:  frei lizenziert: OpenClipart-Vectors /  Pixabay)
Die Aufgabe von einem Software-Operator ist der Betrieb von Anwendungen auf der IT- Infrastrukturebene.
(Bild: frei lizenziert: OpenClipart-Vectors / Pixabay)
  • Welche Eigenschaften aber muss ein guter Software-Operator haben?
  • Welche Fähigkeiten und Qualitäten sind tatsächlich relevant?
  • Wie setzt der Operator sie um?

Software-Architekten kennen die Problematik. Sie müssen sicherstellen, dass die wichtigsten Qualitäts-Charakteristika in der Software umgesetzt werden. Man spricht auch von einem Software Quality Model: Dieses Modell definiert die relevanten Anforderungen und damit verbundene ‚Design Objectives‘.

Zum Beispiel sind beim Betrieb eines Messaging Dienstes wie der Open-Source Anwendung „Mattermost“, kurze Antwortzeiten des Systems essenziell. Verzögerungen beim Versenden von Nachrichten würden den Nutzer stören. Bei der Entwicklung von Mattermost würde ein Architekt dieses Design Objective sicherstellen und die Architektur entsprechend umsetzen.

Die Aufgabe von einem Software-Operator ist der Betrieb von Anwendungen auf der IT- Infrastrukturebene von Organisationen jeglicher Art, ob Behörden, Unternehmen oder NGO: Es handelt sich um Software, die andere Software steuert.

Auf der Infrastrukturebene

Software-Operatoren müssen qualitativ hochwertig sein, da die Anwendungen in verschiedensten Szenarien eingesetzt werden können. Diese Szenarien reichen von einfachen Intranet-Services bis zum Einsatz in kritischen Systemen wie zum Beispiel Finanzanwendungen oder die Steuerung von Produktionsanlagen. Daher ist die Zuverlässigkeit ein Design Objective für Software-Operatoren und sie muss auf ebenso hohem Niveau gewährleistet werden können wie für die Anwendung selbst.

Software-Operatoren haben eine weitere Besonderheit. Sie umfassen in der Regel zwei Update-Zyklen: den des eigenen Lebenszyklus und den der Anwendung. Darüber hinaus hängen Software-Operatoren auch von den Updates der Infrastruktur ab: Beispielsweise führen manche neue Versionen von Kubernetes zu einer neuen Version eines Kubernetes-Operators. Prinzipiell unterliegt daher ein Software-Operator sogar drei Update-Zyklen. Daher ist die Update-Ability, die Fähigkeit also, Updates durchzuführen, ebenfalls sehr wichtig.

Da Software-Operatoren weiterhin auf den Servern von Organisationen arbeiten, hat die Datensicherheit eine sehr hohe Priorität. Für die IT kritischer Infrastrukturen ist die konstante Überwachung von Schwachstellen mittlerweile zur Pflicht geworden. Im Zusammenhang mit der Update-Fähigkeit müssen Software-Operatoren sich ebenso in ein Compliance-Regime für Datensicherheit einfügen wie andere serverseitige Software auch. Da Software-Operatoren administrative Aufgaben ausführen, haben sie potenziell die Privilegien eines Admins und sind daher noch anfälliger für Sicherheitslücken.

Weitere Anforderungen

Ganz im Sinne der Softwarearchitektur sollten gute Software-Operatoren denn auch die drei Anforderungen erfüllen:

1. Zuverlässigkeit: Seit langem sind Tests bereits fester Bestandteil der Software-Entwicklung. Dabei handelt es sich nicht nur um die seit Jahrzehnten praktizierten Unit-Tests, sondern die mittlerweile zum Standard gewordenen DevOps-Aktivitäten, die eine Automatisierung zur kontinuierlichen Durchführung von Tests und Prüfungen beinhalten. Daher sind automatisierte Tests für Software-Operatoren unerlässlich. Diese Tests sollten die Installation des Operators inklusive der Anwendungen umfassen. Darüber hinaus testen weitere Bestandteile auch die Integration mit anderen Teilen der Infrastruktur oder anderen Anwendungen.

2. Update-Fähigkeit: Die Update-Fähigkeit betrifft zwei Bereiche: Zum einen geht es um die Fähigkeit des Softwareprojektes, neue Releases zu produzieren. Zum anderen muss die Software bei den Anwendern Update-fähig sein. Software-Operatoren sind hierbei ebenfalls in einer besonderen Situation, da nicht nur die eigenen Updates, sondern auch die Updates der Anwendung berücksichtigt werden müssen – und deren Ausgestaltung ist oftmals nicht durch die Gruppe, die den Software-Operator entwickelt, beeinflussbar.

Wichtige Best Practice ist heutzutage nicht nur die automatische Erstellung von Artefakten durch einen DevOps-Ansatz. Ein qualitativ hochwertiges Vorgehen zeichnet sich vor allem dadurch aus, dass Prozeduren für Vorab- und Test-Releases ebenso definiert und automatisiert sind wie Prozeduren und Regeln für ein finales Release.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Da ein Software-Operator den Betrieb von Anwendungen abdeckt, ist die Durchführung von Updates praktisch eine Hauptaufgabe. Einige Lösungen zur Implementierung von Software-Operatoren stellen neben dem Operator eine Laufzeitumgebung bereit. Die Laufzeitumgebung sollte den Operator als Paket wie andere Software-Pakete behandeln. Software-Operatoren sollten wie andere Software auch als Paket installiert und aktualisiert werden können.

3. Datensicherheit: Die Datensicherheit ist grundsätzlich ein sehr komplexes Thema und reicht von Secure-Coding-Praktiken in der Entwicklung bis hin zur Absicherung der Hardware in den Datacenter oder der Cloud. Hierbei kommt es besonders auf die größtmögliche Transparenz in der Entwicklung an. Daher ist es umso wichtiger, die Software-Operatoren, wie viele andere IT auch, als Open-Source-Projekt zu implementieren.

Die Transparenz ermöglicht den Einblick in Schwachstellen für den eigenen Source Code wie auch in Abhängigkeiten. Eine Software Bill of Materials (SBOM) – also ein Inventar einer Codebasis – kann nur bei Open Source Software eigenständig nachvollzogen werden. Daher ist es notwendig, Software-Operatoren als Open Source zu entwickeln.

Gute Software-Operatoren erfüllen also diese drei wichtigsten Qualitätsanforderungen: Datensicherheit, Update-Fähigkeit und Zuverlässigkeit. Der Software-Operator sollte unbedingt als Open Source Projekt entwickelt und bereitgestellt werden. Gute Software-Operatoren werden auf allen Ebenen getestet, nicht nur durch Unit-Tests, sondern auch Tests, die Installation und Integration mit anderen Anwendungen testen. Die Open-Source-Implementierung der Tests macht für jeden nachvollziehbar, dass Release für Release zuverlässige neue Versionen entstehen, die wie Pakete auf Knopfdruck ausgerollt werden können.

* Der Autor
Michael Jaeger ist bei Canonical Product Manager für Ökosysteme im Bereich Cloud-nativer Anwendungen. Jaeger studierte Technische Informatik an der TU Berlin und arbeitete dann als wissenschaftlicher Mitarbeiter, um seine Doktorarbeit im Bereich der Verteilten Systeme zu schreiben.
Anschließend führte seine berufliche Laufbahn zur Siemens AG in München. Dort war er als IT-Consultant, Trainer, Software-Architekt und zuletzt als 'Senior Key Expert Open Source Software' beschäftigt. Bei Canonical ist Jaeger Produkt Manager für die Software Operatoren, die auf der Plattform „Juju“ aufbauen.

Bildquelle: Canonical

(ID:49309282)