© saicle/Shutterstock.com
PHP Magazin
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.

Wolf-Gideon Bleek, Christian Schlupp, Dennis Kopp


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.

ArtikelserieTeil 1: Weltweites Shopping auf der CouchTeil 2: For the Masses — NoSQL mit großen DatenmengenTeil 3: For the Cloud – Global skalierenTeil 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 relationale als auch nicht relationale Daten. „One size fits it all“ ist deshalb nicht die optimale Herangehensweise. Deswegen haben wir die passenden Datenbanken für die jeweilige Datenart gewählt. Für die relationalen Daten haben wir uns für MySQL entschieden; bei verteilten NoSQL-Datenbanken mussten wir zuerst die passende Datenbank finden.

Datenbankauswahl

In der Konzeptionsphase (2012) des neuen Onlineshops mussten wir uns für eine NoS...

PHP Magazin
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.

Wolf-Gideon Bleek, Christian Schlupp, Dennis Kopp


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.

ArtikelserieTeil 1: Weltweites Shopping auf der CouchTeil 2: For the Masses — NoSQL mit großen DatenmengenTeil 3: For the Cloud – Global skalierenTeil 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 relationale als auch nicht relationale Daten. „One size fits it all“ ist deshalb nicht die optimale Herangehensweise. Deswegen haben wir die passenden Datenbanken für die jeweilige Datenart gewählt. Für die relationalen Daten haben wir uns für MySQL entschieden; bei verteilten NoSQL-Datenbanken mussten wir zuerst die passende Datenbank finden.

Datenbankauswahl

In der Konzeptionsphase (2012) des neuen Onlineshops mussten wir uns für eine NoS...

Neugierig geworden?


    
Loading...

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