Wie die Erreichbarkeit der eigenen Dienste sichergestellt bleibt Moderne Anwendungen auf dem Prüfstand

Von Joe Dougherty *

Anbieter zum Thema

Anwendungen basieren immer häufiger auf einem komplexer werdenden Geflecht aus APIs, Cloud-Services und Internet-Netzwerken. Dabei ist es entscheidend, dass die Erreichbarkeit jederzeit sichergestellt ist.

Vor allem bei API-basierten Anwendungen ist es schwierig zu sehen, was unter der Oberfläche liegt.
Vor allem bei API-basierten Anwendungen ist es schwierig zu sehen, was unter der Oberfläche liegt.
(Bild: mlenny / Unsplash)

Ein Vergleich von modernen Anwendungen mit Eisbergen trifft den Nagel auf den Kopf: Lediglich ein winziger Teil des Gesamten, also die Spitze des Eisberges, ist für den Nutzer sichtbar. Hier findet für gewöhnlich die gesamte Kommunikation mit dem Nutzer statt – ganz gleich, ob es um die Eingabe, Interaktion oder das Feedback vonseiten der App geht.

Der Rest – ein wesentlich größerer Teil der Applikation – bleibt dem Nutzer währenddessen verborgen. Nutzer wissen allerdings, dass die App neben der sichtbaren Spitze noch aus weiteren Bestandteilen besteht und ziehen daraus auch eigene Schlüsse über die Anwendung. Stimmt das Gesamtpaket von Nutzererfahrung und der dazugehörige Ruf der Applikation, sind diese Schlüsse wünschenswerterweise positiv.

Besonders deutlich wird die tatsächliche Bandbreite der zugrundeliegenden Anwendungen, wenn man sich banale Vorgänge, wie etwa das Ablegen eines Artikels in einen Warenkorb, vor Augen führt. Was für den Anwender nur von peripherer Bedeutung ist, erfordert üblicherweise unzählige Aktionen, die REST-basierende API-Dienste verwenden und verschiedene Plattformen in Anspruch nehmen.

Zumeist sind die Services und Plattformen über das Internet verteilt. Darunter fallen dann Nachrichtendienste wie beispielsweise Twilio für die Cloud-Kommunikation, eine E-Commerce-Website, die Stripe nutzt, oder Lieferdienste, die mit Google Maps zur Geolokalisierung arbeiten.

Damit schlussendlich all diese Dienste reibungslos miteinander arbeiten können und der Kunde ein optimales digitales Erlebnis erfährt, muss die Gesamtleistung der Anwendungen optimiert werden. Dies geschieht über ein verbessertes Verständnis der Arbeitsweise und Funktion von APIs und die Optimierung ihrer Erreichbarkeit über Internet- und Cloud-Provider-Netzwerke.

Transparenz und Visibilität sind der Schlüssel zur Problemlösung

Probleme bei Online-Dienstleistern jedweder Art sind zunächst einmal ein ärgerlicher Umstand, der jederzeit auftreten kann. Durch Ausfälle haben Kunden keine Möglichkeit mehr auf die gewünschten Dienste zuzugreifen und Unternehmen droht im Fall einer längeren Problembehebung ein erheblicher Vertrauensverlust.

Insbesondere dann, wenn Probleme auftreten, die zu einem lückenhaften Workflow führen, muss schnell geklärt werden, wie die volle Funktionalität wieder erreicht werden kann. Dabei ist aufgrund der Komplexität moderner Systeme nicht immer problemlos nachvollziehbar, wo genau die Ursache für den Ausfall liegt.

Ein erster Schritt wäre es, vorsorglich auf herkömmliche Netzwerk- und Monitoring-Dienste für Anwendungen zurückzugreifen. Da diese allerdings nicht die nötige Transparenz und Flexibilität zur gezielten Problemfindung und -lösung bieten, ist ihr Einsatzrahmen begrenzt. So funktionieren beispielsweise Packet Capture und Flow Analyzer nicht außerhalb der eigenen digitalen Umgebung.

Eine restlose Aufklärung der möglichen Ursachen für Ausfälle kann also nicht erfolgen. In der Folge erkennen Dienstleister zwar einerseits, dass ein Problem vorliegt und der eigene Dienst nicht erreichbar ist, andererseits dieses Problem nicht durch Störungen innerhalb der eigenen Infrastruktur verursacht wird.

Bis zu diesem Zeitpunkt ist hinsichtlich der Behebung noch kein Fortschritt erzielt worden. Werden nun im nächsten Schritt Dritte zur Problemlösung hinzugezogen, rücken erforderliche Gegenmaßnahmen oftmals zusätzlich in die Ferne. In diesem Fall sollten Ansprechpartner zunächst informiert und über die Sachlage ins Bild gesetzt werden.

Oft muss außerdem zusätzliche Überzeugungsarbeit geleistet werden, damit klar erkannt wird, dass das Problem auch bei der entsprechenden Quelle zu suchen ist und nicht innerhalb der Infrastruktur des Dienstleisters verursacht wurde. Nachweise, die dazu erbracht werden müssen, erfordern zusätzliche Zeit und Ressourcen. Während dieser aufwendigen Schritte führt jede Minute, die der eigene Dienst nicht erreichbar ist, zu Reputationsverlusten und Einnahmeausfällen.

Eine weitere Herausforderung stellt die Konsistenz der Bereitstellungspfade dar. In der Cloud ist ein stabiler Zustand nie vorhanden. Wenn man beispielsweise von einer Drittanbieter-API mit Sitz in Irland abhängig ist, gibt es keine Garantie dafür, dass diese auch morgen noch dort ansässig sein wird. Rechenzentren werden beliebig etabliert, verlagert oder verschwinden ganz. All dies kann sich direkt auf die Funktionalität der Anwendung auswirken. Dies bedeutet, dass ständig mehr und bessere Tools benötigt werden, um auftretende Probleme zeitnah und effizient zu lösen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Browser-Synthetics bieten über den gesamten Verlauf von Anwendungs-Workflows ein entscheidendes Werkzeug zum Testen von Applikationen und zur Bewertung der Benutzererfahrung. Allerdings gibt es Fälle, in denen bereits eine einzige Browser-Anfrage mehrere Backend-API-Interaktionen auslöst, die aus der Perspektive des Benutzers nicht direkt nachvollziehbar sind.

Beispielhaft hierfür kann das Ausfüllen eines Bestellformulars auf einer E-Commerce-Website sein. Dabei werden durch die Anwendung eine Reihe unterschiedlicher API-Aufrufe durchgeführt. Bevor der Nutzer letztendlich seine Bestellbestätigung erhält, werden im Hintergrund Bestandsprüfungen, Zahlungsverarbeitungen und Organisationsarbeiten, wie das Erstellen einer Bestellnummer, durchgeführt. Für den Kunden sind diese Backend-Dienste nicht sichtbar. Etwaige Fehler oder Probleme hinsichtlich der Leistung selbst bleiben dadurch unentdeckt, haben zugleich aber direkte Auswirkungen auf die Dienstleistung und somit die Kundenzufriedenheit.

Für Betreiber von Anwendungen ist hier der Product-Owner-Testansatz am sinnvollsten. Dadurch werden nicht nur die Front-End-Interaktionen begutachtet, auch die Kernanwendungen werden in die Testaktivitäten mit einbezogen. In der Folge lassen sich auch die Datenbewegungen des Netzwerktransportes bis hin zu Service- und Cloud-Providern nachvollziehen und auf diese Weise Probleme zielgerichtet erkennen. Ein noch umfassenderer Lösungsansatz ist die adaptive API-Überwachung.

Adaptive API-Überwachung bereitet den Weg in die Zukunft

Im Vergleich zum Product-Owner-Testansatz geht die adaptive API-Überwachung noch tiefgreifender auf die Bedürfnisse der Betreiber von Applikationen ein. Um Abhängigkeiten zu vermeiden, werden sequenzielle, bedingte bzw. iterative API-Aufrufe ausgeführt. Damit bietet diese Art des Monitorings ein hochflexibles synthetisches Test-Framework, das die Interaktionen von Backend-Anwendungen mit Remote-API-Endpunkten emuliert.

API-Monitoring-Tests sind dabei standortunabhängig: Sie können sowohl dezentral von externen Ressourcen gesteuert werden, oder aber über Verknüpfungen, die sich innerhalb der Hosting-Umgebung befinden. Ein Vorteil des letztgenannten Ansatzes ist, dass dadurch auch die spezifischen Netzwerkpfade und die Leistung zwischen Anwendung zu den API-Endpunkten überwacht werden können.

Durch die starke Konzentration auf Web-Applikationen und die zunehmende Komplexität interdependenter APIs im Online-Umfeld sind leistungsstarke Monitoring-Optionen ein absolutes Muss für alle Entscheider und Verantwortliche. Product-Owner müssen in der Lage sein, die Leistung der eigenen Dienste dynamisch zu erfassen. Dazu gehört auch, dass die Interaktion zwischen einzelnen Funktionen stets im Blick behalten werden muss, um Ausfällen möglichst zuvorzukommen.

Ebenso muss die Logik komplexer Workflows jederzeit validiert werden können, um im Problemfall zweifelsfrei die Ursache feststellen zu können. Denn letztlich kann nur durch die weitgehende Prozessvisualisierung und die damit einhergehenden Einblicke die verborgene Seite des Eisbergs sichergestellt werden, sodass die Nutzer und Kunden jederzeit ein einwandfreies digitales Erlebnis erfahren und der Anwendung schlussendlich treu bleiben.

* Joe Dougherty ist Product Manager bei ThousandEyes.

(ID:47380604)