Überspringen zu Hauptinhalt

Case Study: Performance-Optimierung bei Magento 2

root360 partnerIm August 2018 ging ein großer deutscher TV-Sender mit einem neuen Web-Shop online. In diesem Shop werden vorrangig Merchandiseprodukte rund um aktuelle Sendungen vertrieben. Als Shopsystem wurde Magento 2 ausgewählt. Da unterschiedliche Auslastungen des Shops erwartet wurden (mit Lastspitzen zur Sendezeit der jeweiligen Sendungen) passte das Managed Cloud Hosting mit AWS perfekt. Um alles zu optimieren, wurden einige Lasttests mit StormForger durchgeführt.

Set-up & Learnings der Lasttests

Es wurden insgesamt vier verschiedene Klickstreckentests durchgeführt. Dabei gab es konkrete Vorgaben vom Sender zu den verschiedenen User Journeys. Auch Vorgaben zu den erwarteten Conversions und maximalen Nutzerzahlen wurden vorab geliefert: 26.700 Besucher pro Minute und 800 Bestellungen pro Minute wurden erwartet. Bei den Lasttests mit StormForger mussten wir die Zahl auf die erwarteten Anfragen entsprechend hochrechnen. Das waren in diesem Fall 180.000 Requests pro Sekunde im Peak.

Bei der Ausführung der Tests wurden im ersten Schritt die Test-Szenarien getestet – erst im nächsten Schritt wurden die Zugriffszahlen schrittweise bis zum Maximum erhöht. 

Nach den Lasttests wurden einige Optimierungen durchgeführt: So wurden die Media Assets (Bilder, Videos, Javascript, CSS) auf das CDN (Amazon Cloudfront) verschoben. Das Caching wurde mit Hilfe von Redis und lokalem Page Cache optimiert. Auch die Datenbank (RDS MySQL) wurde entsprechend in Größe und Cache-Parameter angepasst. 

Herausforderungen bei den Lasttests durch Magento

Eine Schwierigkeit bei diesem Projekt war es, die Bestellprozesse „Warenkorb“ und „Zur Kasse“ im Test abzubilden. Dies ist auf ein Sicherheitsfeature von Magento 2 zurückzuführen. Da im Bestellprozess aufwändige Datenbankabfragen durchgeführt werden, werden aufgrund mehrerer unterschiedlicher Sicherheitstokens auf den Seiten automatisierte Einkäufe erschwert. Mittels ‚content extration‘-Funktion von StormForger wurden aus dem HTML der Seiten die dynamisch generierten Tokens extrahiert. Diese wurden dann an den notwendigen Stellen (z.B. Cookies & verstecktes Eingabefeld in Formularen) beim Aufruf der nächsten Seite mitgegeben.

Fazit

Ohne die vorherigen Lasttests und die Optimierungen im Nachgang hätte der Online-Shop bei den hohen Zugriffszahlen während der Ausstrahlung der Sendungen nicht Stand gehalten. Anhand der Lasttests wurde ebenfalls die notwendige Skalierung für die Server-Instanzen ermittelt. Diese konnten entsprechend vor der Ausstrahlung „hochgefahren“ und danach wieder „runtergefahren“ werden. Für den Fernsehsender war das die kosteneffizienteste und stabilste Lösung.

Mehr über Lastspitzen kannst du in unserem Whitepaper „High Performance Cloud Hosting – 10 Tipps für Lastspitzen ohne Ausfälle“ nachlesen.

An den Anfang scrollen