Mehr Zeit für die Wertschöpfung Automatisierung per Site Reliability Engineering
Anbieter zum Thema
SRE ermöglicht als skalierbare Strategie die Automatisierung der Überwachung großer Softwaresysteme - insbesondere wenn diese Systeme erweitert oder in die Cloud migriert werden. Dies spart viel Zeit und schafft mehr Freiheit für Verbesserungen und die Entwicklung neuer Funktionen.

Die Entwicklung von Software wird in der High-Velocity-Welt der IT schneller als je zuvor abgeschlossen. Mit Best Practices wie beispielsweise Agile und DevOps, die sich zusehends weiter verbreiten, sind Entwickler in der Lage, ein immer größeres Pensum zu erledigen - und die Erwartungen der Kunden steigen.
Dilemma der Entwickler
Leider hat das Streben nach schnelleren Releases dazu geführt, dass andere Bereiche des IT-Managements Schwierigkeiten haben, aufzuholen. Denn das Betriebsteam muss nach wie vor sicherstellen, dass der Code für die End-User ausreichend stabil ist, was bei diesem Tempo schnell zu terminlichen Engpässen oder sogar Ausfallzeiten führen kann.
So könnten Mitarbeiter versucht sein, Code frühzeitig freizugeben, ohne ihn gründlich zu prüfen, während das Betriebsteam darauf besteht, Freigaben zu verzögern, selbst auf Kosten von Kunden und Auftraggebern. Daraus resultiert nicht nur Unzufriedenheit bei den End-Usern, sondern auch Entwickler müssen mehr Zeit für die Behebung von Fehlern aufwenden, anstatt neuen Code zu erstellen.
Site Reliability Engineering
Und hier kommt das Site Reliability Engineering (SRE) ins Spiel. Dabei handelt es sich um einen Ansatz zur Optimierung der Zuverlässigkeit für Dienstleistungen und Produkte. Ähnlich wie bei DevOps widmen Entwickler und Software-Ingenieure bei SRE mehr Zeit und Ressourcen den Aufgaben, die traditionell den Betriebsteams übertragen werden.
Diese „Shift-Left“-Denkweise trägt dazu bei, Klarheit und Effizienz zu fördern, wodurch Zuverlässigkeit selbst in modernen, schnelllebigen IT-Umgebungen zu einem weitaus erreichbareren Ziel wird. Obwohl SRE schon seit einigen Jahren zur Verfügung steht, sind sich viele Unternehmen der jeweiligen Vorteile noch nicht bewusst, nicht nur in Bezug auf IT-Leistungsmetriken, sondern auch hinsichtlich der Generierung von Umsatz.
Der SRE-Ansatz konzentriert sich auf den gesamten Software-Lebenszyklus und minimiert gleichzeitig den Aufwand für die Wartung dieser Software. SRE-Teams stellen Software-Ingenieure ein, um manuelle Aufgaben von System-Administratoren zu automatisieren. Die SRE-Disziplin arbeitet über den gesamten Software-Lebenszyklus hinweg – Einführung, Bereitstellung und Betrieb, Verfeinerung und schließlich Außerbetriebnahme.
SRE verwendet drei Service Level Commitments, um zu messen, wie gut ein System funktioniert:
- Service Level Agreements (SLAs) definieren die erforderliche Zuverlässigkeit, Leistung und Latenz des Systems, wie sie von End-Usern gewünscht werden.
- Service Level Objectives (SLOs) bestimmen die Zielwerte und Ziele, wie sie von SRE-Teams festgelegt wurden, um SLAs zu erfüllen.
- Service Level Indicators (SLIs) messen spezifische Metriken und Aspekte, die zeigen, inwieweit ein System den SLOs entspricht. Typische SLIs umfassen Anforderungslatenz, Systemdurchsatz, Vorlaufzeit, Entwicklungshäufigkeit, mittlere Zeit bis zur Wiederherstellung (MTTR) und Verfügbarkeitsfehlerrate.
Weitere Vorteile von SRE
Eine SRE-Implementierung bietet zahlreiche Vorteile. Diese umfassen:
- Höhere Service-Verfügbarkeit: Höhere Fähigkeit, Transaktionen innerhalb der Service-Cutoff-Zeit fehlerfrei abzuschließen. Verbesserte Benutzerfreundlichkeit.
- Aktive Überwachung: Frühzeitige Sichtbarkeit von Verschlechterungen der End-to-End-Serviceleistung. Proaktive Kommunikation und automatisierte Problemerkennung, was zu kürzeren Reparaturzeiten führt. Reduzierte Zeit im Hinblick auf die Identifikation, Diagnose und das Beheben von Dienstleistungsproblemen.
- Reduzierter Aufwand: Entlastung der SRE-Teammitglieder, damit sie sich auf strukturelle Korrekturen konzentrieren können. Verbesserte Team-Skalierbarkeit.
- Schnelle Veränderungen: Zügige Implementierung von Innovationen und Veränderungen. Niedrigere Kosten zur Unterstützung des gleichen Serviceniveaus. Stattdessen skaliert die Anzahl der SREs, die zum Ausführen, Warten und Verbessern eines Systems benötigt werden, sublinear mit der Größe des Systems. Verbesserung der Teamarbeit zwischen Produktentwicklungsteams.
Abgrenzung zu DevOps
Beide Methoden erzwingen eine minimale Trennung zwischen Entwicklungs- und Betriebsteams. SRE und DevOps sind jedoch keine konkurrierenden Methoden. Das liegt daran, dass SRE einen praktischen Ansatz zur Lösung der meisten DevOps-Probleme bietet. Somit lassen sich verschiedene Unterschiede in der Funktionsweise hervorheben:
Allgemein
Bei SRE sollen eine Reihe von Praktiken und Metriken die Zusammenarbeit und Servicebereitstellung verbessern. DevOps hingegen ist eine Philosophie, die die Kooperation zwischen isolierten Teams optimiert.
Zielsetzung
Sowohl SRE als auch DevOps zielen darauf ab, die Lücke zwischen Entwicklung und Betrieb zu schließen, obwohl SRE Anleitungen zur Erzielung einer höheren Zuverlässigkeit beinhaltet, während DevOps als Vorlage dient, die die Zusammenarbeit steuert.
Fokus
SRE konzentriert sich hauptsächlich auf die Verbesserung der Systemverfügbarkeit und -zuverlässigkeit, während DevOps sich auf die Geschwindigkeit der Entwicklung und Bereitstellung konzentriert und gleichzeitig die Kontinuität durchsetzt.
Team-Struktur
Ein SRE-Team besteht aus IT-Mitarbeitern, die sowohl im Betrieb als auch in der Entwicklung über Erfahrungen verfügen. DevOps-Mitarbeiter weisen eine Vielzahl von beruflichen Fähigkeiten auf, darunter QA-Experten, Entwickler, Ingenieure, SREs und viele andere.
SRE-Tools
SRE-Teams verlassen sich auf die Automatisierung von Routineprozessen mit Tools und Techniken, die den Betrieb über den gesamten Lebenszyklus der Software hinweg standardisieren. Zu den Tools und Technologien, die das Site Reliability Engineering unterstützen, gehören:
- Container verpacken Anwendungen in einer einheitlichen Umgebung über mehrere Bereitstellungsplattformen hinweg und ermöglichen so eine Cloud-native Entwicklung.
- Kubernetes ist ein beliebter Container-Orchestrator, der containerisierte Anwendungen, die in mehreren Umgebungen ausgeführt werden, effektiv verwalten.
- Mit Cloud-Plattformen lassen sich skalierbare, flexible und zuverlässige Anwendungen in stark verteilten Umgebungen bereitstellen.
- Mit Projektplanungs- und Managementtools lässt sich der IT-Betrieb über verteilte Teams hinweg verwalten. Einige beliebte Tools sind JIRA und Pivotal Tracker.
- Source-Control-Tools wie Subversion und GitHub heben die Grenzen zwischen Entwicklern und Betreibern auf und ermöglichen eine nahtlose Zusammenarbeit und Freigabe der Anwendungsbereitstellung. Zu den Quellcode-Verwaltungstools gehören Subversion und GitHub.
Fazit
Zusammenfassend lässt sich sagen, dass SRE inmitten der Notwendigkeit für Unternehmen entstanden ist, sich dem erhöhten Tempo der Märkte anzupassen und gleichzeitig performant zu bleiben. Der Ansatz bietet Methoden und Tools, um Systeme besser zu entwerfen und zu betreiben.
(ID:49409982)