Leistungsstärke der Cloud oder Vorteile eigener Server nutzen Die neue Leichtigkeit moderner Last- und Stresstests

Autor / Redakteur: Alexander Kunz* / Elke Witmer-Goßner

Die hohe Skalierbarkeit und Kostenflexibilität (Pay-per-Use-Modelle) machen die Cloud auch für Last- und Stresstests von Webapplikationen interessant, zumal die Cloud methodisch einen deutlichen Mehrwert schafft: Sie liefert Resultate, die häufig realistischer sind als bei Testverfahren „hinter der Firewall“ und damit unter Laborbedingungen.

Firmen zum Thema

Für Online-Anbieter sicher keine Option: Ihre Kunden erwarten die 24/7-Verfügbarkeit aller Services.
Für Online-Anbieter sicher keine Option: Ihre Kunden erwarten die 24/7-Verfügbarkeit aller Services.
(flickr_Unter CC Lizenz freigegeben)

Die aus der „Wolke“ generierten Zugriffe auf Anwendungen können regional ausdifferenziert werden, wobei jeweils der gesamte Browseranfrage- und Antwortprozess ausgemessen und analysiert wird. Eine nahezu unbegrenzte Lasterzeugung, die hohe 24/7-Verfügbarkeit sowie reduzierte Investitionen in Hard- und Software gehören zu den Stärken der Cloud.

Dennoch wird sie Testläufe, die auf eigenen Servern (Lastgeneratoren) aufgesetzt werden, nicht ersetzen, sondern ergänzen: Häufig empfiehlt es sich, die interne sowie die Cloud-basierte Lasterzeugung als komplementäre Vorgehensweisen in ein zweistufiges oder „hybrides“ Testverfahren zu integrieren.

Bildergalerie
Bildergalerie mit 5 Bildern

Hoch skalierbare Testszenarien auch für KMUs

Operation gelungen, Patient tot – das wird in den letzten Jahren so manch Marketingleiter gedacht haben, nachdem aufwändige Social-Media- oder Internetkampagnen Opfer ihres Erfolges wurden. Wenn stark gesteigerte Zugriffsraten und Lastspitzen die beworbene Landingpage außer Gefecht setzen und frustrierte Beinahe-Kunden zurücklassen, ist das für Unternehmen und ihre Dienstleister inakzeptabel.

Die Simulation eines Besucheransturms zum Online-Start eines neuen Produktes oder zum Auftakt eines Saisongeschäftes ist daher unverzichtbar – aber nicht ganz einfach. Denn dafür sind Lastgeneratoren (Server) teilweise im dreistelligen Bereich erforderlich – eine Zahl, die für mittelständische Webshop-Betreiber oder Full-Service-Agenturen utopisch ist. Und selbst für große Unternehmen sind erhebliche Investitionen in Hardware, Softwarelizenzen und -konfiguration zu stemmen, um eine Infrastruktur zu implementieren bzw. zu unterhalten, die vielleicht nur hin und wieder genutzt wird.

Umfangreiche Lasttests sind daher ein typisches Einsatzszenario für die Cloud. Sie macht Mittelständlern Funktionalitäten verfügbar, die früher wenigen Großen vorbehalten waren, während die Großen dieselben Funktionalitäten wie bislang nutzen – aber mit geringerem Vorlauf und Kostenaufwand.

Tests aus der Anwenderperspektive

Werden Anwendungen mit internen, im eigenen Netzwerk angesiedelten Lastgeneratoren getestet, wird nur ein Ausschnitt der Server-Client-Kommunikation zwischen einem Kunden und dem betreffenden Unternehmen abgebildet. Das Internet bzw. der eigentliche Kundenzugang zum Unternehmensnetzwerk wird praktisch unterschlagen. Mit der Cloud dagegen wird die Last da erzeugt, wo auch die realen Nutzer sitzen und ihre Anfragen starten. Insbesondere können statistisch ermittelte oder erwartete Besuchergruppen mit regional entsprechend verteilten Lastgeneratoren in beliebigem Umfang erzeugt werden.

Hat zum Beispiel ein Webshop tagsüber vor allem Kunden aus Europa, abends aus den USA, nachts aus Asien, können Cloud-basierte Lasttests die Zugriffe in der jeweiligen geografischen Verteilung und entsprechenden Größenordnung nachbilden. Selbst ein regional spezifisches (Kauf-)Verhalten und typische Surfgewohnheiten können simuliert werden.

Dabei werden Faktoren wie Bandbreite und Latenz so erfasst, wie der Nutzer sie erlebt. Gleichzeitig werden alle durchlaufenen Stationen von der Browseranfrage bis zur erfolgten Datenübertragung (z.B. Netzwerkausstattung, DNS-Server, Internetdienstanbieter, Firewall) vollständig in ihrem Verhalten unter Last ausgemessen. Cloud-basierte Testverfahren gewinnen zusätzlich an Realitätsnähe, indem sie den Einfluss z.B. von Ad Servern und weiteren, von externen Anbietern gelieferten Technologien auf die Verfügbarkeit der Webanwendungen erfassen.

Trotz der Cloud-Vorteile sind interne Tests mit eigenen Lastgeneratoren nach wie vor methodisch relevant, um „hausgemachte“ Schwachstellen abzugrenzen gegen die, die jenseits der Firewall entstehen. Insbesondere wenn sich Probleme dies- und jenseits der Firewall überlagen, ist es hilfreich, mit derselben Lasttestsoftware sowohl aus der Cloud als auch von eigenen Servern aus zu operieren, um die Ursachen zu lokalisieren und zu isolieren.

Zudem resultiert aus Schwankungen in der Bandbreitenverfügbarkeit eine gewisse Unschärfe bei Cloud-basierten Lasttests. Diese „unklaren“ Verhältnisse beeinträchtigen vor allem Iterationstests. Wenn Anwendungen auf der Code- oder Konfigurationsebene modifiziert werden, müssen die Veränderungen jeweils Schritt für Schritt überprüft werden. Identische Rahmenbedingungen sind hier die Voraussetzung für eine hohe, wiederholbare Genauigkeit der Testläufe, die die Cloud nicht mit derselben Konstanz garantieren kann.

Die aktuelle Auslastung des Internets und unterschiedliche Datenraten entziehen sich der Kontrolle der Testspezialisten und können die Ergebnisse beeinflussen. Für Regressions- oder Iterationstests sind Lastgeneratoren hinter der Firewall daher insgesamt besser geeignet. Umgekehrt bewährt sich die Cloud besonders, wenn Webanwendungen im Hinblick auf DoS-Attacken, Worst-Case-Szenarien und Risikoprävention an ihr Maximum gebracht oder durch plötzliche Lastwechsel gestresst werden sollen.

„Hybride“ Testverfahren

Der Test einer Umgebung vor dem Start des Produktivbetriebs geschieht aus Sicherheitsgründen zumeist hinter der Firewall. Zunächst wird mit relativ wenigen virtuellen Nutzern nur die grundsätzliche Verfügbarkeit der Anwendungen sichergestellt. Steht die Infrastruktur für den Go-Live, können die externen Zugriffssimulationen aus der Cloud starten. Das geschieht der Vergleichbarkeit wegen mit denselben, realen Anwendern nachgebildeten Nutzerprofilen, die dann auf die gewünschte Gesamtlast hoch skaliert werden. Eine Lasttestsoftware, die externe und interne Testverfahren unterstützt, hat den Vorteil, die entsprechenden Profile nur einmal anlegen zu müssen und dann beliebig oft verwenden zu können.

Mit dem hybriden oder zweistufigen Testverfahren kann das Monitoring schon früh in der Entwicklungsphase einer Anwendung beginnen, um Fehler zu beseitigen, solange es noch einfach und kostengünstig ist. Eine ausschließliche Verwendung der Cloud würde den Beginn der Tests dagegen auf einen Zeitpunkt verschieben, an dem die jeweilige Umgebung bereits stabil eingerichtet ist.

Tipps für Lasttests aus der Cloud

Im Vergleich zu virtuellen Nutzeranfragen aus der Cloud sind Lasttests innerhalb der Firewall weniger realitätsnah, da sie das Internet nicht mit einbeziehen. Dafür garantieren sie einen hohen Schutz vertraulicher Geschäftsdaten. Das ist sehr wichtig, denn die Zahl und Konfiguration der virtuellen User sowie ihr realitätsnah simuliertes Verhalten verrät viel über das Kundenaufkommen, Geschäftsmodelle, die technische Umsetzung und Systemprobleme.

Zwar werden bei Cloud-basierten Lasttests keine realen Kundendaten, aber doch aus der Realität abgeleitete Profile und Kennzahlen zwischen der eigenen Infrastruktur und weltweit verteilten Servern ausgetauscht. Virtuelle Nutzerkonten, Zugriffsszenarien, detaillierte Fehlermeldungen und andere vertrauliche Daten sollten daher geschützt werden, am besten durch eine starke Verschlüsselung der Kommunikation zwischen dem Controller (der festlegt, was die Lastgeneratoren tun sollen) und den Last erzeugenden Servern. Eine SSL-Verschlüsselung sorgt dafür, dass sowohl die Steuerungsbefehle an die Lastgeneratoren als auch die zurückgelieferten Performanz-Informationen und Fehlermeldungen nicht abgefangen werden und eventuell zum Wettbewerber gelangen.

Last- und Stresstests auf mehrere Cloud-Provider und Multi-Cloud-Ansätze zu stützen, ist aus drei Gründen empfehlenswert:

  • Mehr Regionen können einbezogen werden, sodass ein realistisches Bild entsteht, wie verteilte Nutzer unter jeweils unterschiedlichen Rahmenbedingungen (Bandbreiten, Router, Third-Party-Server etc.) die Verfügbarkeit von Webanwendungen erleben.
  • Höhere Skalierbarkeit, indem Beschränkungen in der Bandbreite oder der Anzahl der verfügbaren Server eines Providers erweitert werden durch das „Zuschalten“ der Kapazitäten anderer Anbieter.
  • Performanz-Probleme des Cloud-Providers, die Testergebnisse verfälschen, werden durch den Vergleich mit den Resultaten der anderen Cloud-Tests leichter entdeckt.

Die (Meta-)Cloud ist fast grenzenlos skalierbar und kann selbst robuste Anwendungen „stressen“. Allerdings hat die hohe Cloud-Performanz manchmal den Nachteil, die tatsächliche Nutzersicht nicht adäquat abzubilden. So haben die realen Besucher einer Website häufig weniger Bandbreite zur Verfügung als die künstlich in der Cloud erzeugten Anwender. Die Antwortzeit einer Webapplikation kann daher in Wirklichkeit spürbar länger sein, als im Lasttest ermittelt.

Eine im Test zu kurz gemessene Latenz führt dazu, dass Testingenieure die Performanz für akzeptabel halten, da sie sich augenscheinlich im vordefinierten Toleranzbereich bewegt. Tatsächlich ist sie aber für den realen Anwender unzureichend, sodass er das Online-Angebot als schlechten Service erlebt und noch vor der Konversionshandlung verlässt. Dauern die realen Antwortzeiten länger, erhöht sich zudem die Zahl gleichzeitig aufgebauter Verbindungen gegenüber den Messergebnissen.

Cloud in Testszenarien einbinden

Der Server ist so in Wirklichkeit einer höheren Belastung als im Test ausgesetzt, selbst wenn die Quantität der Browseranfragen gleich gewählt ist. Eine Lasttestlösung sollte daher eine Bandbreitensimulation umfassen, um den Datendurchsatz bewusst limitieren zu können. Das gilt besonders für den Test von Apps, da Mobile User sich selbst beim HSDPA-(3,5G)-Standard mit einer Datentransferrate von manchmal deutlich unter 100 kb/s zufrieden geben müssen. Ebenso wichtig ist die Erzeugung paralleler HTTP-Anfragen, da gleichzeitige Downloads die Antwortzeiten verlängern und Fehlerraten tendenziell erhöhen.

Ein Vorteil der Cloud ist das „Fast Ramp-up“, also die (fast) unmittelbare Verfügbarkeit weltweit verteilter Lastgeneratoren. Um diesen Vorsprung auch fachlich nutzen zu können, ist eine direkte Einbindung der Cloud-Infrastruktur in die Planung, Steuerung und das Monitoring von Tests entscheidend.

Lasttest-Cloud in bedarfsgerechter Gesamtlösung

Multi-Cloud-Konzepte ermöglichen hoch skalierbare Lasttests, die „von Außen“ zeigen, wie der Nutzer den Zugriff auf Webanwendung real – statt unter abgeschlossenen Laborbedingungen – erlebt. Zusätzlich kann der Zeit- und Kostenaufwand für das Aufsetzen der Testläufe reduziert werden. Dennoch wird die Cloud traditionelle Tests hinter der eigenen Firewall nicht überflüssig machen, sondern zu einem zweistufigen Verfahren erweitern.

Eine moderne Lasttestlösung sollte daher das Potenzial der Cloud ausschöpfen und sie zusammen mit internen Lastgeneratoren in eine nutzerfreundliche Gesamtlösung integrieren. Dazu gehört auch die Abbildung des kompletten Testregelkreises (Planung, Steuerung, Analyse, Reporting) sowie die Unterstützung für moderne „Web 2.0“-Technologien (z.B. Adobe Flex, MS Silverlight, RTMP, AJAX) und die gängigen Authentifizierungsverfahren (u.a. Kerberos, NTLM, Digest, Basic).

* Der Autor Alexander Kunz ist Business Development Manager bei Neotys.

(ID:34411510)