Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
Performance-Onlineshops

Performance-Optimierung für Onlineshops

Keine Kommentare

 

Der Wettbewerb zwischen Online-Händlern ist größer denn je. Händler stehen vor der Herausforderung, sich mit ihren Onlineshops von der Masse abzugrenzen. In Zeiten, in denen die Produktvielfalt, Individualität und Emotionalität immer mehr zum Selbstverständnis werden, wird ein Erfolgsfaktor vernachlässigt: die Performance des Shops. Ender Özgür, Head of Software Factories bei Neofonie, beschreibt den Faktor “Performance” als Mittel im Kampf um den Online-Shopper.

Was Performance für den E-Commerce wirklich bedeutet

Performance betrachtet die Geschwindigkeit mit der beispielsweise ein Onlineshop geräteunabhängig lädt. “Je schneller, desto besser”, lautet die Devise. Für den Kunden ist die Performance entscheidend: Wird der potenzielle Kunden beim  ersten Websitebesuch mit unnötigen Ladezeiten auf die Geduldsprobe gestellt, ist er weg, bevor er überhaupt gewonnen werden konnte. Bei schlechter Performance steht einem rasanten Abstieg im Google-Ranking nichts mehr im Wege, folglich sinken die Conversions und Online-Shops kämpfen mit Umsatzzielen. Eine fortwährende Abwärtsspirale auf dem Weg zur Irrelevanz! Wenig hilfreich ist dabei der derzeitige Trend, Shops mit Plugins zu überladen, auch wenn sie viele nützliche Funktionen bieten.

Tool-Tipp:

Beklagen Online-Händler Einbrüche im E-Commerce-Geschäft, sollten sie zunächst die Performance eigenständig testen. Hilfreiche Tools sind hier Google Page Speed, WEBPAGETEST und Pingdom Website Speed Test

Emotional-Commerce braucht eine Performance-Betrachtung

Angetrieben durch Storytelling und Emotionen im Onlinehandel, bieten Shops vielfältige Informationen in Form unterschiedlichster Medienformate wie Bilder, Videos oder interaktive Grafiken, um den Kunden zu begeistern. Folglich steigen die Anforderungen an die Rechenleistung und im schlechtesten Fall die Performance, die Hochverfügbarkeit und die Skalierbarkeit des Systems tendenziell vermindert.

Performance-Onlineshops

Bildquelle: shutterstock

Die große Herausforderung besteht für Shop-Betreiber darin, das steigende Produktangebot und Funktionsangebot hochverfügbar und skalierbar darzustellen. Für Online-Shops bedeutet Hochverfügbarkeit, dass der Besuch oder der Kaufvorgang unterbrechungsfrei durchgeführt werden kann. Das betritt den Fall, wenn z.B. Wartungsarbeiten durchgeführt, neue Funktionen released werden oder ein Server abstürzt. Schafft es ein Online-Shop die Skalierbarkeit zu optimieren, zeigen sich weitere Vorteile:

  • Schnelle Shop-Antwortzeiten trotz massiver Systemnutzung, z.B. während laufender Online-Kampagnen
  • Expansion in andere Länder wird vereinfacht
  • Produktsortiment kann schnell ausgebaut werden
  • Schnellere Produktsuchen, z.B. in dem der Suchserver ausgelagert wird
  • Schnellere Produktvorschläge und
  • die Bestellmenge/Durchsatz in kürzester Zeit optimieren

Das Zusammenspiel aus Hochverfügbarkeit und Skalierbarkeit ist die Basis für performante Webseiten und Online-Shops.

Performance Beispiel: Die Online-Apotheke eurapon nimmt Fahrt auf

Eine repräsentative Befragung der Bitkom Research im Auftrag des Digitalverbands Bitkom bestätigt: Knapp 42 Prozent der Deutschen bestellen ihre Medikamente in Online-Apotheken. Eine der führenden Online-Apotheken eurapon hat mehr als 100.000 Produkte im Angebot. Neben der Produktvielfalt müssen sie eine hohe Zahl an Seitenaufrufen bewältigen, sowie eine stabile, performante Verarbeitung der Bestellungen garantieren.

eurapon-referenz

Quelle: eurapon / Neofonie

Neofonie hat hierzu die Online-Apotheke eurapon zu einem skalierbaren Shop ausgebaut, um dessen Dienste hochverfügbar und performant zu machen.

Step 1: Performance Analyse

Grundsätzlich wird im Vorfeld empfohlen zunächst einmal zu verstehen, an welcher Stelle Performance-Bottlenecks auftreten bzw. erwartet werden (z.B. Datenbankabfragen oder Cache Hit Rate). Entsprechend gibt es dafür auch Analyse-Tools, wie beispielsweise MySQL Query Analyzer oder dem PHP Profiler Tideways. Nach der Auswertung der Messzahlen ergibt sich ein besseres Bild, an welchen Stellen im System bzw. bei welchen Services der eigentliche Handlungsbedarf besteht.

Als Basis verwendet eurapon die Standard Shopware Architektur. Dabei unterliegen alle Varianten unterhalb der Enterprise Edition des Herstellers den gleichen Limitierungen:

  • die Zuweisungen von Services (wie z.B. Datenbank, Suche, Proxy) zu VMs verläuft statisch
  • es gibt genau eine Shopware Instanz
  • es gibt genau eine Datenbank Instanz
  • keine Möglichkeit der horizontalen Skalierung

Herausforderung

Damit waren die Herausforderungen auch recht schnell klar, nämlich von diesen Limitierungen ausgehend einen skalierbaren und hochverfügbaren Shop bereitzustellen, der auch bei regelmäßigen Marketingaktionen, die mit sehr hohem Traffic-Aufkommen verbunden sind, stabil läuft.

Von der Zahlenseite her sieht es dann wie folgt aus:

  • der Shop bietet 250.000 Artikel
  • zu den normalen Peak Zeiten außerhalb der Marketingaktionen erfolgen 200 Bestellungen pro Minute
  • diese entsprechen über 2500 Hits pro Sekunde auf dem Webserver
  • garantierte 0 Downtime, bei Software-Rollouts, Änderungen und Wartungen am System

Step 2: Optimierung der Infrastruktur

Die Lösung besteht zunächst aus zwei Schritten, nämlich die Bereitstellung einer adäquaten Infrastruktur und die Aufteilung und Anpassung der Architektur mit der Einführung weiterer Komponenten.

Damit das Gesamtsystem horizontal skalieren kann, wurde auf eine Cloud-Infrastruktur auf Basis von Docker Swarm (als Alternative zu Kubernetes) gesetzt. Dieses unterstützt die Orchestrierung von Containern und eignet sich gut für Infrastrukturprojekte mittlerer Größe. Dabei liegen innerhalb des Docker Swarm Clusters die Managementfunktionen (Verwaltung der Cluster Infrastruktur) in einer redundanten Gruppe von Swarm Manager Nodes vor und die Services laufen in sogenannten Swarm Worker Nodes, dort werden dann auch die Docker Container gestartet.

Der Cloud-Ansatz unterstützt dabei z.B. mehrere Frontend- und Datenbank-Instanzen zu starten und liefert Infrastruktur-Features wie beispielsweise Autorecovery und Autorestart gleich mit.

Step 3: Optimierung der Systemarchitektur

Im Bereich der Systemarchitektur spielen die grundlegenden Erkenntnisse aus der vorherigen Performance-Analysephase mit ein und sorgen in diesem Beispiel für:

  • eine Trennung zwischen Shopware Backend und Frontend
  • für den Einsatz einer Clusterlösung für MySQL
  • Caching-Lösungen in Form von memcached und Redis und
  • die weitere Anbindung zusätzlicher Services (DB Proxy, Traffic Limiter)

Das Shopware Backend ist eine eigene Instanz, die nur einmal gestartet wird und nicht skalieren muss. Dafür können beliebig viele Shopware Frontend Instanzen existieren, die vom Backend mit Content beliefert werden. Als Clusterlösung wurde MySQL Galera Cluster von Percona aufgrund der komfortablen Replikations-API ausgewählt.

Das bedeutet, dass jedes Einzelsystem als Docker Image File eingepackt, für den Rollout vorbereitet wird und mehrfach als Container gestartet werden kann. Die Zuweisung von Containern zu Nodes erfolgt nicht mehr statisch, sondern diese Arbeit wird von Docker Swarm über eine vorab erstellte Zielkonfiguration automatisch übernommen. Mit der Einführung von Docker Containern und Docker Swarm ändert sich auch der Deployment-Prozess dahingehend, dass man flexibler und schneller auf erforderliche Änderungen eingehen kann.

Der Einstiegspunkt einer Nutzeranfrage erfolgt in unserem Beispiel über einen klassischen Hardware-Loadbalancer, der die Last auf die verschiedenen Worker Nodes verteilt. In der zweiten Ebene, wenn es darum geht Hostnamen aufzulösen und Services anzusprechen, wird diese Arbeit vom Swarm Loadbalancer übernommen – hilfreich dafür war der Einsatz des Tools traefik.io. Lediglich bei der Kommunikation zwischen Shopware Frontend und dem Galera Cluster musste eine zusätzliche Komponente in Form eines Datenbank Proxies zwischengeschaltet werden, der im Ausnahme- oder Wartungsfall die Datenbankanfragen automatisch umleitet.

Die regelmäßig pro Quartal durchgeführten Marketingaktionen (Überraschungsbox) stellen den Online-Shop vor eine weitere Herausforderung, dieser muss nämlich einen Besucheransturm zu einer vorab kommunizierten Zeit standhalten, bis der Verkauf der limitierten Edition (2000 Stück) abgeschlossen ist. Dafür wurde ein spezieller HAProxy bereitgestellt (Traffic Limiter), der sich on-the-fly anhand der aktuellen Last steuern lässt und einen konfigurierbaren Prozentsatz der Shopbesucher durchlässt. Die verbleibenden  Besucher werden auf eine Warteseite geleitet und mit einer Session ID ausgestattet, die dazu dient den Besucher bei der nächsten Gelegenheit automatisch auf das Shopware Frontend zu lenken.

Die Trennung zwischen Shopware Backend und Frontend ist zwar ein wichtiger Schritt für die Vorbereitung auf ein skalierbares System, dies bringt jedoch weitere Fragestellungen mit sich, die gelöst werden müssen. Beispielsweise müssen die Mediendateien, die redaktionell im Backend gepflegt werden, auf die Frontend Instanzen übertragen werden, dies geschieht mit Hilfe eines rsync daemons. Darüber hinaus müssen die Caches der Frontend Instanzen mittels eines Cache Proxies aktualisiert werden, sobald ein Artikel redaktionell aktualisiert oder gelöscht wurde.

Fazit:  Performante Onlineshops sind ein Muss für Shopbetreiber

Für die Konzeption und Entwicklung von performanten Onlineshops bedeutet es mehr Komplexität, der Einsatz weiterer Tools sowie ein erhöhter Mehraufwand, doch die  Vorteile überzeugen: 

  • Hohe Wiederverwendbarkeit der Komponenten durch Docker Images Baukasten
  • Schnelles und einfaches Aufsetzen neuer Umgebungen
  • Einfaches Hinzufügen neuer Shopware oder Datenbank Instanzen
  • Hosting Provider unabhängig
  • Unterbrechungsfreie Wartung oder Deployment
  • Autorestart von Services
  • Hoher Automatisierungsgrad u.a. gute Unterstützung bei QA und Performance Testing

 

Ender Özgür

Autor: Ender Özgür

Ender Özgür hat Informatik an der TU Berlin studiert. Er verantwortet als Head of Software Factories bei Neofonie die moderne Umsetzung von Entwicklungsprojekten. Neofonie entwickelt individuelle, digitale Lösungen und bietet Beratung, Konzeption, Design, Entwicklung und Betrieb aus einer Hand. Zu den Kunden zählen der Wort & Bild Verlag, Audi, Leica, Rausch und Super RTL.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.