Die Anwendungsverfügbarkeit ist die Zeit, die eine Anwendung einsatzbereit ist.
Nach Lektüre dieses Artikels können Sie Folgendes:
Link zum Artikel kopieren
Die Anwendungsverfügbarkeit misst die Zeit, die eine Anwendung einsatzbereit ist. Eine Anwendung ist verfügbar, wenn sie wie erwartet funktioniert und die Anfragen der Benutzer erfüllt; eine Anwendung ist nicht verfügbar, wenn sie nicht funktioniert oder für Endnutzer nicht erreichbar ist.
Für Webanwendungen ist die Maximierung der Verfügbarkeit ein wichtiger Bestandteil der Entwicklung. Die Verfügbarkeit von Anwendungen kann durch eine Kombination aus Optimierung der Backend-Infrastruktur, Frontend-Optimierung und Angriffsabwehr verbessert werden.
Nutzende haben hohe Erwartungen an die Verfügbarkeit von Webanwendungen. Ausfallzeiten können sich sowohl auf den Umsatz als auch auf den Ruf stark auswirken. Denken Sie an die Öffnungszeiten eines Ladengeschäfts: Wenn ein Geschäft zu unerwarteten Zeiten geschlossen ist, gehen die Kunden woanders hin. Ebenso werden Nutzende, die von einer Softwareanwendung nicht den benötigten Service erhalten können, diese Anwendung nicht mehr nutzen, was zu weniger Kunden und Umsatzeinbußen führt.
Bei Business-to-Business (B2B)-Anwendungen ist die Verfügbarkeit in der Regel Teil eines Service-Level-Agreements (SLA). Dieses wird als Prozentsatz der Zeit ausgedrückt, für die die Anwendung voraussichtlich einsatzbereit ist. Anwendungsentwickler sind in solchen Fällen vertraglich verpflichtet, ihren Kunden eine bestimmte Verfügbarkeit zu bieten.
„Verfügbarkeit“ ist ein Konzept, das für Systeme und Dienste aller Art gilt, von Servern über Apps bis hin zu APIs. Sie wird als Prozentsatz gemessen: Eine Anwendung, die jede Stunde für 36 Sekunden ausfällt, hat 99 % Verfügbarkeit.
Zuverlässigkeit bezieht sich auf die Fähigkeit eines Systems oder einer Anwendung, Dienste über einen bestimmten Zeitraum erwartungsgemäß fehlerfrei zu erbringen. Eine Anwendung kann verfügbar und trotzdem unzuverlässig sein, wenn sie langsam ist oder unerwartete, falsche Ergebnisse liefert. Um auf die vorherige Analogie zurückzukommen: Ein nicht verfügbares Geschäft wird geschlossen; ein unzuverlässiges Geschäft ist geöffnet, aber in den Regalen könnten Artikel an den falschen Stellen stehen.
Die Messung der Anwendungsverfügbarkeit wird oft über den Verlauf eines Kalenderjahrs berechnet. Diese Tabelle zeigt, wie viele Ausfallzeiten eine Anwendung mit verschiedenen Verfügbarkeitsstufen innerhalb eines Zeitraums von 365 Tagen hat. (Ausfallzeiten sind kumulativ und können über mehrere verschiedene Zeiträume hinweg oder alle gleichzeitig auftreten.)
Verfügbarkeit | Ausfallzeiten pro Jahr insgesamt |
---|---|
95 % | 18 Tage und 6 Stunden |
99 % | 3 Tage, 15 Stunden und 36 Minuten |
99,9 % | 8 Stunden, 45 Minuten und 36 Sekunden |
99,99 % | 52 Minuten und 34 Sekunden |
99,999 % („fünf Neunen“) | 5 Minuten und 15 Sekunden |
Von Verfügbarkeit spricht man, wenn eine Anwendung wie erwartet läuft. Ein Ausfallzeit liegt vor, wenn ein Gerät oder ein Dienst nicht funktionsfähig ist. In vielen Zusammenhängen sind Betriebszeit und Verfügbarkeit synonym.
Das Internet ist komplex und viele verschiedene Faktoren können sich auf die Verfügbarkeit und Performance einer Webanwendung auswirken. Einige dieser Faktoren liegen in der Kontrolle der Anwendungsentwickler, andere nicht. Es gibt jedoch mehrere Schritte, die Entwickler unternehmen können, um die Faktoren, die die Verfügbarkeit beeinträchtigen, zu berücksichtigen und abzuschwächen.
Hochverfügbarkeit ist ein Elite-Level beständiger Verfügbarkeit, die mit Backups und durch die Vermeidung von Single Points of Failure erreicht wird. In einer Architektur mit Hochverfügbarkeit führt der Ausfall eines einzelnen Servers, Gateways oder Dienstes nicht zur Nichtverfügbarkeit. Eine hochverfügbare Architektur muss auch Cyberangriffe verhindern.
Load Balancing verteilt Rechenlasten und Netzwerk-Traffic gleichmäßig auf Gruppen von Servern. Dadurch wird sichergestellt, dass kein einzelner Server oder eine Gruppe von Servern mit mehr Traffic überlastet wird, als er effizient bewältigen kann.
Es gibt eine Vielzahl von Load-Balancing-Algorithmen: Einige Load Balancer verteilen die Arbeitslasten gleichmäßig, während andere dynamische Algorithmen verwenden, um auf Netzwerkbedingungen und Serverstatus in Echtzeit zu reagieren.
Webserver fallen zwangsläufig von Zeit zu Zeit aus. Eine Integritätsprüfung ist ein Dienst, der überwacht, ob ein Ursprungsserver online ist oder nicht. Statusprüfungen ermöglichen es Load Balancern, auf den Serverstatus zu reagieren, sodass Anfragen nicht an einen Server weitergeleitet werden, der offline gegangen ist.
Hochverfügbare Anwendungen bauen Redundanz in ihre Architektur ein. Solche Anwendungen können im Falle eines Ransomware-Angriffs oder wenn eine Datenbank aus einem anderen Grund nicht verfügbar ist, auf eine Sicherungskopie der Anwendungsdaten zurückgreifen. Redundante Dienste und Serverpools stellen sicher, dass der Ausfall eines Servers oder der API die Funktionalität der Anwendung nicht beeinträchtigt.
Statische Elemente einer Webanwendung können von einem Content Delivery Network (CDN) bereitgestellt werden, selbst wenn die zugrunde liegende Infrastruktur ausgefallen ist. Eine zwischengespeicherte Version einer Webanwendung verfügt zwar nicht unbedingt über die volle Funktionalität, kann aber technisch verfügbar bleiben, bis der vollständige Dienst wiederhergestellt ist. (Erfahren Sie mehr über den Cloudflare Always-Online-Dienst.)
Das Domain Name System (DNS) ermöglicht es Nutzenden, Anwendungsserver über ein Netzwerk zu erreichen. Wenn das DNS ausfällt oder nicht mehr in der Lage ist, die richtige IP-Adresse zu finden, können Nutzende die Anwendung nicht laden. Durch den Einsatz eines zuverlässigen DNS-Providers mit globaler Reichweite und der Fähigkeit, DNS-fokussierte DDoS-Angriffe zu stoppen, wird sichergestellt, dass das DNS die Verfügbarkeit nicht beeinträchtigt.
Der Einsatz eines externen Tools zur Überwachung der Anwendungsverfügbarkeit kann Dienstanbietern helfen, die Verfügbarkeit zu verfolgen und so schnell wie möglich zu reagieren, wenn ihre Anwendungen ausfallen.
Kontinuierliche Verfügbarkeit ist ein Ansatz zur Entwicklung von Computerinfrastrukturen, der sicherstellt, dass eine Anwendung oder ein System kontinuierlich einsatzbereit ist. Das Ziel der kontinuierlichen Verfügbarkeit ist 100%ige Verfügbarkeit, was praktisch nicht möglich ist. Das Internet wurde entwickelt, um einem Atomkrieg standzuhalten, aber der Internetdienst fällt für die Nutzenden manchmal immer noch aus. Nichtsdestotrotz ist die kontinuierliche Verfügbarkeit ein lohnendes Ziel, um den Nutzenden den bestmöglichen Service zu bieten.
Je verfügbarer eine Anwendung ist, desto mehr Ressourcen müssen für ihren Support aufgewendet werden. Mit anderen Worten: 99,999 % Verfügbarkeit können teuer sein. Entwickler und Entwicklerinnen müssen entscheiden, wie viele Ausfallzeiten sie oder ihre Kunden tolerieren, und entsprechend entwickeln.
Glücklicherweise macht Cloudflare für Anwendungsentwickler eine viel einfachere Architektur mit hoher Verfügbarkeit. Cloudflare umfasst Lastverteilung, Zwischenspeicherung, Stream Delivery, Abwehr von DDoS-Angriffen und Bot-Management, das nativ in den Service integriert ist. Cloudflare bietet sogar eine Entwicklerplattform an, die es Entwicklern ermöglicht, neue Funktionen oder völlig neue Anwendungen zu entwickeln, die über ein globales Netzwerk mit einer Präsenz in 335 Städten auf der ganzen Welt laufen.
Erfahren Sie, wie Cloudflare-Anwendungen verfügbar halten kann.