Optimierung der Web-Performance für eine Online-Einzelhandelskette

Optimierung der Web-Performance für eine Online-Einzelhandelskette

Wir haben 30 % der technischen Schulden beseitigt, die Indexierungsgeschwindigkeit verdoppelt und die Anzahl der HTTP 404-Fehler für einen führenden europäischen Einzelhändler um das Zehnfache reduziert.

Inhaltsverzeichnis

Kontext

Unser Kunde ist ein führender europäischer Anbieter von Büroartikeln und Schreibwaren. Das Unternehmen besitzt eine große Kette von Online-Shops mit über 90.000 Produkten und beliefert Tausende von Firmenkunden über mehrere Logistikzentren.

Der Online-Supermarkt wurde auf der Grundlage von SAP Commerce (früher SAP Hybris) aufgebaut, was eine effektive Verwaltung von Katalogen, Navigation, Marketingkampagnen, Inhalten usw. ermöglichte.

Die Plattform kommunizierte mit externen Systemen für die Erfassung von Analysen, E-Mail-Marketing, Zahlungsabwicklung und die Beschaffung von Geolocation-Informationen über REST API. Die internen Systeme des Geschäfts (ERP, CRM usw.) wurden über den SAP PI Integrationsbus unter Verwendung von SOAP-Protokollen mit dem Online-Supermarkt verbunden. HotFolder wurde für die Systeme verwendet, die nicht direkt über SAP PI angebunden werden konnten.

The solution's integration map

Die meisten Probleme des Systems resultierten aus der fehlerhaften Arbeit von Apache Solr, die zu zahlreichen 404-Fehlern, falscher Anzeige von facettierten Suchergebnissen, langsamer Indexierung, verzögerten Aktualisierungen der Preisdatenbank, Fehlern bei der Autovervollständigung und der Synonymsuche sowie zu wiederkehrenden Ausfällen bei der Zahlungsabwicklung führte.

Neben den technischen Schwierigkeiten hatte der Kunde mit weiteren Problemen zu kämpfen:

  • Unsynchronisierte Teams. Das Team des Kunden war nicht mit den geografisch verteilten Teams der Auftragnehmer synchronisiert, die das System für das Unternehmen entwickelten.
  • Mangelnde Transparenz der Arbeitsabläufe. Es war schwierig, die Arbeitsabläufe der verschiedenen Teams, die an denselben Projekten arbeiteten, zu verfolgen, was eine entsprechende Planung unmöglich machte.
  • Eine schlecht organisierte Struktur. Jeder Mitarbeiter aus der Entwicklung, dem Vertrieb, dem Marketing oder anderen Abteilungen konnte beliebige Aufgaben erstellen und zuweisen, ohne vorher einen Business-Analysten zu konsultieren.
  • Nicht synchronisierte Lieferpläne. Mehrere Teams arbeiteten an verschiedenen Aufgaben und Projekten, und die Produktfunktionen wurden nicht synchronisiert freigegeben.
  • Kein Wissenstransfer. Nachdem der technische Leiter von SAP Commerce das Projekt verlassen hatte, kamen die Produktaktualisierungs- und Versionslieferungsprozesse ins Stocken.
  • Kein Dokumentationssystem. Es gab kein einheitliches System zur Pflege der Projektdokumentation mit einem gemeinsamen Zugang für alle Teams.

Der Kunde war auf der Suche nach einem Technologiepartner, der ihn bei der Einführung von Kollaborationsprinzipien, der Implementierung von Best Practices, der Lösung technischer Probleme und der Optimierung der Web-Performance seines Online-Shops unterstützen sollte. Er entschied sich für Itransition aufgrund unserer bewährten Expertise in SAP Commerce und Softwarewartung und -support.

Lösung

Nach einer gründlichen Analyse der Lösung des Kunden haben wir folgende technische Probleme aufgedeckt und gelöst:

Fehlerhafte Indizierung

Wir identifizierten zahlreiche Code-Fehler, die zu einer fehlerhaften Indizierung der Daten und irrelevanten Suchergebnissen führten, die das Nutzererlebnis beeinträchtigten. Um dieses Problem zu lösen, haben wir den Apache Solr-Indizierungsprozess überarbeitet und optimiert, was zu 10x weniger 404-Fehlern führte. Außerdem haben wir Probleme mit der Indizierungsgeschwindigkeit behoben und sie verdoppelt.

Facetten-Suchfehler

Die Facettensuche mit aktivierten Filtern funktionierte nicht richtig. Infolgedessen konnten die Nutzer bestimmte Produkte nicht finden. Nachdem unser Team die Fehler behoben hatte, konnten die Nutzer die benötigten Produkte viel schneller finden.

Preisaktualisierungs-Cache-Fehler

Die Plattform des Shops nutzte Daten aus den anderen Systemen des Kunden, um Preise zu aktualisieren und zu berechnen. Da veraltete Werte fälschlicherweise gelöscht wurden, kam es zu einer fehlerhaften Neuberechnung der Preise, was zu Systemabstürzen und Fehlern bei der Anzeige von Produkten auf der Website führte. Um das Problem zu beheben, musste der Kunde den Cache manuell leeren oder einzelne Systemknoten neu starten.

Wir beschlossen, den veralteten Mechanismus zur Datenentfernung neu zu schreiben und das Caching zu aktualisieren. Dank dieser Änderungen sank die Zahl der Fehler im Zusammenhang mit der fehlerhaften Preis-Cache-Funktion auf Null.

Fehler bei der automatischen Vervollständigung und der Synonymsuche

Diese von der Marketing-Abteilung genutzte Funktion war sehr ineffizient. Wir haben den Mechanismus umgeschrieben und optimiert, so dass die Nutzer der Website bestimmte Produkte viel schneller finden können.

Fehler beim Checkout

Bei bestimmten Schritten der automatischen Kaufabwicklung kam es zu zahlreichen Fehlern, die zu stundenlangen Kundendiensteinsätzen führen konnten. Wir fanden heraus, dass der Grund für die Fehler in der ineffektiven Implementierung der Funktionalität lag, die eine asynchrone Auftragsverarbeitung auf verschiedenen Knoten des Clusters verursachte.

Verfahren

Itransition unterstützte den Kunden bei der Implementierung von Best Development Practices und der Optimierung von Prozessen, die den Unternehmenszielen und der Projektmanagementumgebung entsprechen.

Wir richteten transparente Prozesse zwischen verschiedenen Teams ein, indem wir ihre Workflows in Atlassian Jira synchronisierten. Auf unsere Empfehlung hin fügte der Kunde eine separate Phase für die Geschäftsanalyse, Aufgabenerstellung und -zuweisung hinzu. Außerdem entwickelten wir einen Plan zur Organisation der Kommunikation und Zusammenarbeit innerhalb der einzelnen Mikroteams sowie zwischen allen Teams.

In regelmäßigen Meetings tauschten wir uns über die Projektvision aus, analysierten das Feedback von wichtigen Entscheidungsträgern und diskutierten Abhängigkeiten und Engpässe, um den Release-Zeitplan zu synchronisieren. Wir entwickelten auch einige Funktionen nach dem WSJF-Prinzip (Weighted Shortest Job First), um Aufgaben effizient zu priorisieren.

Das Team von Transition half bei der Anpassung des Repository-Management-Moduls an die Bedürfnisse des Kunden und setzte gleichzeitig das Continuous-Integration-System (CI) für dieses Modul ein. Da der Kunde bereits Jenkins einsetzte, halfen wir ihm, das Problem der Speicherung sensibler Konfigurationsdaten zu lösen, indem wir einen separaten Speicherplatz einrichteten und diesen ebenfalls in das CI-System integrierten.

Zusätzlich halfen wir bei der Implementierung von Best Development Practices wie:

  • Ein standardisierter Kodierungsstil

    Wir entwickelten und implementierten eine Reihe von Regeln und Konventionen für den Quellcode in Übereinstimmung mit den Bedürfnissen des Kunden. Wir waren auch an der Automatisierung des Prozesses der Checkstyle-Überprüfung beteiligt, wodurch die Zeit für die Codeüberprüfung verkürzt und die Lesbarkeit des Codes verbessert wurde.

  • Code-Verzweigung

    Wir haben einen Verzweigungsprozess vorgeschlagen, der speziell für mehrere geografisch verteilte Teams, die an mehreren parallelen Projekten arbeiten, konfiguriert wurde, um die Zusammenarbeit transparenter und kohärenter zu gestalten.

  • Cross-Reviews

    Wir halfen dabei, neue Prinzipien für das Aufgabenmanagement zu entwickeln, die die Interessen aller Teammitglieder berücksichtigten und verschiedene Projektmanagementmodelle unterstützten. Wir halfen dem Kunden bei der Einführung von Prozessen, die es den Teams ermöglichten, Freigabetermine zu planen und Aufgaben zuzuweisen, wodurch die Ergebnisse unserer gemeinsamen Bemühungen verbessert wurden.

Ergebnisse

Während der mehr als 14-monatigen Zusammenarbeit war das Team von Itransition der vertrauenswürdige technische Partner des Kunden. Wir minimierten manuelle Eingriffe, was die Systemstabilität, Leistung und Produktivität erhöhte. Außerdem haben wir die besten Verfahren zur Entwicklung und Optimierung der Web-Performance implementiert, was zu folgenden Ergebnissen führte:

  • 30 % der technischen Schulden wurden beseitigt
  • Die Apache Solr-Indizierung wurde doppelt so schnell
  • HTTP 404-Fehler wurden um das Zehnfache reduziert

Später beauftragte uns das Unternehmen mit einem weiteren Projekt, bei dem es um die Online-Supermarkt-optimierung für niedrigfrequente Suchanfragen ging.