Was ist Site Reliability Engineering (SRE)?

Aufnahme von oben eines Mannes, der an einem Computer arbeitet

Autoren

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

Was ist Site Reliability Engineering (SRE)?

Site Reliability Engineering (SRE) ist eine Software-Engineering-Praxis, die DevOps und traditionellen IT-Betrieb kombiniert, um Kundenprobleme zu lösen, IT-Betriebsaufgaben zu automatisieren, die Softwarebereitstellung zu beschleunigen und IT-Risiken zu minimieren.


SRE unterstützt Resilienz, Redundanz und Zuverlässigkeit im DevOps-Zyklus und befasst sich mit der täglichen Implementierung von Softwareprogrammen. Techniker für die Zuverlässigkeit von Websites halten sich in der Regel an die 50-50-Regel: Sie widmen die Hälfte ihrer Zeit der Lösung von Kundenproblemen, wie der Verwaltung von Eskalationen und der Reaktion auf Vorfälle, und die andere Hälfte der Automatisierung des IT-Betriebs. Zu diesen Vorgängen gehören das Produktionssystemmanagement, das Change Management, die Reaktion auf Zwischenfälle und Notfallmaßnahmen.

SRE-Teams schließen die Lücke zwischen der Funktionsweise von Softwareentwicklern und der Funktionsweise in realen Situationen. Site Reliability Engineers arbeiten direkt mit Kunden zusammen, um deren Probleme zu beheben und Daten zur Benutzererfahrung zu sammeln. Die SRE-Teams geben diese Daten an die Entwicklungsteams zurück und geben ihnen tiefe Erkenntnisse in die Leistung der Software und die notwendigen Aktualisierungen.

SREs wissen, dass Ausfälle unvermeidlich sind. Ihre Aufgabe ist es, sowohl (durch Prozesse wie die Root Cause Analysis) die Ursachen unmittelbarer Probleme zu identifizieren als auch Überwachungs- und Protokollierungsdaten zu nutzen, um potenzielle zukünftige Ausfälle vorherzusagen. Dann richten sie Automatisierungen ein, um diese Probleme zu lösen, und bauen Ausfallsicherheit und Redundanz in das System ein.

Durch diese automatisierte Überwachung großer Softwaresysteme müssen Systemadministratoren Aufgaben im Bereich IT-Operations nicht mehr manuell erledigen. Durch die Eliminierung manuell auszuführender Funktionen sparen IT-Teams Zeit, können Betriebsaufgaben genauer ausführen und sich auf die Aufrechterhaltung der Anwendungsleistung konzentrieren.

Wie funktioniert Site Reliability Engineering?

Ein Site Reliability Engineer ist eine technische Position, die Erfahrung sowohl in der Softwareentwicklung als auch im IT-Betrieb erfordert. Die Kenntnis dieser Positionen ermöglicht es den SRE-Teams, ihre Rolle bei der Unterstützung des Lebenszyklus der Softwareentwicklung zu erfüllen. SRE basiert auf einer Strategie der Ausfallsicherheit durch konsequente Automatisierung von Prozessen.

Traditionell konzentrierten sich die Praktiken des Site Reliability Engineering auf die Durchführung von IT-Betriebs- und Systemadministrationsaufgaben. Zu diesen Aufgaben gehören das Analysieren von Protokollen, die Leistungsanalyse, das Anwenden von Patches, das Testen von Produktionsumgebungen, das Vorfallmanagement und die Durchführung von Postmortem-Analysen. Diese Aufgaben wurden zunächst manuell ausgeführt, was zeitaufwändig war und zu menschlichen Fehlern führte. Die Modernisierung des Site Reliability Engineering beinhaltet die Automatisierung dieser manuellen Aufgaben.

Überwachung und Protokollierung spielen bei SRE eine wichtige Rolle. SRE-Teams verwenden Überwachungs-Tools, um zu verfolgen, was in den Softwaresystemen in Echtzeit passiert. Die Überwachung ermöglicht es, unmittelbare technische Probleme zu beheben und hilft den Teams, künftige Probleme vorherzusehen und zu lösen, bevor sie auftreten.

Protokolle dienen als Archive, die analysiert werden können, um Einblicke in die Funktionsweise von Systemen zu gewinnen und die Observability des Systems zu verbessern. Die Protokollierung erstellt eine Roadmap, die SRE-Teams hilft, die Abfolge von Ereignissen zu verstehen, die einen unerwarteten Fehler verursacht haben. Die Techniker können die Behebung des Fehlers automatisieren und verhindern, dass er erneut auftritt. Sowohl die Überwachung als auch die Protokollierung helfen Ingenieuren dabei, Fehlerquellen zu identifizieren und Probleme programmatisch durch Automatisierung zu lösen, sodass sie nicht manuell behoben werden müssen.

SRE-Teams suchen auch nach Systemmängeln durch einen Prozess, der als Chaos-Engineering bezeichnet wird. Chaos-Engineering ist eine Strategie, die Site Reliability Engineers anwenden, um absichtlich Ausfälle in Produktions- und Vorproduktionsumgebungen zu verursachen. Der Zweck des Chaos-Engineering besteht darin, die Auswirkungen von Produktionsausfällen auf Softwaresysteme zu verstehen und bessere Pläne zu entwickeln, um Ausfälle in Zukunft zu mindern.

SRE konzentriert sich auch auf die Kapazitätsplanung, einen Prozess, der die Ressourcen bestimmt, die für die Ausführung wesentlicher Geschäftsfunktionen, die Skalierung dieser Geschäftsfunktionen und die Entwicklung neuer Anwendungen und Funktionen erforderlich sind. Darüber hinaus legen SRE-Teams Metriken fest, die zur Bewertung der Bereitstellung von Updates und der Implementierung neuer Funktionen verwendet werden.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

Metriken zum Site Reliability Engineering

Site Reliability Engineers verwenden verschiedene Metriken, um die Einheitlichkeit der Servicebereitstellung und die Zuverlässigkeit von Softwaresystemen zu verfolgen, darunter:

Service Level Agreements (SLAs)

SLAs (Service Level Agreements) legen die Bedingungen zwischen einem Dienstanbieter und einem Kunden fest. Diese Vereinbarungen schreiben das Leistungsniveau, die vereinbarten Indikatoren für die Leistungsmessung und die Folgen der Nichterbringung von Dienstleistungen vor. Ein häufiger Dienst, der in einer SLA beschrieben wird, ist die Betriebszeit oder die Zeit, die ein Dienst verfügbar ist.

Fehlerbudgets

Das Fehlerbudget ist das Werkzeug, mit dem ein SRE-Team die Servicezuverlässigkeit eines Unternehmens automatisch mit dem Tempo der Softwareentwicklung und -innovation in Einklang bringt. Fehlerbudgets legen ein Fehlerrisikoniveau fest, das mit den Service Level Agreements übereinstimmt.

Eine Betriebszeit von 99,999 %, die als „Fünf-Neunen-Verfügbarkeit“ bezeichnet wird, ist ein gängiger SLA-Schwellenwert. Das bedeutet, dass das monatliche Fehlerbudget – die gesamte Ausfallzeit, die ohne vertragliche Konsequenzen für einen bestimmten Monat zulässig ist – etwa 4 Minuten und 23 Sekunden beträgt. Wenn ein Entwicklungsteam neue Funktionen oder Verbesserungen an einem System implementieren möchte, darf das System das Fehlerbudget nicht überschreiten.

Fehlerbudgets helfen Entwicklungsteams und Betriebsteams, die Stabilität und Leistung von Services zu verbessern. Sie helfen auch dabei, datengesteuerte Entscheidungen über die Bereitstellung neuer Funktionen oder Anwendungen zu treffen und Innovation zu maximieren, indem Risiken innerhalb akzeptabler Grenzen eingegangen werden.

Service Level Objectives (SLOs)

SRE-Teams helfen auch bei der Festlegung von Service Level Objectives (SLOs), einem vereinbarten Leistungsziel für einen bestimmten Service über einen bestimmten Zeitraum. SLOs definieren den erwarteten Status von Diensten und helfen Stakeholdern, den Zustand bestimmter Dienste zu verwalten und SLAs einzuhalten.

Service Level Indicators (SLIs)

SLOs werden anhand von Service Level Indicators (SLIs) gemessen. SLIs sind quantitative Messungen, die als Prozentsätze, Durchschnittswerte oder Raten dargestellt werden. Dazu gehört die tatsächliche Messung von Diensten wie Betriebszeit, Latenz, Durchsatz und Fehlerraten.

IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

SRE und DevOps

DevOps ist eine Softwareentwicklungsmethodik, die die Bereitstellung qualitativ hochwertigerer Anwendungen und Dienste beschleunigt, indem sie die Arbeit von Softwareentwicklungs- und IT-Betriebsteams kombiniert und automatisiert. Mit DevOps wird der Softwareentwicklungszyklus (SDLC) automatisiert; Entwicklungs- und Betriebsteams erhalten mehr gemeinsame Verantwortung und alle relevanten Stakeholdern erhalten Eingaben in den SDLC.

SRE und DevOps sind komplementäre Strategien in der Softwareentwicklung, die Silos aufbrechen und zu einer effizienteren und zuverlässigeren Softwarebereitstellung führen.

Während sich DevOps-Teams auf die Lösung der Frage konzentrieren: „Was soll diese Software tun?“ arbeiten SRE-Teams an der Beantwortung der Frage: „Wie kann diese Software bereitgestellt und gewartet werden, damit sie bei Bedarf funktioniert?“ SRE-Teams stellen DevOps-Teams reale Daten zu Software-Leistung zur Verfügung und bringen so ein Gleichgewicht zwischen praktischen Daten in die theoretische Welt der Softwareentwicklung.

Wie SRE macht auch DevOps ein Unternehmen agiler: Es sorgt dafür, dass sich die Notwendigkeiten, einerseits Anwendungen und Änderungen schneller bereitzustellen und andererseits die Produktionsumgebung nicht zu überlasten, die Waage halten. Sowohl SRE als auch DevOps streben dieses Gleichgewicht durch die Festlegung eines akzeptablen Fehlerrisikos an. DevOps-Teams konzentrieren sich auf die Durchführung von Updates und die Bereitstellung neuer Funktionen, während die SRE-Praktiken dafür sorgen, die Zuverlässigkeit der Systeme bei ihrer Skalierung zu schützen.

DevOps- und SRE-Teams rationalisieren die Kommunikationsmethoden und schaffen eine ständige Feedbackschleife. Eine solche Schleife könnte wie folgt funktionieren: Wenn ein SRE-Team die Ursache eines Fehlers aufdeckt, sendet es seine Erkenntnisse an das DevOps-Team, das ein Update für die nächste Version der Software entwickeln kann. In der Zwischenzeit erstellen SREs Automatisierungen, um das Problem zu lösen, und verfolgen die Überwachungs- und Protokollierungsdaten, um sicherzustellen, dass das Problem behoben wurde.

Vorteile von SRE

Site Reliability Engineering unterstützt Unternehmen nicht nur beim DevOps-Erfolg, sondern auch in folgenden Bereichen:

  • Besserer Einblick in den Servicezustand, indem Metriken, Protokolle und Ablaufverfolgungen für alle organisatorischen Services verfolgen und Funktionen zur Ursachenanalyse stärken.

  • Bessere Zuverlässigkeit von Softwaresystemen durch tägliche Interaktionen mit Kunden und den gemeinsamen Austausch von Benutzerdaten mit DevOps-Teams.

  • Skalierung von Softwaresystemen, indem manuelle Prozesse automatisiert werden, wodurch der Aufwand verringert, Fehler reduziert und Probleme präziser gelöst werden.

  • Quantifizierung der Kosten von Ausfallzeiten, um das Entwicklungs- bzw. Betriebsteam dabei zu unterstützen, die Kosten von SLA-Verletzungen zu verstehen, und der Geschäftsleitung dabei zu helfen, die Auswirkungen der Systemzuverlässigkeit auf Produktion, Vertrieb, Marketing, Kundenservice und andere Geschäftsfunktionen mit Zahlen zu belegen.

  • Optimierung der Reaktion auf Vorfälle, indem effiziente Bereitschaftsprozesse aufgebaut und die Alarmierungs-Workflows gestrafft werden.

  • Bauen Sie ein modernes Network Operations Center auf, indem Sie umfassende Kenntnis des IT-Betriebs mit maschinellem Lernen und Automatisierung kombinieren, um Warnmeldungen direkt an die Person zu senden, die für die Behebung des Problems zuständig ist.

SRE, Cloud und cloudnative Entwicklung

Wenn Unternehmen von herkömmlichen IT- und On-Premises-Rechenzentren in die Hybrid Cloud migrieren, generieren sie oft größere Mengen an Betriebsdaten. SRE spielt eine kritische Rolle bei der Nutzung dieser Daten zur Automatisierung der Systemadministration, des Betriebs und der Reaktion auf Vorfälle und zur Verbesserung der Zuverlässigkeit des Unternehmens, wenn die IT-Umgebung komplexer wird.

Das Entwickeln, Bereitstellen und Skalieren von Anwendungen kann mit einem cloudnativen Entwicklungsansatz vereinfacht werden – besonders die Erstellung von Anwendungen als Microservices und deren Bereitstellung in Containern. Durch cloudnative Entwicklung entsteht aber auch eine immer stärker verteilte Umgebung mit aufwändigerer Verwaltung, Bedienung und Leitung.

Ein SRE-Team kann das schnelle, durch einen cloudnativen Ansatz ermöglichte Innovationstempo unterstützen und die Systemzuverlässigkeit sicherstellen oder verbessern, ohne die DevOps-Teams stärker unter Druck zu setzen.

Weiterführende Lösungen
IBM Instana Observability

Nutzen Sie die Leistungsfähigkeit von KI und Automatisierung, um Probleme im gesamten Anwendungs-Stack proaktiv zu lösen.

IBM Instana Observability kennenlernen
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
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
Machen Sie den nächsten Schritt

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

Instana Observability erkunden Erkunden Sie Instana