Für einen E-Commerce-Unternehmer oder technischen Leiter ist die Definition eines Albtraums ganz klar: Der wochenlang vorbereitete Black Friday oder eine riesige Social-Media-Kampagne beginnt, tausende gleichzeitige Besucher strömen auf die Website und genau in diesem Moment erscheint die kalte Meldung auf dem Bildschirm: 504 Gateway Timeout oder 500 Internal Server Error.
Warenkörbe bleiben stehen, das Werbebudget wird verschwendet und, was am wichtigsten ist, das Vertrauen in die Marke bricht mit einem Schlag völlig ein.
Wie ist es also möglich, dass E-Commerce-Websites mit Hunderttausenden von Produkten, auf denen gleichzeitig Zehntausende von Menschen versuchen, Produkte in den Warenkorb zu legen, innerhalb von Millisekunden antworten und online bleiben? Das Geheimnis besteht nicht einfach darin, einen teureren Server zu mieten. Der eigentliche Punkt ist der Aufbau einer korrekt konzipierten, skalierbaren Software- und Serverarchitektur, die keine Engpässe erzeugt.
In diesem Artikel untersuchen wir Schritt für Schritt die technische Architektur und die technischen Ansätze hinter einer E-Commerce-Infrastruktur, die bei hohem Traffic nicht abstürzt.
1. Abkehr von monolithischen Strukturen: Teilen und Herrschen
Die klassische E-Commerce-Software hat meist eine monolithische Struktur, bei der das gesamte System auf einer einzigen Datenbank und einem einzigen Anwendungsserver läuft. Bei normalem Besucherandrang funktioniert diese Struktur hervorragend. Aber bei plötzlich hohem Traffic:
- Der Server, der die Bilder lädt,
- Der Prozessor, der die Warenkorbberechnungen durchführt,
- Die Datenbank, die die Produktbestände abfragt
verbrauchen alle dieselben Ressourcen, weshalb das System einfriert.
Lösung: Mikroservices und modulare Struktur
Bei E-Commerce-Infrastrukturen mit hohem Traffic ist es unerlässlich, das System in Module aufzuteilen. Kritische Komponenten wie das Zahlungssystem, der Produktkatalog, die Mitgliederverwaltung und die Suchmaschine müssen unabhängig voneinander arbeiten. Auf diese Weise verlangsamt der durch suchende Benutzer erzeugte Andrang nicht den Server beim Checkout-Schritt.
2. Die Datenbank entlasten: Lese- und Schreibvorgänge trennen
90 % des Traffics auf E-Commerce-Websites besteht aus Lesevorgängen. Nur 10 % entfallen auf Schreibvorgänge.
All diesen Traffic auf einen einzigen MySQL- oder PostgreSQL-Server zu leiten, führt bei hohem Traffic zu Datenbank-Sperren (Deadlocks).
Anzuwendende Strategie:
Master-Replica-Architektur: Die Master-Datenbank übernimmt nur Schreibvorgänge wie das Annehmen neuer Bestellungen oder das Aktualisieren von Beständen. Lesevorgänge wie das Anzeigen von Produktlisten werden dagegen auf synchron arbeitende Backup-Datenbanken verteilt.
Caching: Daten, die sich nicht oft ändern, wie Preise, Produktdetails und der Kategoriabaum, sollten nicht direkt aus der Datenbank abgerufen werden. Dank In-Memory-Systemen wie Redis wird die Anzahl der Datenbankabfragen um 80–90 % reduziert.
3. Statisches Inhaltsmanagement: CDN und intelligente Bildoptimierung
Mehr als 70 % der Daten, die auf einer E-Commerce-Seite übertragen werden, bestehen aus Bildern, CSS- und JavaScript-Dateien. Den Hauptprozessor Ihres Servers damit zu beschäftigen, Produktfotos an den Client zu senden, ist eine große Verschwendung.
CDN-Nutzung: Systeme wie Cloudflare, AWS CloudFront oder Fastly speichern die statischen Dateien Ihrer Website auf Edge-Servern weltweit und im ganzen Land. Der Besucher lädt das Bild nicht von Ihrem Hauptserver herunter, sondern von dem CDN-Standort, der ihm am nächsten ist.
Lazy Loading und WebP-/AVIF-Konvertierung: Beim Laden der Seite sollten nur die Bilder geladen werden, die auf dem Bildschirm sichtbar sind; Bilder weiter unten sollten nachgeladen werden, während der Benutzer nach unten scrollt.
4. Traffic ausgleichen: Load Balancer und Auto-Scaling
Es ist nahezu unmöglich, sich vorzubereiten, bevor die Traffic-Welle eintrifft. Es ist nicht sinnvoll, die Serverkapazität für eine Kampagne, die um 20:00 Uhr beginnt, das Fünffache zu erhöhen und die ganze Nacht über für dieselben Kosten aufzukommen.
Load Balancer: Verteilt den ankommenden Besucher-Traffic mit Load Balancern von Nginx, HAProxy oder Cloud-Diensten gleichmäßig auf Dutzende von Anwendungsservern im Hintergrund. Wenn einer der Server abstürzt, wird der Traffic sofort auf einen anderen intakten Server umgeleitet.
Auto-Scaling: Wenn die CPU-Auslastung in Cloud-Infrastrukturen wie AWS, Google Cloud oder Azure 70 % übersteigt, startet das System automatisch neue Server. Sobald der Traffic nachlässt, schaltet es diese Server wieder ab, um die Kosten zu senken.
5. Warteschlangenverwaltung und asynchrone Prozesse
Wenn der Kunde auf die Schaltfläche zur Bestätigung der Bestellung klickt, laufen im Hintergrund Dutzende von Prozessen ab:
- Der Bestand wird aktualisiert.
- Der Rechnungs-/Bestelldatensatz wird erstellt.
- Es wird eine Anfrage an das Bank-POS gesendet.
- Dem Kunden werden SMS und E-Mail gesendet.
- Daten werden an die ERP-/Versandintegration übertragen.
Das gleichzeitige Warten auf all diese Schritte auf dem Bildschirm des Benutzers bringt den Server zum Absturz.
Blog Kategorien
