Ein Site Reliability Engineer (SRE) schlägt die Brücke zwischen Entwicklung und IT-Betrieb, indem er Aufgaben übernimmt, die typischerweise vom Betrieb ausgeführt werden.
Stattdessen werden solche Aufgaben diesen Ingenieuren übergeben, die Automatisierungstools verwenden, um Probleme durch die Erstellung skalierbarer und zuverlässiger Softwaresysteme zu lösen. Standardisierung und Automatisierung stehen im Mittelpunkt der Arbeit eines SREs, insbesondere wenn Systeme in die Cloud migrieren.
Daher haben sie oft einen Hintergrund in Software- oder Systemengineering oder Systemadministration mit IT-Betriebserfahrung.
Was ist Site Reliability Engineering?
Wir beginnen mit einer Definition dieses Ingenieurwesens, bevor wir auf die Rolle und die Verantwortlichkeiten eines Site Reliability Engineers eingehen. Site Reliability Engineering ist ein Begriff, der erstmals von Google geprägt wurde, wo er als „wenn man den Betrieb als Softwareproblem behandelt“ beschrieben wird.
Der Hauptzweck von SRE ist die Entwicklung von Softwaresystemen und automatisierten Lösungen für betriebliche Aspekte. SRE erledigt somit die Arbeit, die traditionell vom Betrieb ausgeführt wird, aber stattdessen werden Ingenieure mit Software-Expertise eingesetzt, um komplexe Probleme zu lösen.
Daher kann Site Reliability Engineering als eine Reihe von Praktiken betrachtet werden, die Aspekte des Softwareengineerings in den Betrieb integrieren und dadurch die Effizienz und Zuverlässigkeit von Softwaresystemen erhöhen und den Workflow verbessern.
SRE und DevOps
Site Reliability Engineering ist eng mit DevOps verbunden, einem weiteren Konzept, das Softwareentwicklung und Betrieb verknüpft, und kann als Verallgemeinerung der grundlegenden SRE-Prinzipien gesehen werden. Folglich spielt SRE eine große Rolle bei der erfolgreichen Implementierung von DevOps-Praktiken.
Darüber hinaus streben sowohl DevOps als auch SRE an, die Lücke zwischen Betriebs- und Entwicklungsteams zu schließen, um Software schneller bereitzustellen.
Ein Artikel von Google macht jedoch einen Unterschied zwischen den beiden Begriffen und besagt, dass SRE „die Philosophien von DevOps verkörpert, aber eine viel präskriptivere Art und Weise hat, Zuverlässigkeit durch Engineering- und Betriebsarbeit zu messen und zu erreichen. Mit anderen Worten, SRE gibt vor, wie man in den verschiedenen DevOps-Bereichen erfolgreich ist.“
However, an article by Google makes a distinction between the two terms stating that SRE “happens to embody the philosophies of DevOps, but has a much more prescriptive way of measuring and achieving reliability through engineering and operations work. In other words, SRE prescribes how to succeed in the various DevOps areas.”
Lese mehr dazu hier: DevOps und was ein DevOps Engineer macht.
Was macht ein Site Reliability Engineer?
Ein Site Reliability Engineer (SRE) arbeitet zwischen Entwicklung und Betrieb. Der SRE ist also ein Software-Entwickler mit Erfahrung und Kenntnissen im IT-Betrieb.
Ein Großteil dieser Rolle dreht sich um das Schreiben und Entwickeln von Code zur Automatisierung von Prozessen, wie das Analysieren von Logs, das Testen von Produktionsumgebungen und das Reagieren auf Probleme. Der Site Reliability Engineer ist also ein Experte im Schreiben von Code.
Diese Automatisierung ermöglicht es den Developern wiederum, sich ausschließlich auf die Feature-Entwicklung zu konzentrieren und neue Funktionen so schnell wie möglich in die Produktion zu bringen.
Das Betriebsteam seinerseits wird feststellen, dass seine Arbeitsbelastung abnimmt, da ein SRE Lösungen für jedes wiederkehrende Problem automatisiert. Daher wechselt der SRE zwischen Entwicklungs- und Betriebsarbeit und hält ein Gleichgewicht zwischen beiden.
Da sich ein SRE hauptsächlich auf Automatisierung konzentriert, bedeutet dies, dass er die Leistung, Effizienz und Überwachung der Softwareentwicklungsprozesse verbessert.
Erforderliche Fähigkeiten
SREs widmen ihre Zeit der Erstellung von Software, die die Zuverlässigkeit von Systemen verbessert, Probleme behebt und auf Vorfälle und Probleme reagiert.
Daher benötigen sie verschiedene technische Fähigkeiten. Sie müssen Kenntnisse über verschiedene Automatisierungstools haben, da sie normalerweise für den Aufbau und die Integration von Softwaretools zur Verbesserung der Zuverlässigkeit und Skalierbarkeit eines organisatorischen Systems verantwortlich sind.
Der SRE benötigt Kenntnisse in Programmierung und den gängigsten Programmiersprachen, einschließlich Ruby, Javascript und PHP.
Er/sie muss auch über Fachkenntnisse in den wichtigsten Cloud-Anbietern wie AWS und Google Cloud verfügen.
Tägliche Rollen und Verantwortlichkeiten eines SRE
Automatisierung
SRE-Ingenieure bauen Automatisierungstools zur Verwaltung von IT-Betrieben. Ihre Aufgabe ist es, diese Funktionen zu automatisieren, anstatt sie manuell auszuführen. Zu diesen Funktionen gehören:
- Kontinuierliche integration und kontinuierliche Bereitstellung
- Überwachung
- Vorfallreaktion
- Benachrichtigungen
Überwachung
SRE-Ingenieure sind dafür verantwortlich, sicherzustellen, dass die zugrunde liegende Infrastruktur reibungslos läuft und dass Systeme und Tools wie erwartet funktionieren.
Sie überwachen auch kritische Anwendungen und Dienste, um Ausfallzeiten zu minimieren und deren Verfügbarkeit sicherzustellen.
Problemlösung
Diese Ingenieure arbeiten eng mit Entwicklern zusammen, insbesondere wenn Probleme auftreten, sodass sie mit Entwicklern bei der Fehlersuche zusammenarbeiten und bei Benachrichtigungen beraten.
Im Falle eines Problems wird dieser Ingenieur das Problem untersuchen und dann beheben.
Nach der Problemlösung wird der Ingenieur das Problem erneut überprüfen und die Ursache ermitteln, um sicherzustellen, dass es nicht wieder auftritt.
Teamübergreifende Zusammenarbeit
Wie oben beschrieben, arbeiten SREs teamübergreifend, hauptsächlich zwischen Betrieb und Entwicklung. Durch den Aufbau zuverlässiger Systeme und die Bereitstellung von Unterstützung für diese Teams haben diese Teams mehr Zeit, sich auf die Entwicklung neuer Funktionen zu konzentrieren und diese schneller an die Kunden zu bringen.
Häufig verwendete Tools von SREs
- Überwachung: AWS CloudWatch und NewRelic
- Vorfallmanagement/On-Call: PagerDuty und VictorOps
- Projektmanagement und Problemverfolgung: Jira und Trello
- Infrastruktur-Orchestrierung: Terraform und SaltStack
Um mehr über die von Site Reliability Engineers verwendeten Tools zu erfahren, sieh dir diese kuratierte Liste von SRE-Tools an.
Wie viel verdient ein SRE?
Laut Payscale verdient dieser Ingenieur in den Vereinigten Staaten ein Gehalt zwischen 76.000 und 158.000 US-Dollar pro Jahr, wobei der Durchschnitt bei 117.768 US-Dollar pro Jahr liegt.
Fazit
Ein Site Reliability Engineer wird zu einer immer wichtigeren Rolle in Organisationen. Es ist eine herausfordernde Rolle, die eine Leidenschaft für Programmierung und Automatisierung erfordert.
Solche Ingenieure in deiner Organisation helfen dabei, deine Betriebskosten zu senken und gleichzeitig die Zuverlässigkeit deiner Systeme zu verbessern.
mit ABTasty
Erhalten Sie eine individuelle Komplettlösung für die Plattform
Demo anfordern