Realtime Analytics auf der Google Cloud

Success Story: coop

Die Coop-Gruppe betreibt einige der prominentesten E-Commerce-Web­sites der Schweiz, darunter Coop.ch, Christ Uhren & Schmuck, Dipl. Ing. Fust, Import Parfumerie, Interdiscount und Microspot.ch. Um diese kontinuierlich zu verbessern hat Coop eine Platform auf der Google Cloud aufgebaut, die es ermöglicht  Analysen auf Daten in Realtime durchzuführen. Eine grosse Rolle spielt dabei die Daten Qualität, welche durch kontinuierliches Validieren gewährleistet wird. Durch die kontinuierliche Analyse der Websites schafft es Coop stetig die Interaktion mit Ihren Kunden über diese Kanäle zu verbessern und somit zu binden. Die dabei gesammelten Informationen werden beispielsweise dazu genutzt die Suche nach Produkten zu optimieren oder dem Kunden bessere Produktvorschläge zu präsentieren.

Mit der Realtime Analytics Platform haben wir einen wichtigen Meilenstein bei der Verarbeitung und Qualitätsprüfung der Daten von den Webauftritten der coop Gruppe erreichen können. 

Challenge

Bei mehreren Millionen Besuchern pro Woche auf den Webauftritten, ist die grösste Herausforderung die Skalierbarkeit und die Reduzierung der Latenz. Dabei ist zu beachten, dass die Daten mit möglichst geringer Verzögerung verarbeitet, validiert und anderen Diensten zur Weiterverarbeitung zur Verfügung gestellt werden. Es muss sichergestellt werden, dass auch wenn sich gerade viele Nutzer auf den Webseiten befinden, eine möglichst reibungslose Verarbeitung der Daten gewährleistet ist. Dies wird durch die Verwendung von „Serverless“ Technologien sichergestellt. Der Begriff „Serverless“ beschreibt hier ein Ausführungsmodell des Cloud Computings welches Ressourcen automatisch an die Last anpasst. Zusätzlich sorgen solche Dienste für eine Reduzierung der IT-Kosten, da die Server für diese Dienste komplett von der Cloud verwaltet werden. 

Solution

Um die Herausforderungen zu bewältigen wurde eine Platform für das Verarbeiten der Website Daten in Echtzeit aufgebaut. Dabei wurden vor allem von der Google Cloud verwaltete Dienste verwendet. Die Daten werden zunächst in eine zentral abgelegt und von dort an weitere Konsumenten verteilt. Dies hat den Vorteil, dass eine lose Kopplung der Systeme entsteht und das gesamt System robuster wird. Fällt beispielsweise ein Teil des Systems aus, sind alle anderen Konsumenten nicht von dem Ausfall betroffen.

Mit dem gewählten Ansatz ist sichergestellt, dass eine Echtzeit-Verarbeitung möglich ist. Weiter Konsumenten leiten die Daten in diverse Analyse Tools und einen Data Lake weiter. Die Analyse Tools werden vor allem dazu genutzt Rückschlüsse aus bereits gesammelten Daten zu ziehen und anschliessend Echtzeit-Analysen mit den so gesammelten Erkenntnissen zu bauen. Der Data Lake hilft die Daten zu archivieren und kann ebenfalls für Analysen genutzt werden. Sollen beispielsweise grosse Mengen an historischen Daten analysiert werden, können diese aus dem Data Lake ausgelesen und programmatisch verarbeitet werden. Gezielt werden hier Daten für das Trainieren und Testen von Machine Learning Algorithmen verwendet.

Das System dient als Basis für verschiedenste Anwendungsfälle, so wird beispielsweise durch das Prozessieren der Events sichergestellt, dass die übermittelten Daten einem vorgegebenen Schema für die Weiterverarbeitung entsprechen. Fehler bei diesem Prozessieren werden erfasst und in einem Dashboard auf Basis von Data Studio visualisiert. Somit kann die Datenqualität kontinuierlich geprüft werden und identifizierte Mängel schnell behoben werden. Ein weiterer Anwendungsfall ist die Echtzeit-Verarbeitung der Events und das anschliessende Erkennen von Mustern innerhalb von Event-Ketten. Mit dieser Verarbeitung können den Benutzer noch während die Webseite genutzt wird, passende Angebote präsentiert werden.

Dies sind nur einige Beispiele wie die Platform bereits jetzt genutzt wird. In Zukunft dient die Platform als Basis für die Analyse der Webseiten Daten. Eine robuste Datenbasis ist einer der wichtigsten Vorraussetzungen für Analyse Systeme, weshalb die Datenqualität als einer der grössten Erfolgsfaktoren für Unternehmen anzusehen ist. 

Konzeption

Um das Vorhaben umzusetzen wurde eine Vielzahl an Diensten auf der Google Cloud verwendet. Die folgende Auflistung zeigt die verwendeten Dienste auf der Google Cloud.

GKE (Kubernetes Engine):

Gesicherter und vollständig verwalteter Kubernetes-Dienst mit revolutionärem Autopilot-Betriebsmodus.

Dataflow

Einheitliche Stream- und Batch-Datenverarbeitung, die serverlos, schnell und kostengünstig ist.

BigQuery

Serverless, hoch skalierbares und kostengünstiges Multi-Cloud-Data-Warehouse für geschäftliche Flexibilität.

Cloud Storage

Google Cloud Storage is a RESTful online file storage web service for storing and accessing data on Google Cloud Platform infrastructure.

Cloud EndpointsCloud Endpoints ist ein Extensible Service Proxy, welcher in der Google Cloud auf verschiedenen Diensten gehostet werden kann und als API Gateway für Google Backend Dienste verwendet wird.
Data StudioData Studio ist ein Visualisierungstool zum erstellen von Dashboards und Berichten mit Integrationsmöglichkeiten zu den Diensten auf der Google Cloud und externen Datenquellen.
Pub/Sub Lite

Pub / Sub ist ein asynchroner Messaging-Dienst, der Dienste, die Ereignisse erzeugen, von Diensten entkoppelt, die Ereignisse verarbeiten.

 

Benefits

Das System bietet eine nahezu in Echtzeit-Verarbeitung der Website Events und hilft diese sehr transparent und effizient zu analysieren. Die Insights in die dabei gesammelten Daten können als Basis genutzt werden für die Entwicklung neuer Use Cases und Weiterentwicklung bestehender Dienste. Es kann nun kontinuierlich geprüft werden in welcher Qualität die Daten vorliegen.Auf diese Weise identifizierte Qualitätsprobleme können schnell behoben werden.

Mit den qualitative hochwertigen Daten können Machine Learning Algorithmen trainiert werden und somit intelligente Dienste angeboten werden. 

Die Kosten in der Wartung wurden stark reduziert durch die Verwendung von Diensten, welche komplett von der Google Cloud verwaltet werden.