Was ist Site Reliability Engineering?

Site Reliability Engineering (SRE) ist die Praxis der Verwendung von Softwaretools zur Automatisierung von IT-Infrastrukturaufgaben wie Systemmanagement und Anwendungsüberwachung. Unternehmen verwenden SRE, um sicherzustellen, dass ihre Softwareanwendungen bei häufigen Updates durch Entwicklungsteams zuverlässig bleiben. SRE verbessert insbesondere die Zuverlässigkeit skalierbarer Softwaresysteme, da die Verwaltung eines großen Systems mithilfe von Software nachhaltiger ist als die manuelle Verwaltung von Hunderten von Maschinen. 

Warum ist Site Reliability Engineering wichtig?

Die Zuverlässigkeit (Reliability) der Website beschreibt die Stabilität und Servicequalität, die eine Anwendung bietet, nachdem sie Endbenutzern zur Verfügung gestellt wurde. Softwarewartung beeinträchtigt manchmal die Zuverlässigkeit der Software, wenn technische Probleme nicht entdeckt werden. Wenn Entwickler beispielsweise neue Änderungen vornehmen, können diese sich versehentlich auf die vorhandene Anwendung auswirken und sie in bestimmten Anwendungsfällen zum Absturz bringen.

Im Folgenden sind einige Vorteile der Site Reliability Engineering (SRE)-Praktiken aufgeführt.

Verbesserte Zusammenarbeit

SRE verbessert die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams. Entwickler müssen häufig schnelle Änderungen an einer Anwendung vornehmen, um neue Funktionen freizugeben oder kritische Fehler zu beheben. Auf der anderen Seite muss das Betriebsteam eine reibungslose Servicebereitstellung sicherstellen. Daher verwendet das Betriebsteam SRE-Praktiken, um jedes Update genau zu überwachen und umgehend auf Probleme zu reagieren, die aufgrund von Änderungen auftreten.

Verbesserte Kundenerfahrung

Unternehmen verwenden ein SRE-Modell, um sicherzustellen, dass Softwarefehler das Kundenerlebnis nicht beeinträchtigen. Softwareteams verwenden beispielsweise SRE-Tools, um den Lebenszyklus der Softwareentwicklung zu automatisieren. Dadurch werden Fehler reduziert, sodass das Team die Entwicklung neuer Funktionen vor Fehlerbehebungen priorisieren kann.

Verbesserte Betriebsplanung

Das SRE-Team akzeptiert, dass es eine realistische Chance gibt, dass Software ausfällt. Daher plant das Team die angemessene Reaktion auf Vorfälle, um die Auswirkungen von Ausfallzeiten auf das Unternehmen und die Endbenutzer zu minimieren. Sie können auch die Kosten von Ausfallzeiten besser einschätzen und die Auswirkungen solcher Vorfälle auf den Geschäftsbetrieb verstehen. 

Was sind die wichtigsten Prinzipien bei der Zuverlässigkeitstechnik für Standorte?

Im Folgenden sind einige wichtige Prinzipien des Site Reliability Engineering (SRE) aufgeführt.

Anwendungsüberwachung

SRE-Teams akzeptieren, dass Fehler Teil des Softwarebereitstellungsprozesses sind. Anstatt nach einer perfekten Lösung zu streben, überwacht es die Softwareleistung in Bezug auf Service Level Agreements (SLAs), Service Level Indicators (SLIs) und Service Level Objectives (SLOs). Es beobachtet und überwacht Leistungsmetriken nach der Bereitstellung der Anwendung in Produktionsumgebungen. 

Schrittweise Umsetzung des Wandels

SRE-Praktiken fördern die Veröffentlichung häufiger, aber kleiner Änderungen, um die Systemzuverlässigkeit aufrechtzuerhalten. SRE-Automatisierungstools verwenden konsistente, aber wiederholbare Prozesse, um Folgendes zu ermöglichen:

  • Reduzieren von Risiken aufgrund von Änderungen.
  • Bereitstellen von Feedback-Schleifen zur Messung der Systemleistung.
  • Erhöhen der Geschwindigkeit und Effizienz der Implementierung von Änderungen.

Automatisierung zur Verbesserung der Zuverlässigkeit

SRE verwendet Richtlinien und Prozesse, die Zuverlässigkeitsprinzipien in jeden Schritt der Bereitstellungspipeline einbetten. Einige Strategien, die Probleme automatisch lösen, umfassen die folgenden:

  • Entwicklung von Quality Gates basierend auf Service-Level-Zielen, um Probleme früher zu erkennen
  • Automatisieren von Build-Tests mithilfe von Service-Level-Indikatoren
  • Treffen architektonischer Entscheidungen, die die Ausfallsicherheit des Systems zu Beginn der Softwareentwicklung sicherstellen

Was ist Beobachtbarkeit im Rahmen von Site Reliability Engineering?

Beobachtbarkeit ist ein Prozess, der das Softwareteam auf Unsicherheiten vorbereitet, wenn die Software für Endbenutzer live geht. Site Reliability Engineering (SRE)-Teams verwenden Tools, um abnormales Verhalten in der Software zu erkennen und, was noch wichtiger ist, Informationen zu sammeln, die Entwicklern helfen, zu verstehen, was das Problem verursacht. Beobachtbarkeit beinhaltet das Sammeln der folgenden Informationen mit SRE-Tools. 

Metriken 

Metriken sind quantifizierbare Werte, die die Leistung oder den Systemzustand einer Anwendung widerspiegeln. SRE-Teams verwenden Metriken, um festzustellen, ob die Software übermäßig viele Ressourcen verbraucht oder sich ungewöhnlich verhält.

Protokolle

SRE-Software generiert als Reaktion auf bestimmte Ereignisse detaillierte, mit Zeitstempeln versehene Informationen, sogenannte Protokolle. Softwareingenieure verwenden Protokolle, um die Kette von Ereignissen zu verstehen, die zu einem bestimmten Problem führen. 

Traces 

Traces sind Beobachtungen des Codepfads einer bestimmten Funktion in einem verteilten System. Das Auschecken eines Warenkorbs kann beispielsweise Folgendes umfassen:

  • Abrechnen des Preises mithilfe der Datenbank
  • Authentifizierung mit dem Zahlungsgateway
  • Senden von Bestellungen an Verkäufer

Traces bestehen aus einer ID, einem Namen und einer Uhrzeit. Sie helfen Softwareentwicklern, Latenzprobleme zu erkennen und die Softwareleistung zu verbessern. 

Was ist Überwachung im Rahmen von Site Reliability Engineering?

Überwachung ist ein Prozess zur Beobachtung vordefinierter Metriken in einer Anwendung. Entwickler entscheiden, welche Parameter für die Bestimmung des Anwendungszustands entscheidend sind, und legen sie in Überwachungstools fest. Site Reliability Engineering (SRE)-Teams sammeln wichtige Informationen, die die Systemleistung widerspiegeln, und visualisieren sie in Diagrammen.

In SRE überwachen Softwareteams diese Metriken, um Einblicke in die Systemzuverlässigkeit zu erhalten.

Latenz 

Latenz beschreibt die Verzögerung, wenn die Anwendung auf eine Anfrage reagiert. Beispielsweise dauert das Senden eines Formulars auf einer Website 3 Sekunden, bevor Benutzer zu einer Bestätigungs-Website weitergeleitet werden. 

Datenverkehr

Datenverkehr misst die Anzahl der Benutzer, die gleichzeitig auf Ihren Dienst zugreifen. Dies hilft Softwareteams dabei, Rechenressourcen entsprechend zu budgetieren, um ein zufriedenstellendes Serviceniveau für alle Benutzer aufrechtzuerhalten.

Fehler

Ein Fehler ist ein Zustand, bei dem die Anwendung nicht erwartungsgemäß ausgeführt oder ausgeliefert wird. Wenn beispielsweise eine Website nicht geladen werden kann oder eine Transaktion nicht ausgeführt wird, verwenden SRE-Teams Softwaretools, um Fehler in der Anwendung automatisch zu verfolgen und darauf zu reagieren. 

Sättigung

Die Sättigung gibt die Echtzeitkapazität der Anwendung an. Ein hoher Sättigungsgrad führt normalerweise zu einer Verschlechterung der Leistung. Site Reliability Engineers überwachen den Sättigungsgrad und stellen sicher, dass er unter einem bestimmten Schwellenwert liegt. 

Was sind die wichtigsten Kennzahlen für die Zuverlässigkeitstechnik von Standorten?

Site Reliability Engineering (SRE)-Teams messen die Qualität der Servicebereitstellung und Zuverlässigkeit anhand der folgenden Metriken. 

Service-Level-Ziele

Service-Level-Ziele (Service-level objectives, SLOs) sind spezifische und quantifizierbare Ziele, von denen Sie sicher sind, dass die Software sie zu angemessenen Kosten im Vergleich zu anderen Metriken erreichen kann, z. B. den folgenden: 

  • Betriebszeit oder die Zeit, in der ein System in Betrieb ist
  • Systemdurchsatz oder
  •  Ausgabe
  • Download-Rate oder die Geschwindigkeit, mit der die Anwendung geladen wird

Ein SLO verspricht die Lieferung durch die Software an den Kunden. Sie legen beispielsweise eine Betriebszeit von 99,95 % für die Lieferdienst-App Ihres Unternehmens fest.

Service-Level-Indikatoren

Service-Level-Indikatoren (SLIs) sind die tatsächlichen Messwerte der von einem SLO definierten Metrik. In realen Situationen erhalten Sie möglicherweise Werte, die dem SLO entsprechen oder von diesem abweichen. Beispielsweise ist Ihre Anwendung in 99,92 % der Fälle betriebsbereit, was niedriger ist als der versprochene SLO. 

Service Level Agreements

Bei den Service Level Agreements (SLAs) handelt es sich um rechtliche Dokumente, die angeben, was passieren würde, wenn ein oder mehrere SLOs nicht eingehalten werden. Das SLA besagt beispielsweise, dass das technische Team das Problem Ihres Kunden innerhalb von 24 Stunden nach Erhalt eines Berichts lösen wird. Wenn Ihr Team das Problem nicht innerhalb der angegebenen Dauer lösen konnte, sind Sie möglicherweise verpflichtet, dem Kunden eine Rückerstattung zu leisten.

Fehler-Budgets

Fehlerbudgets sind die Nichtkonformitätstoleranz für das SLO. Eine Betriebszeit von 99,95 % im SLO bedeutet beispielsweise, dass die zulässige Ausfallzeit 0,05 % beträgt. Wenn die Softwareausfallzeit das Fehlerbudget übersteigt, widmet das Softwareteam alle Ressourcen und Aufmerksamkeit der Stabilisierung der Anwendung.

Wie funktioniert die Zuverlässigkeitstechnik für Standorte?

Site Reliability Engineering (SRE) beinhaltet die Teilnahme von Site Reliability Engineers an einem Softwareteam. Das SRE-Team legt die wichtigsten Kennzahlen für SRE fest und erstellt ein Fehlerbudget, das durch die Risikotoleranz des Systems bestimmt wird. Wenn die Anzahl der Fehler gering ist, kann das Entwicklungsteam neue Funktionen veröffentlichen. Wenn die Fehler jedoch das zulässige Fehlerbudget überschreiten, pausiert das Team neue Änderungen und löst bestehende Probleme.

Beispielsweise verwendet ein Site Reliability Engineer einen Service, um Leistungsmetriken zu überwachen und anomales Anwendungsverhalten zu erkennen. Wenn es Probleme mit der Anwendung gibt, reicht das SRE-Team einen Bericht an das Software-Engineering-Team ein. Die Entwickler beheben die gemeldeten Fälle und veröffentlichen die aktualisierte Anwendung.

DevOps

DevOps ist eine Softwarekultur, die die traditionellen Grenzen von Entwicklungs- und Betriebsteams durchbricht. Mit DevOps arbeiten Entwickler und Betriebsingenieure nicht mehr in Silos. Stattdessen verwenden sie Softwaretools, um die Zusammenarbeit zu verbessern und mit dem rasanten Tempo der Softwareupdateveröffentlichungen Schritt zu halten.

SRE im Vergleich zu DevOps

SRE ist die praktische Umsetzung von DevOps. DevOps bietet die philosophische Grundlage dafür, was getan werden muss, um die Softwarequalität inmitten des zunehmend verkürzten Entwicklungszeitplans aufrechtzuerhalten. Das Site Reliability Engineering bietet Antworten darauf, wie Sie DevOps-Erfolge erzielen können. SRE stellt sicher, dass das DevOps-Team das richtige Gleichgewicht zwischen Geschwindigkeit und Stabilität findet. 

Was sind die Aufgaben eines Site Reliability Engineers?

Site Reliability Engineers sind IT-Experten, die Automatisierungstools verwenden, um die Zuverlässigkeit der Software in der Produktionsumgebung zu überwachen und zu beobachten. Sie haben außerdem Erfahrung darin, Probleme in Software zu finden und Codes zu schreiben, um sie zu beheben. Sie sind in der Regel ehemalige Systemadministratoren oder Betriebstechniker mit guten Programmierkenntnissen. Im Folgenden sind einige Verantwortlichkeiten für die Zuverlässigkeit der Website aufgeführt.

Operationen

Site Reliability Engineers verwenden nahezu die Hälfte ihrer Zeit auf Betriebsarbeiten. Dies umfasst mehrere Aufgaben, wie zum Beispiel die folgenden: 

  • Reaktion auf Notfallvorfälle
  • Änderungsmanagement
  • IT-Infrastrukturverwaltung

Die Site Reliability Engineers verwenden Site Reliability Engineering (SRE)-Tools, um verschiedene Betriebsaufgaben zu automatisieren und die Effizienz des Teams zu steigern.

System Support

Die Site Reliability Engineers arbeiten eng mit dem Entwicklungsteam zusammen, um neue Funktionen zu entwickeln und Produktionssysteme zu stabilisieren. Sie erstellen einen SRE-Prozess für das gesamte Softwareteam und stehen zur Verfügung, um Eskalationsprobleme zu unterstützen. Noch wichtiger ist, dass Standort-Zuverlässigkeitsteams dem Kundensupport dokumentierte Verfahren zur Verfügung stellen, um Beschwerden effektiv zu bearbeiten. 

Prozessverbesserung

Site Reliability Engineers verbessern den Lebenszyklus der Softwareentwicklung, indem sie Überprüfungen nach einem Vorfall durchführen. Das SRE-Team dokumentiert alle Softwareprobleme und entsprechende Lösungen in einer gemeinsamen Wissensbasis. Dies hilft dem Softwareteam, in Zukunft effizient auf ähnliche Probleme zu reagieren. 

Was sind die gängigen Tools eines Site Reliability Engineers?

Die Site Reliability Engineering (SRE)-Teams verwenden verschiedene Arten von Tools, um die Überwachung, Beobachtung und Reaktion auf Vorfälle zu erleichtern. 

Container-Orchestrator

Softwareentwickler verwenden einen Container-Orchestrator, um containerisierte Anwendungen auf verschiedenen Plattformen auszuführen. Containerisierte Anwendungen speichern ihre Codedateien und zugehörigen Ressourcen in einem einzigen Paket, einem sogenannten Container. Softwareingenieure verwenden beispielsweise Amazon Elastic Kubernetes Service (Amazon EKS), um Cloud-Anwendungen auszuführen und zu skalieren. 

Bereitschaftsverwaltungs-Tools

Bereitschaftsverwaltungs-Tools sind Software, die es SRE-Teams ermöglicht, Support-Mitarbeiter zu planen, zu organisieren und zu verwalten, die sich mit gemeldeten Softwareproblemen befassen. SRE-Teams verwenden eine solche Software, um sicherzustellen, dass immer ein Support-Team in Bereitschaft ist, um zeitnahe Warnungen zu Softwareproblemen zu erhalten. 

Vorfallreaktions-Tools 

Vorfallreaktions-Tools stellen einen klaren Eskalationspfad für erkannte Softwareprobleme sicher. SRE-Teams verwenden Vorfallreaktions-Tools, um den Schweregrad der gemeldeten Fälle zu kategorisieren und sie umgehend zu bearbeiten. Die Tools können auch Analyseberichte nach einem Vorfall bereitstellen, um zu verhindern, dass ähnliche Probleme erneut auftreten. 

Konfigurationsmanagement-Tools

Konfigurationsmanagement-Tools sind Software, die den Software-Workflow automatisiert. SRE-Teams verwenden diese Tools, um sich wiederholende Aufgaben zu beseitigen und produktiver zu werden. Site Reliability Engineers verwenden beispielsweise AWS OpsWorks, um Server in AWS-Umgebungen automatisch einzurichten und zu verwalten. 

Wie hilft AWS bei der Entwicklung der Zuverlässigkeit von Standorten?

AWS-Management- und Governance-Services bieten dem Softwareteam die notwendigen Tools, um verteilte Anwendungen zu erstellen, zu skalieren und bereitzustellen, ohne die Systemzuverlässigkeit zu beeinträchtigen. Das Site Reliability Engineer (SRE)-Team verwendet verschiedene AWS-Management- und Governance-Services, um AWS- und On-Premises-Computerressourcen zu überwachen und zu steuern.

  • AWS Service Catalog ermöglicht es SRE-Teams, IT-Services zu katalogisieren, zu verwalten und schnell bereitzustellen.
  • AWS Systems Manager bietet einen zentralen Management-Hub, über den Site Reliability Engineer betriebliche Einblicke in Software-Computing-Ressourcen erhalten können.
  • AWS Proton ist ein automatisiertes Management-Tool für die Bereitstellung containerisierter und Serverless-Anwendungen.

Beginnen Sie mit dem Site Reliability Engineering in AWS, indem Sie noch heute ein AWS-Konto erstellen.

Nächste Schritte auf AWS

Zusätzliche produktbezogene Ressourcen ansehen
Weitere Informationen über Site Reliability Engineering bei AWS 
Ein kostenloses Konto erstellen

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole beginnen

Beginnen Sie, mit Site Reliability Engineering in der AWS-Managementkonsole zu entwickeln.

Anmelden