Die Anwendungsresilienz ist die Fähigkeit einer Software, die wichtigsten Funktionen auch bei ungeplanten Unterbrechungen aufrechtzuerhalten, z. B. bei Komponentenfehlern, Ausfällen oder plötzlichen Belastungsspitzen. Resiliente Anwendungen tragen dazu bei, die Geschäftskontinuität zu gewährleisten, das Benutzererlebnis zu schützen und Ausfallzeiten zu minimieren.
Anwendungen unterstützen praktisch jeden Aspekt eines modernen Unternehmens, von der Verarbeitung von Kundentransaktionen und der Verwaltung von Lieferketten bis hin zur Zusammenarbeit von Mitarbeitern und der Analyse von Echtzeitdaten.
Wenn diese Anwendungen ausfallen, kann das schwerwiegende Folgen haben. Ausfallzeiten, d. h. Zeiten, in denen eine Anwendung nicht verfügbar ist oder nicht richtig funktioniert, können den Ruf des Unternehmens schädigen, das Benutzererlebnis beeinträchtigen und zu erheblichen finanziellen Verlusten führen.
Durch die Entwicklung und Implementierung resilienter Anwendungen können Unternehmen diese Störungen vermeiden und abmildern.
Die Resilienz der Anwendung hängt von zwei Kernprinzipien ab:
Resiliente Anwendungen tragen dazu bei, Schwachstellen in der Anwendungsarchitektur zu verringern, die betriebliche Effizienz zu verbessern und ein beständiges Benutzererlebnis auch bei unerwarteten Unterbrechungen zu gewährleisten.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Um resiliente Anwendungen zu erstellen und bereitzustellen, können Entwickler und IT-Teams verschiedene Tools und Praktiken während des gesamten Lebenszyklus der Anwendung einsetzen.
Zu den gängigen Komponenten resilienter Anwendungen gehören:
Redundanz bedeutet, dass Sie Backup-Versionen von kritischen Systemen haben. Wenn ein System ausfällt, übernimmt das Backup und gewährleistet so den weiteren Betrieb des Systems.
Zum Beispiel wird ein Zahlungsverarbeitungsdienst wahrscheinlich mehrere Kopien des Dienstes auf verschiedenen Servern laufen lassen. Wenn ein Server ausfällt, können die Kopien auf anderen Servern automatisch die Arbeitslast übernehmen, sodass die Kunden das Problem gar nicht erst bemerken.
Unternehmen bauen häufig Redundanzen in wichtigen Bereichen auf:
Beim Lastausgleich wird der Netzwerktraffic effizient auf mehrere Server verteilt, um die Verfügbarkeit von Anwendungen zu optimieren. Er ist für die Ausfallsicherheit von Anwendungen von entscheidender Bedeutung, da die Systeme dadurch ihre Leistung und Verfügbarkeit auch dann aufrechterhalten können, wenn einzelne Komponenten ausfallen oder überlastet werden.
Wenn beispielsweise ein Server nicht mehr reagiert, kann der Load Balancer den Traffic automatisch auf andere fehlerfreie Server umleiten, sodass die Anwendung online bleibt.
Fehlereingrenzung ist eine Designpraxis, die kritische Komponenten innerhalb eines verteilten Systems isoliert und so verhindert, dass sich lokale Probleme zu systemweiten Ausfällen auswachsen.
Dies ist besonders in Microservices-Architekturen wichtig, wo der Ausfall eines Dienstes sich schnell auf viele andere Abhängigkeiten auswirken kann, wenn er nicht richtig eingedämmt wird.
Service-Meshes sind besonders nützlich, um Fehler einzudämmen. Diese Infrastrukturebenen helfen bei der Verwaltung der Kommunikation zwischen Microservices in verteilten Anwendungen und bieten Folgendes:
Zusammen tragen diese Fähigkeiten dazu bei, dass sich Fehler in einem Service nicht auf andere ausbreiten. Nehmen wir zum Beispiel an, dass eine Engine für Produktempfehlungen auf einer E-Commerce-Website ausfällt. Ein Service-Mesh kann diesen Fehler erkennen, verhindern, dass Anfragen den defekten Service erreichen und den Traffic entsprechend umleiten. Die Benutzer können ohne Unterbrechung weiter surfen und shoppen.
Mit Observability können Teams den Systemzustand in Echtzeit überwachen, indem sie drei wichtige Datentypen verwenden: Metriken (Leistungsindikatoren wie Antwortzeiten), Protokolle (Ereignisaufzeichnungen wie Fehler oder Abstürze) und Traces (der komplette Weg einer Anfrage durch ein System).
Durch das Erfassen und Analysieren dieser Signale können Teams Anomalien erkennen, Probleme schnell diagnostizieren und Ausfallzeiten reduzieren. Wenn ein Kunde beispielsweise eine langsam ladende Webseite meldet, können Observability-Tools den Technikern dabei helfen, die Anfrage zu dem Dienst zurückzuverfolgen, der die Verzögerung verursacht hat, und das Problem zu beheben, bevor es weitere Benutzer betrifft.
Die Automatisierung spielt eine entscheidende Rolle bei der Resilienz von Anwendungen, da sie den Systemen eine Reaktion auf Probleme ohne manuelle Eingriffe ermöglicht.
Beispielsweise decken Observability-Tools mögliche Probleme auf, während Redundanz für Backup-Ressourcen sorgt. Die Automatisierung verbindet diese Funktionen und steuert den Wiederherstellungsprozess. Eine effektive Automatisierung kann die Wiederherstellungszeit erheblich verkürzen, indem sie die möglicherweise stundenlange manuelle Fehlersuche in Sekunden automatisierter Reaktion verwandelt.
Zu den wichtigsten automatisierten Reaktionen im Bereich der Anwendungsresilienz gehören:
Tools wie Kubernetes, ein Open-Source-System für die Verwaltung von containerisierten Anwendungen, zeigen, wie die Automatisierung die Komponenten der Resilienz miteinander verbindet. Kubernetes kann Ausfälle durch integrierte Zustandsprüfungen erkennen, Workloads auf funktionierende Knoten verlagern und die Servicekontinuität durch automatisierte Workflows aufrechterhalten.
Graceful Degradation bedeutet, dass die Kernfunktionalität beibehalten wird, während unwichtige Funktionen bei Belastung deaktiviert werden. So kann ein Einzelhändler beispielsweise während der Spitzenbelastung am Black Friday vorübergehend Kundenrezensionen und Wunschlisten deaktivieren, um sicherzustellen, dass der Warenkorb und der Checkout weiterhin funktionieren.
Skalierbare Anwendungen können die Ressourcen automatisch an die Anforderungen der Workload anpassen. Diese Fähigkeit trägt dazu bei, Leistung und Verfügbarkeit auch bei schwankendem Traffic zu gewährleisten.
Skalierbarkeit kann auf viele Arten erreicht werden. Cloudbasierte Plattformen bieten beispielsweise Skalierbarkeit durch Funktionen wie integrierte Load Balancer, automatische Skalierung und multiregionale Replikation, d. h. das Kopieren von Daten und Diensten über mehrere geografische Standorte hinweg zur Verbesserung von Leistung und Zuverlässigkeit. Diese Funktionen ermöglichen es den Diensten, den Datenverkehr intelligent zu verteilen, die Betriebszeit aufrechtzuerhalten und die Wiederherstellungszeit als Reaktion auf veränderte Bedingungen zu minimieren.
Eine in der Cloud gehostete Streaming-Plattform kann beispielsweise typischerweise auf 100 Servern betrieben werden. Bei einem globalen Live-Ereignis kann sie jedoch automatisch auf 10.000 Server in mehreren Regionen skaliert werden, um eine reibungslose Wiedergabe für Millionen von Zuschauern zu gewährleisten.
Da Anwendungen sowohl für den Geschäftsbetrieb als auch für das tägliche Leben der Verbraucher unverzichtbar geworden sind, ist es unerlässlich, dass diese Anwendungen unerwarteten Störungen standhalten und unter fast allen Bedingungen funktionsfähig bleiben.
Vor allem vier Faktoren treiben die wachsende Bedeutung der Anwendungs-Resilienz voran.
Kunden erwarten, dass digitale Services immer funktionieren. Laut Google verlassen 53 % der Besucher eine mobile Seite, wenn das Laden länger als drei Sekunden dauert.
Egal, ob es sich um eine Banking-App, eine E-Commerce-Plattform oder ein Portal für das Gesundheitswesen handelt, Ausfallzeiten können zu Kundenabwanderungen, Rückschlägen in den sozialen Medien und dauerhaftem Markenschaden führen. Die Verfügbarkeit von Anwendungen ist nicht nur eine technische Kennzahl, sondern eine grundlegende Geschäftsanforderung.
Anwendungsausfälle können für Unternehmen jeder Größe kostspielig sein. Betrachten wir ein gängiges Szenario: Eine Einzelhandelsmarke startet eine stark frequentierte Verkaufsaktion, wobei jedoch der Checkout-Service unter der zusätzlichen Nachfrage zusammenbricht. Innerhalb weniger Minuten kommen Tausende von Transaktionen zum Stillstand, die Kunden sind frustriert und das Unternehmen verliert an Umsatz.
Abgesehen von Umsatzeinbußen können Ausfälle eine Kaskade von Folgekosten auslösen, von Ausgaben für die Behebung von Problemen und Verletzungen von Service Level Agreements (SLAs) bis hin zu Bußgeldern, Kundenentschädigungen und langfristigen Imageschäden.
Die jüngsten aufsehenerregenden Vorfälle zeigen, wie schwerwiegend die Auswirkungen sein können:
Moderne Anwendungsarchitekturen haben viele bewegliche Teile: Microservices, Multicloud-Umgebungen, Codebibliotheken und mehr. Diese modularen Komponenten verbessern zwar die Skalierbarkeit, erhöhen aber auch die Anzahl der potenziellen Fehlerpunkte.
Ohne ein stabiles Design und eine stabile Implementierung können selbst kleinere Probleme eskalieren. Ein einziger Ausfall eines Microservice kann sich auf Dutzende von Abhängigkeiten auswirken. Wenn beispielsweise ein Datenbankdienst, der Produktinformationen speichert, nicht mehr funktioniert, kann dies andere Funktionen wie die Suche, Empfehlungen oder den Checkout beeinträchtigen.
Netzwerkunterbrechungen zwischen Cloud-Regionen können zudem Services fragmentieren und Dateninkonsistenzen verursachen. Anders als bei einem Ausfall eines Microservices, bei dem eine Komponente komplett ausfällt, führen diese Konnektivitätsprobleme zu einem „Split-Brain“-Szenario: Verschiedene Teile der Anwendung laufen weiter, können aber nicht miteinander kommunizieren.
So kann beispielsweise das Auftragssystem einer Finanzhandels-App von den Echtzeit-Kursdaten abgekoppelt werden, was dazu führt, dass die Nutzer falsche Kurse sehen oder dass ihre Trades fehlschlagen.
Ausfälle der Programmierschnittstelle (API) können darüber hinaus kritische Funktionen unterbrechen. Während Microservice-Ausfälle interne Komponenten betreffen, die das Unternehmen kontrolliert, betreffen API-Ausfälle Dienste von Drittanbietern, von denen eine Anwendung abhängt, die aber nicht direkt repariert werden können. Wenn z. B. der Kartendienst einer Liefer-App ausfällt, können die Benutzer ihre Fahrer nicht verfolgen und die Fahrer können ihre Routen nicht finden. In diesem Fall wird das Erlebnis unterbrochen, auch wenn die Kernanwendung nach wie vor läuft.
In bestimmten Branchen und an bestimmten Standorten haben die Aufsichtsbehörden strenge Anforderungen an die Datenverfügbarkeit, die Wiederherstellungsmöglichkeiten von Anwendungen, die Begrenzung von Datenverlusten und die Betriebszeit gestellt. Diese Anforderungen machen die Ausfallsicherheit von Anwendungen von einem technischen Ziel zu einer Frage der Compliance.
Einige Gesetze zum Datenschutz und zum Schutz der Privatsphäre enthalten jetzt neben den Sicherheitsanforderungen auch Verfügbarkeitsstandards. So verlangt beispielsweise die Datenschutz-Grundverordnung (DSGVO), dass personenbezogene Daten sowohl geschützt als auch zugänglich bleiben. Im Falle eines Systemausfalls wird von den Unternehmen erwartet, dass sie verlorene Daten wiederherstellen.
Insbesondere stark regulierte Branchen unterliegen einigen der strengsten Standards.
Obwohl der Sarbanes-Oxley Act (SOX) keine expliziten Pläne für die Notfallwiederherstellung vorschreibt, unterhalten viele Unternehmen Backup-Systeme und formelle Wiederherstellungsprozeduren, um die Einhaltung des Gesetzes zu gewährleisten und nachzuweisen.
Finanzinstitute müssen sich auch mit branchenspezifischen Vorschriften und Empfehlungen von Gremien wie dem Federal Financial Institutions Examination Council (FFIEC) auseinandersetzen, das detaillierte Leitlinien für die Planung der Geschäftskontinuität und die Wiederherstellungszeitziele bereitstellt.
Gemäß dem Health Insurance Portability and Accountability ACT (HIPAA) müssen die betroffenen Einrichtungen administrative, physische und technische Sicherheitsvorkehrungen treffen, um die Verfügbarkeit und Integrität elektronischer geschützter Gesundheitsinformationen (ePHI) zu gewährleisten. Der HIPAA schreibt zwar keinen Zugang rund um die Uhr vor, verlangt aber, dass Gesundheitseinrichtungen den Zugang zu den Patientendaten aufrechterhalten, wenn dies für die Behandlung erforderlich ist.
Die HIPAA-Sicherheitsregel schreibt Daten-Backup-Pläne, Notfallwiederherstellungsverfahren und den Betrieb im Notfallmodus vor, was viele Unternehmen dazu veranlasst, in fortschrittliche Failover- und Data-Replication-Strategien zu investieren.
Um sicherzustellen, dass Systeme realen Störungen standhalten können, validieren Unternehmen die Anwendungsresilienz durch eine Kombination aus laufenden Messungen und proaktiven Tests. Mit diesen Ansätzen können Teams die Leistung überwachen, Schwachstellen identifizieren und bestätigen, ob sich Anwendungen schnell und effektiv erholen können.
Insbesondere DevOps-Teams integrieren häufig Resilienzverfahren in Pipelines für die kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD-Pipelines). Auf diese Weise können sie das Testen von Failover-Verfahren automatisieren, Konfigurationsänderungen validieren und instabile Bereitstellungen zurücksetzen, um Probleme frühzeitig zu erkennen und zu verhindern, dass die Benutzer von Störungen betroffen sind.
Unternehmen verlassen sich bei der Bewertung der Anwendungsresilienz auf mehrere Schlüsselmetriken.
RTO ist die maximal zulässige Ausfallzeit, bevor ein System wiederhergestellt werden muss. RTO hilft bei der Definition von Wiederherstellungserwartungen und unterstützt die Planung von Notfallwiederherstellung und Geschäftskontinuität.
Unternehmen legen RTOs auf der Grundlage einer Business-Impact-Analyse fest: Sie bestimmen, wie lange jedes System ausfallen kann, bevor es unannehmbare Schäden für den Betrieb, den Umsatz oder die Customer Experience verursacht.
Zum Beispiel kann ein Zahlungsabwicklungssystem eine RTO von fünf Minuten haben, während ein internes Berichtstool 24 Stunden tolerieren kann.
Die MTTR gibt an, wie lange es dauert, den Service nach einem Ausfall wiederherzustellen. Unternehmen messen die MTTR, indem sie Tools für das Störungsmanagement und Überwachungsplattformen einsetzen, die automatisch die Zeit zwischen der Erkennung eines Ausfalls und der Wiederherstellung des Dienstes verfolgen. Eine niedrigere MTTR bedeutet eine schnellere Wiederherstellung und eine bessere Benutzererfahrung.
Die MTBF ist die durchschnittliche Betriebszeit zwischen Systemausfällen. Sie gibt Aufschluss darüber, wie häufig Störungen auftreten und wird durch Division der Gesamtbetriebsstunden durch die Anzahl der Ausfälle berechnet. Diese werden in der Regel durch automatische Überwachungssysteme und Ereignisprotokolle erfasst.
Fehlerbudgets beziehen sich auf das akzeptable Maß an Ausfallzeiten innerhalb der Service-Level-Ziele. Mit Fehlerbudgets können Teams kalkulierte Risiken eingehen. Wenn ein Service nur 20 % seines monatlichen Fehlerbudgets verbraucht hat, können die Teams neue Funktionen aggressiver einsetzen. Ist das Budget fast ausgeschöpft, können sie sich stattdessen auf Stabilitätsverbesserungen konzentrieren.
Resilienz-Scorecards sind umfassende Berichte, die Redundanz-, Latenz- und Wiederherstellungsdaten zur Bewertung der Anwendungsresilienz und Ermittlung von Verbesserungsmöglichkeiten verwenden. Diese Scorecards werden in der Regel von Observability-Plattformen erstellt, die Metriken aus mehreren Überwachungs-Tools zusammenfassen.
Unternehmen setzen zunehmend auf Tests, um einen realistischeren Blick auf die Welt zu erhalten. Während Metriken eine Grundlage bieten, können Tests Unternehmen dabei helfen, von der theoretischen Bereitschaft zu einer nachgewiesenen Resilienz zu gelangen.
Beim Chaos-Engineering werden kontrollierte Ausfälle (wie das Herunterfahren von Servern, das Einfügen von Latenzzeiten oder das Erzwingen von Verbindungsverlusten) eingesetzt, um zu testen, wie Anwendungen unter Stress wiederhergestellt werden.
Tools wie Chaos Monkey von Netflix beenden beispielsweise Anwendungen nach dem Zufallsprinzip, um zu testen, ob Dienste unerwarteten Ausfällen standhalten können.
Katastrophensimulationen sind vollumfängliche Szenarien, die größere Ausfälle oder Angriffe imitieren, um so die technische Wiederherstellung, die Kommunikation und die Koordination zwischen den Teams zu bewerten.
Simulationen (wie z. B. Ransomware-Angriffe und Ausfälle von Cloud-Regionen) helfen Unternehmen, die Anwendungsarchitektur unter Stress zu testen und Lücken in Notfallwiederherstellungsplänen zu identifizieren.
Künstliche Intelligenz (KI) und maschinelles Lernen (ML) verändern den Umgang von Unternehmen mit der Resilienz. Diese Technologien bieten leistungsstarke neue Werkzeuge zur Vermeidung von Ausfallzeiten, bringen aber auch einzigartige Herausforderungen mit sich.
Eine der größten Herausforderungen ist, dass KI-Workloads sehr ressourcenintensiv sind. Viele Modelle sind auf Grafikprozessoren (GPUs) angewiesen, die sowohl kostspielig als auch schwierig in verschiedenen Cloud-Regionen zu duplizieren sind. Das macht Redundanz, ein wesentlicher Bestandteil der Resilienz, schwieriger zu erreichen.
KI-Systeme können auch auf unerwartete Weise versagen. Mit der Zeit kann ihre Genauigkeit nachlassen, ein Problem, das als Modelldrift bekannt ist. Oder sie stoßen auf unerwünschte Eingaben – böswillige Daten, die darauf abzielen, das System auszutricksen. Diese Arten von Fehlern sind schwieriger vorherzusagen und einzudämmen.
Wenn die KI-Funktionen langsamer werden oder nicht mehr funktionieren, was in Cloud-Umgebungen aufgrund von Ressourcenbeschränkungen oder Latenz oft der Fall ist, muss der Rest der Anwendung weiterhin zuverlässig funktionieren. Und das wiederum erhöht den Druck auf die Graceful-Degradation-Strategien.
Gleichzeitig bietet KI wichtige Anwendungsfälle zur Verbesserung der Resilienz:
Kurz gesagt: KI führt zwar zu einer neuen Komplexität, kann aber auch eine schnellere Wiederherstellung, eine intelligentere Überwachung und insgesamt resilientere Anwendungen ermöglichen, insbesondere wenn sie in cloudnativ Umgebungen und DevOps integriert wird.
Optimieren Sie die Anwendungsverwaltung und erhalten Sie KI-generierte Erkenntnisse, auf die Sie reagieren können, indem Sie IBM Concert verwenden, eine generative KI-gestützte Technologieautomatisierungsplattform.
Verbinden Sie die Full Stack Observability mit dem automatisierten Application Resource Management, um Leistungsprobleme zu beheben, bevor sie sich auf die Customer Experience auswirken.
Entdecken Sie hochinnovative Services von IBM Consulting für die Verwaltung komplexer Hybrid- und Multicloud-Umgebungen.