„Die Cloud skaliert doch für uns“: Warum das falsch ist und ihr Performance-Tests machen solltet

(Grafik: Shutterstock)
Auf der DevOpsCon in Berlin hat Sebastian Cohnen, Performance-Spezialist und Gründer von Stormforger, einen Vortrag rund um Performance-Tests in der Cloud gehalten. Zuerst einmal geht es darum, Performance und Skalierbarkeit auseinander zu halten. Die Performance ist für Cohnen die Fähigkeit eines Systems, eine Aufgabe in einer definierten Dimension zu erledigen. Die Skalierbarkeit wiederum ist die Effektivität, mit der die Kapazität durch Ressourcen gesteigert werden kann. Das Performance-Problem erkennt man daran, dass die eigene Applikation für einen einzelnen Nutzer langsam ist; Das Skalierungsproblem daran, dass sie für einzelne Nutzer schnell, aber unter Last langsam ist.
Performance-Tests: Auf diese Methoden könnt ihr auch in der Cloud setzen

In seinem Vortrag auf der DevOpsCon hat Sebastian Cohnen über Performance-Tests gesprochen. (Foto: t3n)
Da es auch in Cloud-Umgebungen zum Beispiel in der Konfiguration viele Faktoren gibt, die die Performance beeinflussen können, sollten Unternehmen auch dort nicht auf Performance-Tests verzichten. Auch durch das Zusammenspiel unterschiedlicher Konfigurationen und weitere Faktoren wie dem Betriebssystem und Co., die nicht beeinflusst werden können, kann es Einflussgrößen geben, die die Performance beeinflussen. Daher gibt Cohnen in seinem Vortrag einen Überblick über verschiedene Methoden, um Performance-Tests durchzuführen.
Beim Load-Testing wird mit normaler, zu erwartender Last getestet, um Latenzen, Durchsatz und Fehlerraten zu ermitteln. Beim Stress-Testing hingegen geht es darum, Tests mit gesteigerter bis extremer Last durchzuführen. Dabei soll das Systemverhalten überwacht werden, während die Last immer weiter erhöht wird. So kann festgestellt werden, welche Kapazität eine bestimmte Ressource hat, beispielsweise ein Server. Mit dem Scalability-Testing kann dann ermittelt werden, wie effektiv weitere Ressourcen umgesetzt werden. Für Unternehmer ein praktikables Mittel, um die Kapazität und somit die Kosten zu planen. Außerdem sollte man im Auge behalten, wann man mit seiner aktuellen Kapazität an die Grenze stößt.
Eine weitere Testmethode bezeichnet Cohnen als Spike-Testing. Damit wird getestet, wie sich das System bei extremen Lastspitzen entwickelt, und ob man als Unternehmen darauf schnell genug reagieren kann. Ein weiterer Test beschäftigt sich mit hoher Last über einen längeren Zeitraum. Dabei sollte vor allem darauf geachtet werden, ob Langzeiteffekte auftreten. Besonders spannend wird es gerade im Cloud-Bereich beim Configuration-Testing. In diesem Bereich braucht man natürlich auch eine ganze Reihe Tests, gerade im Hinblick auf unterschiedliche Instanztypen, Auto-Scaling-Einstellungen und die optimale Nutzung von Diensten. Dazu kommt, dass nicht alle Komponenten in der Cloud frei gewählt werden können. So ist man oft auf ein Betriebssystem oder die bestimmte Konfiguration einer Software festgelegt.
Performance-Tests früher und heute

So sieht Cohnens Workflow rund um Performance-Tests aus. (Foto: t3n)
Besonders spannend ist auch das Availability- und Resilience-Testing. Hierbei wird untersucht, was bei Deployments unter Last passiert oder ob es Probleme beim Ändern der Infrastruktur gibt.
Die Frage, ob Performance-Testing anders ist als früher, beantwortet Cohnen mit einem klaren Jain. Die Notwendigkeit und die Methoden sind unverändert. Aber durch die neuen Möglichkeiten der Cloud lassen sich Testumgebungen viel einfacher bereitstellen. Und wenn man sie nicht mehr braucht, schaltet man sie ab und sie verursachen keine Kosten mehr.
Die größte Herausforderung beim Performance-Testing in der Cloud bleibt aber die Reproduzierbarkeit. Testdaten und der „State“ im Allgemeinen sind auch in der Cloud ein komplexes System. Datenbanken, Caches und Dateisysteme müssen in einen definierten Zustand versetzt werden, die Testdaten müssen verwaltet werden. Hier sind die Administratoren gefragt – und sie dürfen mit ruhigem Gewissen ans Automatisieren denken.
Fazit
Zusammenfassend lässt sich also sagen, dass Ressourcen nicht gleich das Skalieren der Anwendung sind. Dazu kommt, dass die Systeme auch in der Cloud komplex sind und das Verständnis zum Testen enorm wichtig ist. Cohnens Tipp am Ende: Die Cloud macht bei Performance-Tests vieles einfacher – das sollten alle im Saal nutzen.