Facebook Pixel
Searching...
Deutsch
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Site Reliability Engineering

Site Reliability Engineering

How Google Runs Production Systems
von Betsy Beyer 2016 550 Seiten
4.22
2k+ Bewertungen
Hören
Hören

Wichtige Erkenntnisse

1. Site Reliability Engineering balanciert Zuverlässigkeit und Innovation

SRE ist das Ergebnis, wenn man einen Software-Ingenieur bittet, ein Betriebsteam zu entwerfen.

Die Kernaufgabe von SRE besteht darin, skalierbare und zuverlässige Softwaresysteme zu schaffen. Dieser Ansatz beinhaltet die Anwendung von Software-Engineering-Prinzipien auf den Betrieb, mit dem Ziel, Aufgaben zu automatisieren und die Systemzuverlässigkeit zu verbessern. SRE-Teams bestehen aus Ingenieuren mit unterschiedlichen Hintergründen, einschließlich Softwareentwicklung und Systemadministration. Sie konzentrieren sich auf:

  • Automatisierung sich wiederholender Aufgaben
  • Aufbau und Wartung skalierbarer Infrastrukturen
  • Implementierung von Überwachungs- und Alarmsystemen
  • Gestaltung für Fehlertoleranz und Katastrophenwiederherstellung

Indem der Betrieb als Softwareproblem behandelt wird, ermöglicht SRE Organisationen, große Systeme effizienter zu bauen und zu warten. Dieser Ansatz erlaubt schnellere Innovationen bei gleichzeitiger Aufrechterhaltung hoher Zuverlässigkeitsstandards und schafft ein Gleichgewicht zwischen Stabilität und Agilität in der Systementwicklung und -verwaltung.

2. Risiken eingehen, um die Serviceleistung zu optimieren

Extreme Zuverlässigkeit hat ihren Preis: Maximale Stabilität begrenzt die Geschwindigkeit, mit der neue Funktionen entwickelt und Produkte an Benutzer geliefert werden können, und erhöht die Kosten erheblich, was wiederum die Anzahl der Funktionen reduziert, die ein Team anbieten kann.

Risikomanagement ist ein entscheidender Aspekt von SRE. Anstatt 100% Zuverlässigkeit anzustreben, was oft unpraktisch und kostspielig ist, konzentrieren sich SRE-Teams auf das Management eines "Fehlerbudgets". Dieser Ansatz beinhaltet:

  • Definition eines akzeptablen Maßes an Ausfallzeiten oder Fehlern
  • Nutzung dieses Budgets, um fundierte Entscheidungen darüber zu treffen, wann neue Funktionen eingeführt werden sollen
  • Ausgleich des Bedarfs an Innovation mit dem Bedürfnis nach Stabilität

Indem ein gewisses Maß an Risiko akzeptiert wird, können Organisationen:

  • Schneller neue Funktionen entwickeln und bereitstellen
  • Kosten reduzieren, die mit übermäßigem Engineering für Zuverlässigkeit verbunden sind
  • Ressourcen auf Bereiche konzentrieren, die den größten Nutzen für die Benutzer bieten

Dieser Ansatz fördert einen dynamischeren und innovativeren Entwicklungsprozess bei gleichzeitiger Aufrechterhaltung eines angemessenen Maßes an Systemzuverlässigkeit.

3. Service Level Objectives definieren akzeptable Ausfallzeiten

SLOs sollten spezifizieren, wie sie gemessen werden und unter welchen Bedingungen sie gültig sind.

Service Level Objectives (SLOs) sind ein wichtiges Werkzeug im Management der Systemzuverlässigkeit. Sie definieren spezifische, messbare Ziele für die Systemleistung und -verfügbarkeit. SRE-Teams nutzen SLOs, um:

  • Klare Erwartungen an das Systemverhalten zu setzen
  • Entscheidungen darüber zu leiten, wann Zuverlässigkeitsarbeit priorisiert werden sollte
  • Einen Rahmen für die Messung und Verbesserung der Systemleistung bereitzustellen

SLOs beinhalten typischerweise Metriken wie:

  • Verfügbarkeit (z.B. 99,9% Betriebszeit)
  • Latenz (z.B. 95% der Anfragen werden in unter 100ms abgeschlossen)
  • Fehlerraten (z.B. weniger als 0,1% der Anfragen führen zu Fehlern)

Durch die Definition und Verfolgung dieser Ziele können Teams datengetriebene Entscheidungen darüber treffen, wann der Fokus auf die Verbesserung der Zuverlässigkeit oder die Entwicklung neuer Funktionen gelegt werden sollte, um ein Gleichgewicht zwischen Innovation und Stabilität zu gewährleisten.

4. Beseitigung von Routinearbeit durch Automatisierung und Engineering

Routinearbeit ist die Art von Arbeit, die mit dem Betrieb eines Produktionsdienstes verbunden ist, die tendenziell manuell, repetitiv, automatisierbar, taktisch, ohne bleibenden Wert ist und linear skaliert, wenn ein Dienst wächst.

Die Reduzierung von Routinearbeit ist ein grundlegendes Ziel von SRE. Routinearbeit bezieht sich auf manuelle, sich wiederholende Arbeiten, die keinen bleibenden Wert bieten. SRE-Teams streben danach, Routinearbeit zu minimieren, indem sie:

  • Routinemäßige Aufgaben und Prozesse automatisieren
  • Systeme bauen, die selbstheilend sind und minimalen manuellen Eingriff erfordern
  • Werkzeuge und Prozesse kontinuierlich verbessern, um manuelle Arbeit zu reduzieren

Vorteile der Beseitigung von Routinearbeit umfassen:

  • Mehr Zeit für strategische, wertvolle Ingenieursarbeit
  • Verbesserte Systemzuverlässigkeit durch konsistente, automatisierte Prozesse
  • Erhöhte Arbeitszufriedenheit und reduzierte Burnout-Raten unter den Teammitgliedern

Durch den Fokus auf die Beseitigung von Routinearbeit können SRE-Teams ihre Fähigkeit skalieren, komplexe Systeme zu verwalten, ohne die Anzahl der Mitarbeiter linear zu erhöhen, was effizientere und effektivere Operationen ermöglicht.

5. Effektive Überwachungs- und Alarmsysteme implementieren

Überwachung sollte niemals erfordern, dass ein Mensch irgendeinen Teil des Alarmbereichs interpretiert.

Robuste Überwachungs- und Alarmsysteme sind entscheidend für die Aufrechterhaltung der Systemzuverlässigkeit. Effektive Systeme sollten:

  • Echtzeit-Einblicke in die Systemleistung und -gesundheit bieten
  • Umsetzbare Alarme generieren, die menschliches Eingreifen erfordern
  • Alarmmüdigkeit vermeiden, indem Lärm und Fehlalarme reduziert werden

Wichtige Komponenten eines guten Überwachungs- und Alarmsystems umfassen:

  • Klar definierte Service Level Indicators (SLIs), die kritische Systemverhalten messen
  • Automatisierte Sammlung und Analyse von Systemmetriken
  • Intelligente Alarmweiterleitung und Eskalationsverfahren
  • Dashboards, die einen Überblick über den Systemstatus bieten

Durch die Implementierung effektiver Überwachungs- und Alarmsysteme können SRE-Teams Probleme schnell identifizieren und darauf reagieren, bevor sie Benutzer beeinträchtigen, und so hohe Zuverlässigkeits- und Leistungsniveaus aufrechterhalten.

6. Praxis der schuldlosen Nachbesprechungen, um aus Fehlern zu lernen

Eine schuldlos geschriebene Nachbesprechung geht davon aus, dass alle Beteiligten eines Vorfalls gute Absichten hatten und das Richtige mit den ihnen zur Verfügung stehenden Informationen getan haben.

Schuldlose Nachbesprechungen sind ein kritisches Werkzeug, um aus Vorfällen zu lernen und die Systemzuverlässigkeit zu verbessern. Dieser Ansatz konzentriert sich auf:

  • Identifizierung der Grundursachen von Vorfällen ohne persönliche Schuldzuweisung
  • Förderung offener und ehrlicher Kommunikation über Fehler
  • Entwicklung umsetzbarer Verbesserungen, um ähnliche Vorfälle in der Zukunft zu verhindern

Wichtige Elemente effektiver Nachbesprechungen umfassen:

  • Detaillierte Zeitleiste des Vorfalls
  • Analyse der beitragenden Faktoren
  • Klare Maßnahmen zur Systemverbesserung
  • Teilen der gewonnenen Erkenntnisse in der gesamten Organisation

Durch die Förderung einer Kultur der schuldlosen Nachbesprechungen können Organisationen ein Umfeld schaffen, in dem Fehler als Lern- und Verbesserungsmöglichkeiten gesehen werden, was zu widerstandsfähigeren Systemen und Teams führt.

7. Lastverteilung und Überlastungsbewältigung sind entscheidend für die Zuverlässigkeit

Clients können weiterhin Anfragen an das Backend senden, bis die Anfragen K-mal so groß sind wie die Annahmen.

Effektive Lastverteilung ist entscheidend für die Aufrechterhaltung der Systemleistung bei unterschiedlichen Verkehrsaufkommen. Wichtige Strategien umfassen:

  • Implementierung intelligenter clientseitiger Lastverteilungsalgorithmen
  • Verwendung adaptiver Drosselung zur Vermeidung von Überlastung
  • Gestaltung von Systemen mit Fähigkeiten zur sanften Degradation

Wichtige Überlegungen zur Lastverteilung und Überlastungsbewältigung:

  • Angemessene Unterteilung zur Lastverteilung über Backend-Server
  • Implementierung von Priorisierungsmechanismen basierend auf Kritikalität
  • Gestaltung von Wiederholungsmechanismen, die Überlastungssituationen nicht verschärfen

Durch die Implementierung robuster Lastverteilungs- und Überlastungsbewältigungsmechanismen können SRE-Teams sicherstellen, dass Systeme auch bei hoher Last reaktionsfähig und verfügbar bleiben, was die Gesamtzuverlässigkeit und Benutzererfahrung verbessert.

8. Systeme entwerfen, um kaskadierende Ausfälle zu verhindern und zu mildern

Ein kaskadierender Ausfall ist ein Ausfall, der im Laufe der Zeit aufgrund positiver Rückkopplung wächst.

Die Verhinderung kaskadierender Ausfälle ist entscheidend für die Aufrechterhaltung der Systemzuverlässigkeit im großen Maßstab. Wichtige Strategien umfassen:

  • Gestaltung von Systemen mit angemessener Isolation und Fehlerbegrenzung
  • Implementierung von Schutzschaltern zur Verhinderung der Überlastungsausbreitung
  • Einsatz von Mechanismen zur schrittweisen und kontrollierten Degradation

Wichtige Designüberlegungen:

  • Ressourcenallokation und -management zur Vermeidung von Erschöpfung
  • Implementierung von Backoff- und Wiederholungsmechanismen mit Jitter
  • Gestaltung für sanfte Dienstunverfügbarkeit

Durch den Fokus auf die Verhinderung und Minderung kaskadierender Ausfälle können SRE-Teams widerstandsfähigere Systeme bauen, die Teilfehler ohne Beeinträchtigung der gesamten Systemverfügbarkeit und -leistung überstehen können.

9. Eine Kultur des Software-Engineerings innerhalb von SRE-Teams pflegen

SREs müssen mindestens 50% ihrer Zeit mit Ingenieursarbeit verbringen, wenn man es über einige Quartale oder ein Jahr hinweg betrachtet.

Die Förderung von Software-Engineering-Praktiken innerhalb von SRE-Teams ist entscheidend für den Aufbau skalierbarer und zuverlässiger Systeme. Dieser Ansatz beinhaltet:

  • Ermutigung von SREs, einen erheblichen Teil ihrer Zeit mit Entwicklungsarbeit zu verbringen
  • Anwendung von Software-Engineering-Prinzipien auf Betriebstätigkeiten
  • Entwicklung von Werkzeugen und Automatisierung zur Verbesserung der Systemzuverlässigkeit und Effizienz

Vorteile dieses Ansatzes umfassen:

  • Verbesserte Fähigkeit, den Betrieb zu skalieren, ohne die Anzahl der Mitarbeiter linear zu erhöhen
  • Erhöhte Problemlösungsfähigkeiten für komplexe Systemprobleme
  • Erhöhte Arbeitszufriedenheit und Karrieremöglichkeiten für SREs

Durch die Pflege einer starken Software-Engineering-Kultur innerhalb von SRE-Teams können Organisationen robustere und skalierbarere Systeme aufbauen und gleichzeitig erstklassige Ingenieurtalente anziehen und halten.

Zuletzt aktualisiert:

FAQ

What's Site Reliability Engineering: How Google Runs Production Systems about?

  • Focus on Reliability: The book explores Site Reliability Engineering (SRE), a discipline that applies software engineering principles to infrastructure and operations to create scalable and reliable systems.
  • Google's Approach: It details Google's use of SRE to manage its services, emphasizing reliability, automation, and engineering practices.
  • Real-World Examples: The book includes case studies from Google's experiences, illustrating how SRE principles improve service reliability and operational efficiency.

Why should I read Site Reliability Engineering: How Google Runs Production Systems?

  • Learn from Experts: Authored by experienced Google SREs, it offers insider knowledge on managing large-scale systems.
  • Applicable Practices: The principles can be adapted to organizations of all sizes, making it relevant for anyone in IT operations.
  • Comprehensive Resource: It serves as both a theoretical guide and a practical manual, covering topics from monitoring to capacity planning.

What are the key takeaways of Site Reliability Engineering: How Google Runs Production Systems?

  • Emphasis on Reliability: Reliability is the most fundamental feature of any product, as unreliable systems are not useful.
  • Error Budgets: Introduces error budgets to balance innovation and reliability, allowing calculated risks while maintaining service levels.
  • Automation and Toil Reduction: Stresses the importance of automation in reducing operational toil, enabling teams to scale effectively.

What are the best quotes from Site Reliability Engineering: How Google Runs Production Systems and what do they mean?

  • "Hope is not a strategy.": Emphasizes the need for concrete plans and actions rather than relying on optimism.
  • "The price of reliability is the pursuit of the utmost simplicity.": Suggests that simpler systems are more reliable, as complexity introduces more failure points.
  • "If a human operator needs to touch your system during normal operations, you have a bug.": Highlights the goal of automation to minimize human intervention.

How does Site Reliability Engineering: How Google Runs Production Systems define and manage risk?

  • Risk as a Continuum: SREs assess the appropriate level of reliability needed for different services, aligning reliability targets with business goals.
  • Error Budgets: Quantify acceptable unreliability, balancing the need for new features with maintaining reliability.
  • Service Level Objectives (SLOs): Define expected service reliability, guiding risk management and engineering efforts.

What is the role of an SRE as described in Site Reliability Engineering: How Google Runs Production Systems?

  • Operational Responsibility: SREs handle availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning.
  • Engineering Focus: Apply software engineering principles to solve operational problems, allowing for efficient and scalable solutions.
  • Collaboration with Development Teams: Work closely with product development to ensure reliability is built into software from the start.

How does Google ensure reliability in its systems according to Site Reliability Engineering: How Google Runs Production Systems?

  • Monitoring Systems: Comprehensive monitoring tracks performance and health, allowing quick issue detection.
  • Incident Management: A robust process includes preparation, detection, response, and post-incident analysis for continuous improvement.
  • Capacity Planning: Anticipates future demands to ensure systems handle expected loads without performance degradation.

What is the significance of monitoring in Site Reliability Engineering: How Google Runs Production Systems?

  • Foundation of Reliability: Essential for understanding system health and performance, enabling issue detection before user impact.
  • Four Golden Signals: Latency, traffic, errors, and saturation are key metrics providing a comprehensive view of service performance.
  • Alerting Systems: Alerts must be actionable and relevant, ensuring on-call engineers focus on real issues.

What is the blameless postmortem process described in Site Reliability Engineering: How Google Runs Production Systems?

  • Focus on Learning: Analyzes incidents without assigning blame, understanding what went wrong and preventing future issues.
  • Structured Approach: Involves gathering data, identifying root causes, and documenting findings to share knowledge.
  • Cultural Integration: Reinforces that failures are learning opportunities, fostering a culture of improvement.

How does Google handle overload situations in its systems according to Site Reliability Engineering: How Google Runs Production Systems?

  • Graceful Degradation: Strategies for serving degraded responses allow continued operation under stress.
  • Load Shedding: Drops less critical requests during overloads, ensuring essential services remain operational.
  • Monitoring and Alerts: Early detection of overload conditions enables proactive response before escalation.

What is the concept of toil in Site Reliability Engineering: How Google Runs Production Systems?

  • Definition of Toil: Mundane, repetitive operational work providing no enduring value, scaling linearly with service growth.
  • Impact on SRE Workload: SREs should spend no more than 50% of their time on operational work, focusing on engineering projects.
  • Eliminating Toil: Strategies include automating repetitive tasks and improving system design to minimize manual intervention.

How does Google ensure reliability during product launches according to Site Reliability Engineering: How Google Runs Production Systems?

  • Launch Coordination Engineering: A dedicated team oversees product launches, mitigating risks associated with new releases.
  • Pre-Launch Checklists: Detailed checklists prepare teams for potential issues, ensuring necessary steps are taken before launch.
  • Gradual Rollouts: Monitors new feature impacts on performance, allowing quick rollbacks if issues arise.

Rezensionen

4.22 von 5
Durchschnitt von 2k+ Bewertungen von Goodreads und Amazon.

Site Reliability Engineering erhält gemischte Bewertungen. Leser loben die wertvollen Einblicke in die Praktiken von Google, kritisieren jedoch die ungleiche Qualität und die Wiederholungen im Text. Viele empfinden das Buch als unverzichtbar für das Verständnis des Managements großangelegter Systeme, während andere es als zu spezifisch für Google ansehen. Zu den positiven Aspekten zählen praktische Ratschläge zu Monitoring, Fehlerbudgets und Postmortems. Die Kritikpunkte konzentrieren sich auf die Länge des Buches, den inkonsistenten Schreibstil und gelegentliche Überheblichkeit. Trotz dieser Mängel wird es allgemein als einflussreiche Ressource für SRE- und DevOps-Profis angesehen, die einzigartige Perspektiven zur Aufrechterhaltung zuverlässiger Dienste im großen Maßstab bietet.

Über den Autor

Betsy Beyer ist technische Redakteurin bei Google in New York City und spezialisiert auf Site Reliability Engineering. Ihr Werdegang umfasst das Verfassen von Dokumentationen für die Data Center- und Hardware-Operationsteams von Google, die über global verteilte Rechenzentren hinweg arbeiten. Vor ihrer aktuellen Position war Beyer Dozentin für technisches Schreiben an der Stanford University. Ihr Bildungshorizont ist vielfältig, mit Abschlüssen in Internationalen Beziehungen und Englischer Literatur von Stanford und Tulane. Diese Kombination aus technischem Fachwissen und literarischen Fähigkeiten ermöglicht es ihr, komplexe Ingenieurkonzepte in ihrer Arbeit bei Google effektiv zu kommunizieren und die Kluft zwischen technischen und nicht-technischen Zielgruppen zu überbrücken.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Mar 1,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
50,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →