Resilience: Wie Netflix sein System schützt
Von Uwe Friedrichsen, Stefan Toth und Eberhard Wolff
()
Über dieses E-Book
Ähnlich wie Resilience
Titel in dieser Serie (40)
Einstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5Geolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Technologiegrundlagen Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenBPM: Strategien und Anwendungsfälle Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Linux – kurz & gut: Die wichtigen Befehle Bewertung: 4 von 5 Sternen4/5Webseiten hacken: Schnelleinstieg inkl. Entwicklung eigener Angriffsscripte Bewertung: 0 von 5 Sternen0 BewertungenVMware vSphere 6.5: Deployment, Migration, Patch-Management Bewertung: 5 von 5 Sternen5/5c't Docker & Co. 2020: Das Sonderheft c't Docker & Co. bietet einen praxisnahen Einblick in Container-Technik mit Docker und Kubernetes. Das Heft erklärt, wie man Docker auf dem eigenen Rechner oder in der Cloud einrichtet und wie der Umstieg auf Kubernetes gelingt. Bewertung: 0 von 5 Sternen0 BewertungenIT Survival Guide: Karriere- und Alltagsratgeber für die IT-Branche Bewertung: 0 von 5 Sternen0 BewertungenBig Data - Apache Hadoop Bewertung: 0 von 5 Sternen0 BewertungenMenschheit 2.0: Die Singularität naht Bewertung: 0 von 5 Sternen0 BewertungenSmall Data: Was Kunden wirklich wollen - wie man aus winzigen Hinweisen geniale Schlüsse zieht Bewertung: 5 von 5 Sternen5/5Computer-Forensik Hacks Bewertung: 0 von 5 Sternen0 BewertungenGit kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenThe Dark Net: Unterwegs in den dunklen Kanälen der digitalen Unterwelt Bewertung: 4 von 5 Sternen4/5
Rezensionen für Resilience
0 Bewertungen0 Rezensionen
Buchvorschau
Resilience - Uwe Friedrichsen
GmbH
1 Eine kurze Einführung in Resilient Software Design
In letzter Zeit hört man immer häufiger den Begriff „Resilience und manchmal auch etwas vollständiger „Resilient Software Design
. Irgendwie scheint es mit dem Umgang mit Fehlern zur Laufzeit zusammenzuhängen. Aber was daran ist so neu und anders, dass man dafür einen neuen Begriff prägen muss? Oder hat man wieder nur alten Wein in neue Schläuche gefüllt? Zeit für eine kurze Einführung: Worum geht es? Was ist anders? Und wie fühlt es sich an?
Wo fängt man am besten an, wenn man eine kurze Einführung in Resilient Software Design schreiben will? Wahrscheinlich am besten beim Wert von Software: Der primäre Zweck aller Geschäftsprozesse und der sie implementierenden und unterstützenden IT-Systeme ist es, Geld zu erwirtschaften bzw. Kundenbedürfnisse zu befriedigen – am besten beides. Das funktioniert aber nur, solange die IT-Systeme zuverlässig und – von außen betrachtet – fehlerfrei laufen.
Sind die Systeme nicht verfügbar oder fehlerhaft, sind die Kunden unzufrieden, und man verdient kein Geld mit ihnen – kurzum: Sie sind wertlos. Nur zuverlässig laufende Systeme haben Wert. Die Verfügbarkeit von Systemen in Produktion ist also essenziell für den Wert der Software. (Bei manchen Systemen wie z. B. eingebetteten Systemen geht es häufig sogar um viel mehr als nur einen monetären Wert, aber das wollen wir an dieser Stelle nicht näher betrachten.)
Verfügbarkeit und Fehlertypen
Was aber ist Verfügbarkeit genau? Die Verfügbarkeit A (für Availability, den englischen Begriff für Verfügbarkeit) ist definiert als [1] A := MTTF / (MTTF + MTTR). Darin bedeuten:
MTTF (Mean Time To Failure): die durchschnittliche Zeit vom Beginn des ordnungsgemäßen Betriebs eines Systems bis zum Auftreten eines Fehlers
MTTR (Mean Time To Recovery): die durchschnittliche Zeit vom Auftreten eines Fehlers bis zur Wiederherstellung des ordnungsgemäßen Betriebs des Systems
Während der Nenner also die gesamte Zeit beschreibt, beschreibt der Zähler den Teil der Zeit, in dem das System ordnungsgemäß funktioniert. Damit kann die Verfügbarkeit Werte zwischen 0 für „gar nicht verfügbar und 1 für „immer verfügbar
annehmen. Wenn man den Wert mit 100 multipliziert, erhält man die vertrautere Darstellung als Prozentwert.
Bevor wir uns der Frage zuwenden, wie man die Verfügbarkeit maximieren kann, ist es sinnvoll, einen kurzen Blick auf die möglichen Arten von Fehlern zu werfen, die die Verfügbarkeit kompromittieren können. Die eingängige Literatur (siehe z. B. [2]) unterscheidet fünf Fehlertypen:
Crash Failure (Absturzfehler): Ein System antwortet permanent nicht mehr, hat bis zum Zeitpunkt des Ausfalls aber korrekt gearbeitet.
Omission Failure (Auslassungsfehler): Ein System reagiert auf (einzelne) Anfragen nicht, sei es, dass es die Anfragen nicht erhält oder keine Antwort sendet.
Timing Failure (Antwortzeitfehler): Die Antwortzeit eines Systems liegt außerhalb eines festgelegten Zeitintervalls.
Response Failure (Antwortfehler): Die Antwort, die ein System gibt, ist falsch.
Byzantine Failure (byzantinischer/zufälliger Fehler): Ein System gibt zu zufälligen Zeiten zufällige Antworten („es läuft Amok").
Wenn man von Fehlern im Kontext von Verfügbarkeit spricht, denken