Zuverlässigkeit
Stellen Sie sich vor, dass Sie ein Kliniksystem für eine Gesundheitsorganisation ausführen. Ärzte und Pfleger sind in Bezug auf Ausfallzeiten nicht sonderlich tolerant. Sie müssen rund um die Uhr auf die IT-Systeme des Krankenhauses zugreifen können, um die Patienten jederzeit bestmöglich versorgen zu können.
Die Anwendungen müssen Fehler und Ausfälle daher so behandeln, dass sie sich so wenig wie möglich auf die Benutzer auswirken. Wie können also die Anwendungen betriebsfähig gehalten werden – sowohl bei lokalen Vorfällen als auch bei Katastrophen größeren Ausmaßes?
In dieser Lerneinheit erfahren Sie, wie Sie Elemente aus der Säule „Zuverlässigkeit“ in Ihren Architekturentwurf einbeziehen.
Was ist Zuverlässigkeit?
Bei einer komplexen Anwendung können viele kleinere und größere Dinge schiefgehen. Einzelne Server und Festplatten können ausfallen. Aufgrund eines Bereitstellungsproblems können versehentlich alle Tabellen in einer Datenbank gelöscht werden. Unter Umständen sind ganze Rechenzentren nicht mehr erreichbar. Aufgrund eines Ransomware-Vorfalls können Ihre gesamten Daten in böswilliger Absicht verschlüsselt werden. Ihre Anwendung muss zuverlässig sein und sowohl Vorfälle mit lokalen als auch darüber hinaus gehenden Auswirkungen bewältigen.
Beim Entwurf mit dem Schwerpunkt Verfügbarkeit geht es auch darum, den Betrieb bei kleineren Vorfällen und vorübergehenden Ereignissen wie Teilausfällen des Netzwerks sicherzustellen. Sie können dafür sorgen, dass Ihre Anwendung mit lokalen Ausfällen umgehen kann, indem Sie Hochverfügbarkeit in jede Komponente der Anwendung integrieren. Durch diesen Anwendungsentwurf werden Single Points of Failure (SPOF) beseitigt. Bei einem Entwurf dieser Art werden auch die Auswirkungen der Infrastrukturwartung minimiert. Entwürfe zur Bereitstellung von Hochverfügbarkeit zielen in der Regel darauf ab, die Auswirkungen von Incidents schnell und automatisch zu beseitigen sowie zu gewährleisten, dass das System weiterhin Anforderungen verarbeiten kann (im Idealfall ohne jegliche Beeinträchtigung).
Beim Entwurf mit dem Schwerpunkt Zuverlässigkeit steht auch die Wiederherstellung nach einem Datenverlust und nach Katastrophen größeren Ausmaßes im Mittelpunkt. Die Wiederherstellung nach einem solchen Vorfall bedarf häufig eines aktiven Eingriffs, kann jedoch durch automatisierte Wiederherstellungsschritte beschleunigt werden. Diese Arten von Vorfällen sind unter Umständen mit gewissen Ausfallzeiten oder Datenverlusten verbunden. Bei der Notfallwiederherstellung ist die sorgfältige Planung genauso wichtig wie die Ausführung.
Wenn Sie Hochverfügbarkeit und Wiederherstellbarkeit in den Entwurf Ihrer Architektur einbinden, schützen Sie Ihr Unternehmen vor finanziellen Verlusten aufgrund von Downtime und Datenverlusten. Sie schützen Ihr Unternehmen außerdem vor einer durch den Vertrauensverlust Ihrer Kund*innen verursachten Rufschädigung.
Eine auf Zuverlässigkeit konzentrierte Entwicklung stellt sicher, dass die Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Sie möchten sicherstellen, dass Ihre Systeme für Endbenutzer*innen verfügbar sind und bei Ausfällen wiederhergestellt werden können.
Erstellen einer hochverfügbaren Architektur
Ermitteln Sie in Bezug auf die Verfügbarkeit die Vereinbarung zum Servicelevel (SLA), zu der Sie sich verpflichten. Untersuchen Sie die potenziellen Hochverfügbarkeitsfunktionen Ihrer Anwendung im Hinblick auf Ihre Vereinbarung zum Servicelevel (SLA), und ermitteln Sie, wo Sie eine geeignete Abdeckung erzielen und wo Sie noch Verbesserungen vornehmen müssen. Das Ziel ist, für Redundanz der Komponenten der Architektur zu sorgen, um die Wahrscheinlichkeit eines Ausfalls zu verringern.
Beispiele für Komponenten mit Hochverfügbarkeitsentwurf sind das Clustering und der Lastenausgleich:
Beim Clustering wird eine einzelne VM durch eine Gruppe koordinierter VMs ersetzt. Wenn eine VM ausfällt oder nicht mehr erreichbar ist, können Dienste ein Failover zu einer anderen VM ausführen, die die Anforderungen verarbeiten kann.
Beim Lastenausgleich werden Anforderungen auf viele Instanzen eines Diensts verteilt. Ausgefallene Instanzen werden erkannt, und es wird verhindert, dass Anforderungen an diese Instanzen geleitet werden.
Erstellen einer Architektur, die nach einem Fehler wiederhergestellt werden kann
Führen Sie für die Wiederherstellbarkeit eine Analyse zur Untersuchung von Szenarien mit möglichen Datenverlusten und schwerwiegenden Ausfällen durch. Ihre Analyse sollte eine Untersuchung der Wiederherstellungsstrategien und das jeweilige Kosten-Nutzen-Verhältnis umfassen. Diese Übung liefert wichtige Erkenntnisse zu den Prioritäten Ihrer Organisation und verdeutlicht die Rolle Ihrer Anwendung. Die Ergebnisse sollten die folgenden Vorgaben für Ihre Anwendung umfassen:
Recovery Point Objective (RPO): Die maximale Dauer des zulässigen Datenverlusts. Der RPO-Wert wird in Zeiteinheiten und nicht als Volumen gemessen. Beispiele sind „30 Minuten Daten“, „vier Stunden Daten“ usw. Beim RPO-Wert geht es um das Einschränken und Wiederherstellen des Verlusts von Daten, nicht um den Diebstahl von Daten.
Recovery Time Objective (RTO): Die maximale Dauer der zulässigen Ausfallzeit, wobei der Begriff „Ausfallzeit“ in Ihrer Spezifikation definiert ist. Wenn die akzeptable Ausfallzeit im Falle einer Störung z. B. acht Stunden beträgt, liegt Ihr RTO-Wert bei acht Stunden.
Wenn der RPO- und der RTO-Wert definiert wurden, können Sie Sicherungs-, Wiederherstellungs- und Replikationsfunktionen für Ihre Architektur entwerfen, um diese Ziele zu erreichen.
Jeder Cloudanbieter bietet eine Sammlung von Diensten und Features an, die Sie verwenden können, um die Verfügbarkeit und Wiederherstellbarkeit Ihrer Anwendung zu verbessern. Nutzen Sie nach Möglichkeit vorhandene Dienste und bewährte Methoden, und versuchen Sie, auf die Erstellung eigener Dienste oder Features zu verzichten.
Festplatten können ausfallen, Rechenzentren können nicht mehr erreichbar sein und Hacker können Angriffe durchführen. Es ist wichtig, dass Sie gegenüber den Kunden Ihren guten Ruf wahren, indem Sie Funktionen für Verfügbarkeit und Wiederherstellbarkeit nutzen. Bei der Verfügbarkeit geht es darum, den Betrieb auch unter Bedingungen wie Netzwerkausfällen aufrechtzuerhalten, während bei der Wiederherstellbarkeit das Abrufen von Daten nach einer Notfallsituation im Mittelpunkt steht.