Das SRE-Team ist ein Team von Ingenieuren, die für die Zuverlässigkeit und Verfügbarkeit eines bestimmten Dienstes verantwortlich sind. Sie arbeiten an der Verbesserung der Systemleistung, der Systemzuverlässigkeit und des Systemdesigns, damit diese für geschäftskritische Arbeitslasten zuverlässig genug sind. Ein SRE-Team sollte über technische Fähigkeiten in den Bereichen Softwaretechnik, Infrastrukturautomatisierung und DevOps-Praktiken verfügen.
SRE entstand als Antwort auf die Überbrückung der Kluft zwischen Entwicklung und Betrieb. Das primäre Ziel des SRE-Teams ist es, die reibungslose Freigabe von Projekten zu gewährleisten. Sie verfügen über ein tiefes Verständnis sowohl des Produkts als auch der Infrastruktur und können diese daher korrekt verwalten.
Vielleicht haben Sie schon einmal von der Rolle des “Site Reliability Engineer” gehört, aber in Wirklichkeit besteht ein Site Reliability Engineer aus einem ganzen Team verschiedener Rollen. Jede Rolle bringt einzigartige Fähigkeiten und Erfahrungen in dieses Spezialgebiet ein.
Ein Site Reliability Team ist oft eine Kombination von Personen aus verschiedenen Teams: DevOps-Teams, Softwareentwicklungsteams, Systemadministratoren und Systemarchitekten. Sie arbeiten zusammen, um ein umfassendes Engineering-Team zu bilden, das die Anforderungen eines komplexen Technologie-Stacks (z. B. Webserver, Datenbanken, Container-Orchestrierung) bewältigen und die Systemzuverlässigkeit verbessern kann.
Die Rollen und Verantwortlichkeiten eines SRE-Teams variieren je nach dem spezifischen Produkt oder Service, für den sie verantwortlich sind.
Werfen wir einen Blick auf einige der üblichen Teammitglieder, aus denen sich ein SRE-Team zusammensetzt.
Der Site Reliability Manager ist für die Gesamtstrategie des SRE-Teams verantwortlich. Er ist verantwortlich für die Erstellung eines Plans, der die Geschäftsziele erfüllt, die Verwaltung der Ressourcen und die Entwicklung von SRE-Verfahren, die die Ingenieure zum Erfolg führen. Sie sind auch für die Kommunikation der Strategien und Ziele an andere Teams zuständig.
SRE-Manager müssen über viel Erfahrung in den Bereichen Software-Engineering, DevOps und Infrastrukturarchitektur verfügen. Sie müssen in der Lage sein, strategisch zu denken und das Team zu leiten, um Lösungen zu finden, mit denen Probleme schnell und effizient gelöst werden können.
Softwareentwickler und Softwareingenieure sind für die Erstellung und Wartung der Software verantwortlich, die ein System betreibt. Zu ihren Aufgaben in einem SRE-Team gehören die Entwicklung von Code, das Schreiben von Automatisierungsskripten und die Sicherstellung der zuverlässigen Bereitstellung von Diensten.
Die Hauptaufgabe eines Softwareentwicklers oder eines Softwareingenieurs in einem SRE-Team besteht darin, Softwareanwendungen zu entwickeln, die den Anforderungen des Unternehmens entsprechen. Sie arbeiten mit Softwareingenieuren zusammen, um neue Funktionen zu planen, zu entwerfen und zu erstellen. Entwickler sind auch für die Fehlersuche und -behebung zuständig, indem sie die Ursachen erforschen und Lösungen entwickeln.
Darüber hinaus können sie für das Schreiben oder Aktualisieren von Dokumentationen wie Benutzerhandbüchern oder technischen Spezifikationen verantwortlich sein.
DevOps-Ingenieure sind für die Automatisierung des Lebenszyklus eines Dienstes von der Entwicklung bis zur Bereitstellung zuständig. Sie verwenden Tools wie Ansible und Terraform, um die Infrastruktur als Code (IaC) zu automatisieren. Dadurch können sie Anwendungen schnell und mit minimalem manuellen Aufwand in verschiedenen Umgebungen bereitstellen.
In SRE-Teams überwachen und analysieren DevOps-Ingenieure auch die Systemleistung, um potenzielle Probleme zu erkennen, bevor sie zu Problemen werden. Sie nutzen ihr Wissen über die Anwendungsarchitektur, um automatisierte Lösungen zu entwerfen, zu entwickeln und zu implementieren.
Systemadministratoren sind für die Wartung der Infrastruktur eines Dienstes zuständig. Dazu gehören das Einrichten und Konfigurieren von Servern, die Bereitstellung von Software-Updates, die Installation von Sicherheits-Patches und die Durchführung regelmäßiger Wartungsaufgaben.
Systemadministratoren in einem SRE-Team können auch für die Entwicklung automatisierter Lösungen zur Verbesserung der Systemleistung, Verfügbarkeit und Skalierbarkeit zuständig sein. Sie sind auch in der Lage, schnell auf Zwischenfälle und Ausfälle zu reagieren, indem sie die Infrastruktur auf Fehler untersuchen, um die Grundursache von Problemen zu ermitteln.
Systemingenieure sind für die Konfiguration, Verwaltung und Wartung der zugrunde liegenden Infrastruktur verantwortlich. Sie verwenden Tools wie Kubernetes, um Anwendungen in Containern bereitzustellen und die Systemleistung zu überwachen. Dies trägt dazu bei, die Verfügbarkeit und Stabilität der Dienste hoch zu halten und gleichzeitig die Skalierbarkeit im Laufe der Zeit zu gewährleisten.
In SRE-Teams arbeiten Systemingenieure häufig mit dem Entwicklungsteam und DevOps-Ingenieuren zusammen, um eine zuverlässige Infrastruktur zu entwerfen, aufzubauen und zu warten. Sie nutzen ihr Wissen über die Anwendungsarchitektur, um die Systemleistung zu optimieren.
Architekten sind für den Entwurf einer Gesamtsystemarchitektur verantwortlich, die den Anforderungen des Unternehmens gerecht wird. Dazu gehört es, die Bedürfnisse der Benutzer zu verstehen, machbare Technologien zu erforschen und die besten Lösungen auszuwählen, um diese Bedürfnisse zu erfüllen.
In SRE-Teams sind Architekten auch für den Entwurf einer skalierbaren, sicheren und zuverlässigen Systemarchitektur verantwortlich. Sie nutzen ihr Fachwissen über verteilte Systeme, um Strategien für die Überwachung und Verwaltung der Leistung in verschiedenen Umgebungen zu entwickeln.
Netzwerktechniker sind für die Einrichtung und Verwaltung des gesamten Netzwerks zuständig. Sie verwenden Tools wie Cisco IOS und Juniper JUNOS zur Konfiguration von Routern, Switches, Firewalls, VPNs und anderen Netzwerkgeräten. Dies trägt dazu bei, den sicheren Zugang zu Diensten und Daten von jedem Ort der Welt aus zu gewährleisten.
In SRE-Teams sind Netzwerktechniker auch für die Überwachung und Wartung der Netzwerkinfrastruktur zuständig. Sie identifizieren proaktiv potenzielle Probleme mit dem Netzwerk und arbeiten daran, diese schnell zu beheben, um die kontinuierliche Verfügbarkeit der Dienste zu gewährleisten.
Testingenieure sind für die Entwicklung und Durchführung von Tests zuständig, um die Qualität eines Dienstes zu gewährleisten. Dazu gehören das Schreiben von Automatisierungsskripten und die Implementierung von CI/CD-Pipelines (Continuous Integration/Continuous Delivery).
In SRE-Teams arbeiten die Testingenieure mit den Entwicklern zusammen, um neue Funktionen zu testen, bevor sie in Betrieb genommen werden. Sie nutzen ihr Wissen über die Anwendungsarchitektur, um Strategien für die Automatisierung zu entwickeln, wodurch der Bedarf an manuellen Tests reduziert wird. Darüber hinaus nutzen sie ihr Fachwissen, um Leistungstests zu entwickeln, die dazu beitragen, potenzielle Probleme zu erkennen, bevor sie zu Problemen werden.
Ja, Sie können SRE auslagern. Viele Unternehmen entscheiden sich dafür, ein externes Team von SRE-Experten einzustellen, anstatt ein eigenes internes SRE-Team aufzubauen. Dies ist eine gute Option für Unternehmen, die den Aufwand und die Kosten, die mit dem Aufbau und der Unterhaltung eines internen SRE-Teams verbunden sind, nicht scheuen.
Beim Outsourcing von SRE-Dienstleistungen gibt es einige Dinge zu beachten. Zunächst müssen Sie den richtigen SRE-Partner finden und sicherstellen, dass er über die erforderlichen Fähigkeiten verfügt, um die von Ihnen benötigten Dienstleistungen in hoher Qualität zu erbringen. Außerdem sollten Sie sich die Erfahrung des Partners mit ähnlichen Projekten ansehen und beurteilen, wie er diese für Ihr Unternehmen umsetzen kann.
Schließlich sollten Sie sicherstellen, dass der SRE-Partner über die richtigen Tools und Prozesse verfügt, um Ihr Unternehmen zu unterstützen. Dazu gehört, dass er über ein robustes System zur Überwachung von Leistung und Betriebszeit sowie über Automatisierungssysteme verfügt, mit denen er potenzielle Probleme schnell erkennen und beheben kann.
Bei der Einstellung eines SRE-Teams ist es wichtig, nach Personen mit der richtigen Mischung aus technischem Fachwissen, Problemlösungsfähigkeiten und Kundenorientierung zu suchen. Systemadministratoren, Systemingenieure, Architekten, Netzwerkingenieure und Testingenieure sind allesamt wichtige Rollen innerhalb eines SRE-Teams. Jede dieser Rollen spielt eine entscheidende Rolle bei der Sicherstellung von Servicezuverlässigkeit, Skalierbarkeit und Leistung.
Wenn Unternehmen in die richtigen Teammitglieder investieren, können sie sicherstellen, dass ihre Dienste zuverlässig und sicher sind und ihren Kunden eine gute Leistung bieten. Letztlich hilft ihnen dies, die gewünschten Geschäftsziele zu erreichen und ein positives Kundenerlebnis zu bieten.
Kontakt Thomas Möller
Thomas ist immer offen für Ihre spezifischen Bedürfnisse. Er kann Ihnen schnell ein genaues Bild von der Lösung geben, die wir für Ihre Bedürfnisse bereitstellen können.
“Unsere Aufgabe war sehr spezifisch und wir hatten die Erwartung, dass sie nur schwer zu lösen wäre. Einige Tage nach dem wir Right People kontaktierten, haben wir einen Top-Berater, zu einem guten Stundenpreis, zugeteilt bekommen. Es hat perfekt funktioniert.”
Tue Ansvig, Head of Department, eBay