DevOps-Strategien

Lasttests und Performance-Monitoring in der App-Entwicklung

| Autor / Redakteur: Dipl.-Ing. Gregor Mayer * / Florian Karlstetter

Wie erleben Nutzer aus Asien oder Südamerika das mobile Serviceangebot? Antwort darauf gibt die Cloud, indem App-Zugriffe aus allen relevanten Regionen erzeugt werden können.
Wie erleben Nutzer aus Asien oder Südamerika das mobile Serviceangebot? Antwort darauf gibt die Cloud, indem App-Zugriffe aus allen relevanten Regionen erzeugt werden können. (Bild: Neotys)

E-Commerce- und IT-Verantwortliche sind in der App-Entwicklung mit zwei konträren Forderungen konfrontiert: Schneller fertig sein, aber mehr Qualität liefern. Das ist entscheidend, denn Mobile Anwendungen tragen inzwischen komplette Geschäfts- und Servicemodelle ebenso wie die Wachstumshoffnungen im Handel.

Apps sind zu wichtig, um zu scheitern. Aber das kann leicht passieren, wenn schleppende Reaktionszeiten Webshop-Umsätze und den Erfolg mobiler Kampagnen beeinträchtigen: Viele Nutzer gedulden sich nicht einmal zwei Sekunden – und nach 3 Sekunden Ladezeit brechen bereits zwei von drei Kunden den Einkauf ab.

Eine makellose Performance ist Pflicht. Sie zu erfüllen, ist nicht einfach – denn permanente Updates erhöhen die Schlagzahl bei Innovation und Wettbewerb. Business-Entscheider und IT-Spezialisten sitzen heute in einem Boot und müssen Hand in Hand arbeiten. Es gilt, das alte Bereichs- oder Silodenken aufzugeben:

Denn für die neuen Tempo- und Qualitätsanforderungen ist die Praxis einer bestenfalls indirekten Abstimmung zwischen den Abteilungen zu langsam und fehleranfällig. Erfolg versprechen DevOps-Strategien mit einer kontinuierlichen Abstimmung zwischen Betriebsverantwortlichen und Entwicklern. IT-Spezialisten sollen die Ziele der Manager – und Manager umgekehrt die Problemstellungen der IT verstehen.

Dieses Umdenken ist nur der Anfang: Echten Nutzen ziehen Unternehmen daraus erst, wenn die abteilungsübergreifende Offenheit organisatorisch und auch technologisch unterfüttert wird. Erforderlich sind dazu Test- und Monitoring-Instrumente, die auch für Manager ohne IT-Hintergrund verständliche Resultate liefern.

Unternehmen können mit einer DevOps-Kultur das Time-to-Market von App-basierten Angeboten verkürzen und Wettbewerbsvorteile erzielen. Damit das gelingt, benötigen Unternehmen ein Performance- und Qualitätsmanagement, das sich an drei Leitlinien orientiert:

  • 1. Durchlässigkeit der Testverfahren über Fachbereichsgrenzen hinweg
  • 2. Abdeckung von realitätsnaher Business-Szenarien
  • 3. Durchgängigkeit der Testverfahren im gesamten App-Lifecycle

Durchlässigkeit der Testverfahren über Fachbereichsgrenzen hinweg

Basisanforderung für ein abteilungsübergreifendes Qualitätsmanagement sind webbasierte Kollaborationsplattformen, auf denen Prüftools, Testeinstellungen und -resultate für alle Beteiligten bereit stehen. Aber bei DevOps geht es um mehr: Teammitglieder, die sich in Ausbildung, Verantwortung und Fokus unterscheiden, sollen produktiv zusammenarbeiten. Während das Management das Wichtigste auf einen Blick sehen will, benötigen IT-Spezialisten einen detaillierten Einblick in Messwerte, Fehler- und Warnmeldungen.

Die Test- und Monitoring-Plattform sollte daher die Tiefe der Analysen staffeln. Kurven und Diagramme erfüllen die Anforderung von Business-Entscheidern, den Leistungsstatus der App zu kontrollieren und nötigenfalls gleich Optimierungs-Maßnahmen auf den Weg zu bringen. Vollständige Zahlen- und Datensammlungen sind dagegen für IT-Spezialisten relevant, um Testergebnisse zu erläutern, Performance-Engpässe zu lokalisieren und Lösungsstrategien zu entwickeln. Eine abgestufte Analyse zeigt allen Beteiligten dasselbe Bild, aber jeweils aus der für sie relevanten Perspektive.

IT-Experten und Geschäftsleitung gewinnen so eine gemeinsame Basis für die Qualitätssicherung. Dazu tragen auch grafische Nutzeroberflächen bei. Sie machen es einfacher, Testszenarien aus betriebswirtschaftlicher Sicht zusammenzustellen: Stehen Testelemente wie virtuelle Benutzer und Transaktionen („In den Warenkorb legen“) als Module zur Verfügung, kann z.B. der Sales-Leiter wichtige Testläufe zur KPI-Prüfung zusammenstellen und mit den IT-Experten abstimmen.

Die Praxis vieler Testprofis, selbst Skripte zu erstellen, erschwert dagegen fachübergreifende Abstimmungen erheblich. Dieses Verfahren ist zu langsam und unverständlich z.B. für einen Marketingdirektor, der sich vor dem Produktlaunch vergewissern möchte, dass Zugriffsspitzen nicht den Absturz der Homepage und damit ein Scheitern der Kampagne herbeiführen.

Performance-Monitoring für realitätsnahe Business-Szenarien

Je stärker sich das Management an der Sicherstellung der App-Qualität beteiligt, desto mehr rücken betriebswirtschaftliche Kriterien in den Mittelpunkt. Wurden User Stories bislang vor allem aus funktionaler Perspektive geschrieben, z. B: „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ anschauen“, treten jetzt messbare Performance-Indikatoren in den Vordergrund:

  • „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ in weniger als einer Sekunde anschauen, während 1.000 andere Benutzer parallel dasselbe tun.“
  • In einem guten Test-Tool können User Stories beliebig vertieft werden und z.B. regionale oder technologische Nutzerverteilungen einbeziehen:
  • „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ (mit UMTS, LTE oder WLAN) in weniger als einer Sekunde anschauen. Auch dann, wenn 1.000 andere Benutzer (davon 500 aus den USA, 500 aus Europa; 300 mit iOS, 600 mit Android, 100 mit Windows) parallel dasselbe tun.“

KPIs und SLAs wie maximale Antwortzeiten, Paketverluste oder Fehlerraten sind integraler Bestandteil der „Definition of Done“ (DoD)-Agenda: Eine App-Modifikation gilt erst dann als „erledigt“, sobald die Umsetzung der Geschäftsvorgaben nachgewiesen ist. Tools für das Performance-Monitoring sollten daher eine möglichst detaillierte Abarbeitung der DoD-Kriterien unterstützen. Zu denken ist hierbei an Technologien zur:

  • Simulation der Endgeräte: Die Vielzahl mobiler Betriebssysteme und Browserversionen hat Rückwirkungen auf die App-Performance. Denn je nach anfragendem Browser werden unterschiedliche Datenvolumina ausgeliefert, was die Ladezeiten für jedes Endgerät und die Server-Gesamtlast beeinflusst. Test- und Monitoring-Tools sollten daher in der Lage sein, einen wirklichkeitsnahen Browser-Mix zu simulieren. Im Idealfall lassen sich Testpopulation mit typischen Plattform-Präferenzen (iOS mit Safari, Android mit Firefox oder Chrome etc.) zusammenstellen, um zu ermitteln, ob das Nutzererlebnis mit jedem Endgerät in den geforderten „Komforttoleranzen“ bleibt.
  • Emulation der Bandbreiten: Um die App-Performance realistisch einzuschätzen, sollte das Monitoring nicht ausschließlich unter idealen LTE-Umgebungen erfolgen. Empfehlenswert ist eine Bandbreitenemulation, die virtuellen Nutzern jeweils Datentransferraten, Latenzzeiten und Paketverluste zuordnet. Da reale Anwender je nach Provider, Vertrag oder Region mit unterschiedlicher Geschwindigkeit auf Apps zugreifen, sollte die Bandbreitenemulation ebenfalls individuell erfolgen. Auf diese Weise lassen sich authentische Testpopulationen erzeugen, sodass ein differenziertes Bild der Nutzerzufriedenheit entsteht.
  • Einsatz der Cloud: Mit ihren weltweit verteilten Lastgeneratoren erzeugt die Cloud Server-Anfragen in den Regionen, aus denen die Nutzer tatsächlich auf ihre App zugreifen. Das ist z.B. relevant für Webshops, die tagsüber meistenteils Kunden aus Europa und abends aus den USA begrüßen. Mit der Cloud lässt sich dieses Szenario simulieren, wobei Tester auch landesspezifische Plattformpräferenzen und Bandbreiten-Limits berücksichtigen können. Im Ergebnis lässt sich die App-Performance authentisch aus der Nutzerperspektive bewerten, da die Server-Client-Kommunikation komplett abgedeckt ist. Firewall, Router, Internet, Mobilfunknetze, Load Balancer können ebenso in die Messungen einbezogen werden wie Ad-Server und weitere Drittanbieter-Infrastrukturen. Ein weiterer Cloud-Vorteil ist die fast unbegrenzte Skalierbarkeit, um Traffic-Spitzen zu erzeugen und z.B. einen aufwändig beworbenen Verkaufsstart abzusichern.

Durchgängigkeit der Testverfahren im gesamten Software-Lifecycle

Je früher eine Schwachstelle in der App entdeckt wird, desto kostengünstiger ist die Beseitigung. Die Qualitätssicherung gemäß den Management-KPIs sollte daher von Anfang an erfolgen. Hilfreich ist hierbei ist die Wiederverwendung grundlegender Testparameter und Skripte (z.B. An- und Abmeldevorgänge) von den frühen Komponententests bis zur abschließenden Systemprüfung. Werden Testparameter über den gesamten App-Lifecycle beibehalten, kann das tatsächliche Nutzererlebnis mit den Testwerten im Labor vergleichen werden. Sollten Zielvorgaben (z.B. Dauer der An- und Abmeldevorgänge) im Produktivbetrieb verfehlt werden, lässt sich der Fehler in die Entwicklungsschritte hinein zurückverfolgen und anhand der kontinuierlich gesammelten Messdaten schnell lokalisieren. Für die Prüfroutinen empfehlen sich zwei Verfahren:

  • Schnell-Tests: Lasttests sollten an den Umfang der ausgeführten Entwicklungsleistung angepasst werden. Generell hat es sich bewährt, bereits nach Übergabe kleiner Entwicklungsschritte (z.B. CI-Builds in Agile-Projekten) mit den Prüfroutinen zu beginnen. In der Regel sind das zunächst begrenzte Smoke-Tests für grundlegende Szenarien, wobei die Last aus Sicherheitsgründen von internen Lastgeneratoren (eigenen Servern) erzeugt wird. Nach größeren Entwicklungsschritten (z.B. nächtliche Builds) werden bereits Ausnahmefälle simuliert, um bislang unentdeckte Performance-Probleme zu ermitteln. Am Ende der Entwicklungsetappe werden die Apps „gestresst“. Dazu kann die Last aus einer Test-Cloud maximal skaliert werden, um Belastungsgrenzen, Fehlerbilder und Erholungszeiten einer Anwendung nach einem Absturz festzustellen.
  • Test-Automatisierung: DevOps zielen auf einen direkten Übergang zwischen Entwicklung, Qualitätssicherung und Betrieb. Dieser Prozess lässt sich beschleunigen, indem Prüfroutinen für jeden Entwicklungsschritt automatisiert und z.B. mit den Build-Servern integriert werden. Durch eine direkte Testeinbettung werden Performance-Schwächen sofort erkannt und nicht in die weitere Entwicklung hineingetragen.

Fazit

Die hohe ökonomische Bedeutung von Apps macht das Qualitätsmanagement zu einer gemeinsamen Aufgabe von Geschäfts- und IT-Leitung. Tools für Lasttests und Performance-Monitoring sollten die abteilungsübergreifende Abstimmung mit Automatisierung, intuitiven Nutzeroberflächen und graphischen Auswertungen unterstützen. Auf diese Weise können Manager und Entwickler das mobile Geschäftsmodell Hand in Hand absichern und sich kontinuierlich über den Erfolg der Updates vergewissern.

* Dipl.-Ing. Gregor Mayer ist Territory Manager DACH bei Neotys

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44404658 / Teamführung)