Zum Inhalt springen

Hightech-Lösungen

Einsatz von Golang für eine Produktsuchmaschine im CPQ-Portal

Einsatz von Golang für eine Produktsuchmaschine im CPQ-Portal

Erfolgsgeschichte

Im Jahr 2020 wandte sich ein globaler Technologiekonzern an Scalefocus. Das Unternehmen wollte eine Produktsuchmaschine der nächsten Generation konzipieren und implementieren lassen.

Diese Lösung sollte die bestehende Product-Finder-Funktion auf der CPQ-Plattform ersetzen. Die Legacy-Lösung basierte auf einer relationalen Datenbank, einem Java-basierten Backend-Monolithen und einem JSP-Frontend.

Wie zu erwarten, bot sie eine schwache User Experience und unzureichende Suchperformance.

Im Rahmen eines umfassenden CPQ-Transformationsprogramms brachte Scalefocus die Produktsuche auf ein neues Niveau. Ziel war auch, Betriebskosten zu senken und eine lizenzintensive proprietäre Softwarelösung abzulösen.

Dafür setzten wir moderne Cloud-Technologien in einer Microservice-Architektur ein.

25-fach schnellere Antwortzeit bei Suchergebnissen, von 10 Sekunden auf unter 200 Millisekunden

35 % geringere Betriebs- und Wartungskosten für Infrastruktur

40 % bessere Produktdatenbeladung und Datenindexierung

Der Kunde

Ein multinationales Technologieunternehmen mit einem breiten Portfolio an Hardware- und Softwareprodukten sowie Services. Über die Jahre entwickelte es sich zu einem der weltweit führenden Technologieunternehmen.

Das Unternehmen ist bekannt für innovative Produkte, globale Reichweite und sein Engagement für Nachhaltigkeit.

 

Die Herausforderung

Transformation des Legacy-Systems

Das CPQ-Portal des Technologiekonzerns nutzte eine veraltete Product-Finder-Funktion. Sie erfüllte moderne E-Commerce-Standards nicht mehr.

Die Transformation dieser Legacy-Lösung in eine dynamische, E-Commerce-ähnliche Produktsuchmaschine gehörte zu den anspruchsvollsten Aufgaben.

Funktionsreiche Lösung

Das neue System musste fortgeschrittene Funktionen unterstützen. Dazu gehörten Search-as-you-type, Infinite Scroll, Guided Selling und Auto-Attach für verwandte Produkte.

Diese Funktionen mussten nahtlos integriert werden. Gleichzeitig waren hohe Performance und Reaktionsfähigkeit sicherzustellen.

Performance-Anforderungen

Scalefocus musste sicherstellen, dass die Antwortzeiten der Suchergebnisse unter 200 Millisekunden lagen. Angesichts des Umfangs und der Komplexität des Produktkatalogs war dies besonders anspruchsvoll.

Kostenoptimierung

Der Kunde wollte die Betriebskosten gegenüber der lizenzintensiven proprietären CPQ-Legacy-Lösung optimieren. Dafür war eine kosteneffiziente und skalierbare Lösung auf Basis Cloud-nativer Technologien erforderlich.

Die Lösung

Einsatz der Programmiersprache Go

Wir implementierten Backend-Services mit der Programmiersprache Go, um die beschriebenen Herausforderungen zu adressieren. Das schlanke Nebenläufigkeitsmodell und die effiziente Runtime machten Go besonders geeignet.

So konnten die parallelen und durchsatzstarken Anforderungen der Suchmaschine zuverlässig erfüllt werden.

Integration mit OpenSearch

Das breite Go-Ökosystem und die starke Unterstützung paralleler Programmierung ermöglichten eine nahtlose Integration mit OpenSearch. OpenSearch wurde als Suchmaschinentechnologie gewählt.

Die native Unterstützung gleichzeitiger Operationen ermöglichte parallele Indexierung und Abfragen großer Datensätze. Dadurch verbesserten sich Suchperformance und Antwortzeiten.

Die robuste Standardbibliothek und HTTP-Unterstützung machten Go ideal für die Interaktion mit OpenSearch. So ließen sich Suchanfragen effizient verarbeiten und nahtlos integrieren.

GraphQL und gRPC

GraphQL wurde als API-Layer eingesetzt. gRPC übernahm die interne Kommunikation zwischen Microservices.

Beide Technologien verbesserten Performance und Flexibilität. Die native Unterstützung in Go vereinfachte die Integration und reduzierte den Entwicklungsaufwand.

Optimiertes Cloud-Deployment

AWS-Cloud-Services und eine skalierbare, kosteneffiziente Infrastruktur unterstützten das Deployment der Go-basierten Backend-Services. Die Auto-Scaling-Funktionen von AWS passten Ressourcen dynamisch an die Nachfrage an.

So blieb die Performance auch bei Spitzenlast stabil. Gleichzeitig wurden Betriebskosten in Zeiten geringerer Auslastung reduziert.

Die effiziente Ressourcennutzung und Skalierbarkeit von Go senkten die Betriebskosten zusätzlich.

React für das Frontend

React ermöglichte die Entwicklung einer dynamischen und reaktionsschnellen Benutzeroberfläche. Sie ergänzte die fortgeschrittenen Suchfunktionen der neuen Plattform.

Terraform für AWS-Automatisierung

Terraform vereinfachte Deployment und Management der AWS-Cloud-Infrastruktur. Dadurch wurden Skalierbarkeit, Zuverlässigkeit und Kosteneffizienz unterstützt.

Das Projekt

Nach der ersten Analysephase untersuchte unser Team die Legacy-Lösung und klärte alle initialen Anforderungen. Anschließend erarbeiteten unsere Experten einen vollständigen Vorschlag für die Lösungsarchitektur.

Die funktionalen Datenflüsse wurden in Search und Product Data Ingestion aufgeteilt. Der Suchfluss umfasst eine moderne Benutzeroberfläche mit Responsive Design und React-basierter User Experience.

Für die Umsetzung nutzten wir die MUI-Library. Die Benutzeroberfläche kommuniziert mit einer GraphQL-Middleware-API.

Über diese API werden die produktbezogenen Search-Microservices im Backend angesprochen, die in Go implementiert wurden. Die Go-Microservices greifen direkt auf den AWS-gehosteten OpenSearch-Cluster zu.

Dadurch werden besonders schnelle Produktsuchanfragen möglich. Auch die Microservices für Product Data Ingestion wurden in Go umgesetzt.

Produktdaten werden aus drei unterschiedlichen Quellen aufgenommen. Anschließend werden sie in den OpenSearch-Cluster übertragen.

Das zugrunde liegende Datenmodell wurde für optimale Produktdatenanalyse und Indexierung entwickelt. Die primäre Quelle ist eine relationale Datenbank.

Sie dient als Single Source of Truth für Produktdetails und Produktbeziehungen. Eine zweite Datenquelle liefert regelmäßige Preisinformationen über eine SQS Queue.

Die dritte Quelle stellt Daten zur Produktverfügbarkeit über einen File Share bereit.

Scalefocus wählte Go für die Serverseite wegen seiner Geschwindigkeit. Ein weiterer Vorteil war die Ausführung auf Betriebssystemebene, ohne virtuelle Maschine oder Interpreter.

Den Großteil der Nebenläufigkeitslogik entwickelten wir in Go. Ausschlaggebend waren die Einfachheit der Sprache und ihr natürlicher Ansatz für Parallelisierung.

GraphQL wurde als Frontend-API-Technologie gewählt, da es die Zahl der HTTP-Requests deutlich reduziert. Gleichzeitig löst es typische Probleme mit Over-Fetching und Under-Fetching.

gRPC wurde gegenüber einem REST-Server-Layer bevorzugt, da es deutlich kompakter ist. Für bestimmte Payloads ist gRPC beim Datenempfang etwa siebenmal schneller.

Beim Senden von Daten ist gRPC etwa zehnmal schneller. Zudem vereinfachte die native Go-Unterstützung für GraphQL und gRPC die Integration erheblich.

Dadurch sank auch der Entwicklungsaufwand deutlich.

 

Geschäftsergebnisse

25-fach höhere Performance und Reaktionsfähigkeit

Durch Go-Concurrency und optimiertes Deployment in der AWS Cloud erzielte die Suchmaschine erhebliche Performance-Gewinne.

Die Antwortzeit der Suchergebnisse lag konstant unter 200 Millisekunden. Zuvor betrug sie zwischen 5 und 10 Sekunden.

Das war entscheidend, um die strengen Performance-Anforderungen zu erfüllen. Gleichzeitig entstand eine nahtlose Browsing Experience für die Nutzer.

Auch die Performance der Produktdatenbeladung und Datenindexierung verbesserte sich um 40 %.

35 % geringere Betriebskosten

Die effiziente Nutzung von AWS-Cloud-Ressourcen und die schlanke Go-Runtime senkten die Betriebskosten deutlich. Infrastruktur- und Wartungskosten wurden um 35 % reduziert.

Die Auto-Scaling-Funktionen von AWS sorgten dafür, dass Ressourcen je nach Nachfrage skaliert werden konnten. So wurde Kosteneffizienz optimiert, ohne Performance einzubüßen.

Verbesserte User Experience

Die E-Commerce-ähnliche Produktsuchmaschine verbesserte das Nutzererlebnis des CPQ-Portals deutlich.

Fortgeschrittene Funktionen wie Search-as-you-type und Guided Selling halfen Nutzern, Produkte intuitiver und effizienter zu finden. Das steigerte Zufriedenheit und Engagement.

Eingesetzte Technologien

Golang
AWS
OpenSearch
GraphQL
GRPC
React
Terraform

Bereit für die Herausforderungen von morgen?

Kontakt aufnehmen