© saicle/Shutterstock.com
Reimplementierung eines Onlineshops mit einer NoSQL-Datenbank in der Cloud

NoSQL mit großen Datenmengen


Im vorangegangenen Artikel haben wir einen grundsätzlichen Überblick über das neu zu implementierende Shopsystem von Goodgame Studios gegeben. Dieses Shopsystem läuft zukünftig weltweit verteilt in der Cloud, bindet eine große Anzahl von Bezahldiensten an, soll nach heutigen Maßstäben zügig reagieren und muss zu Spitzenzeiten große Lasten aushalten. In diesem Artikel gehen wir auf die verwendete Datenbanktechnologie ein.

Die Entscheidung, eine NoSQL-Datenbank zu verwenden und mit großem Datenaufkommen zu kombinieren, wollen wir begründen und softwaretechnisch genauer darlegen. Der Artikel ist dafür wie folgt aufgebaut: Zuerst beschreiben wir das Setting und die grundlegenden Anforderungen an unsere Datenspeicherung. Daran anschließend gehen wir näher auf die Konzepte rund um NoSQL-Datenbanken ein. Technische Beispiele sollen genauer darlegen, wie der Umgang mit dieser Art von Datenbank funktioniert.

Das Setting

Mehr als 220 Mio. User greifen aus 230 Ländern laut Google Analytics auf unsere Systeme zu. Eine schnelle, weltweite Verfügbarkeit ist daher unsere primäre Anforderung. Netzwerklatenzen wären recht groß, wenn wir unseren Onlineshop von einem zentralen Punkt aus betreiben würden, weshalb ein verteiltes System zu bevorzugen ist.

Artikelserie

Teil 1: Weltweites Shopping auf der Couch

Teil 2: For the Masses — NoSQL mit großen Datenmengen

Teil 3: For the Cloud – Global skalieren

Teil 4: For Performance – Infrastruktur, Backend, Frontend und Real-User-Performance

28 Mio. Spieler kaufen in diesem Onlineshop Produkte. Damit fallen vielfältige Daten an, die gespeichert werden müssen. Hierbei handelt es sich um kundenspezifische Daten, wie zum Beispiel Statistiken oder persönliche Daten. Ein weiterer Typ sind die shopspezifischen Daten, wie zum Beispiel die zur Verfügung stehenden Artikel oder die verfügbaren Zahlungsdienstleister. Zu guter Letzt gibt es dann noch transaktionsspezifische Daten, wie zum Beispiel die Bestellungen selbst oder Token, die als Identifikator an den Zahlungsanbieter weitergeleitet werden können.

Die Herausforderung

Unsere Herausforderung für die Auswahl der Datenbank bestand darin, dass wir

  • Daten für den gesamten Kaufvorgang ablegen müssen (semistrukturierte Daten)

  • Mit großen Volumina in kleinen Zeiträumen umgehen können müssen (kostengünstige Skalierung)

  • Eine weltweit synchrone Sicht auf diese Daten brauchen (Replikationsmechanismus)

Die Daten, die wir zu speichern haben, sind unterschiedlich strukturiert. Wir haben sowohl re...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang