Die Globus Crosschannel Microservice Architektur

Die Globus
Crosschannel-Microservice-Architektur

Mit dem Launch des neuen Globus-Onlineshops im April 2017 wurde der erste Meilenstein für den Aufbau einer neuen Crosschannel-Architektur erreicht. Dabei haben wir von Anfang an auf eine Eigenentwicklung gesetzt, um maximale Flexibilität zu erhalten und so möglichst schnell auf neue Anforderungen reagieren zu können.

Bis zum Januar 2019 wurden folgende Services für Kunden und Mitarbeiter über die Globus-Crosschannel-Plattform umgesetzt:

  • Im April 2017 der Globus-Onlineshop (globus.ch)
  • Im Juli 2017 die Onboarding-App für das Kundenkartenprogramm und die Globus-Kunden-App (globus.ch/mobileapp)
  • Im September 2017 die Globus-Terminals und -Showrooms
  • Im April 2018 die Globus-Mitarbeiter-App mit Bestell- und Zahlfunktionen
  • Im Dezember 2018 die App für mobiles Kassieren (Pilotprojekt in zwei Globus-Filialen)

Seit Januar 2019 haben wir mit navyboot.ch einen zweiten Onlineshop. Da wir auf die bestehenden Technologien und die vorhandene Infrastruktur aufbauen konnten, war es möglich, den Navyboot-Onlineshop nach nur zwei Monaten Entwicklungszeit pünktlich zum 01.01.2019 zu starten.

  • Product Matrix
  • Microservice Matrix
  • Backendservice Matrix
  • Enterprise System Matrix
  • Enterprise System Matrix
"Microservices ermöglichen eine kanalgerechte und kanalübergreifende Interaktion mit dem Kunden an allen Touchpoints."

Tobias Felbecker, Leiter Globus Onlineshop.

Alle Funktionen, die für den Crosschannel-Handel erforderlich sind, wurden bei Globus als Microservices umgesetzt, so zum Beispiel die Produktsuche, die Produktpräsentation, der Bezahlvorgang und die Anmeldung zum Kundenprogramm. Ein Microservice ist nach unserer Definition ein einzeln verwendbarer Service, bestehend aus einem Frontend und einem oder mehreren Backend-Services.

Das Design unserer Microservices kann über Themes angepasst werden, die Funktionen lassen sich über sogenannte «Feature Toogles» konfigurieren. So kommt beispielsweise der «Checkout Microsservice» im Globus-Onlineshop zum Einsatz, aber auch im Navyboot-Onlineshop, in der Kunden-App, in der Verkaufs-App für Mitarbeiter sowie in den Terminal- und Showroom-Applikationen in den Filialen. Design und Funktionen, etwa für die Lieferung, wurden dabei je nach Bedarf angepasst.

  • Mockup 1
    globus.ch in der mobilen Anwendung
  • Mockup 2
    globus.ch in der Desktop- und Tablet-Anwendung
  • Mockup 3
    navyboot.com in der mobilen Anwendung
  • Mockup 4
    navyboot.com in der Desktop- und Tablet-Anwendung
  • Mockup 5
    Links: globus.ch als Product-Scan-App zur Verkaufsunterstützung / Mitte: CRM-App / Rechts: globus.ch als App zur Verkaufsunterstützung am POS
  • Mockup 6
    globus.ch als Terminal-Anwendung zur Verkaufsunterstützung am POS
  • Mockup 7
    globus.ch als Showroom-Anwendung zur Verkaufsunterstützung am POS

Eine gute Performance ist die Basis für das perfekte Kundenerlebnis

Um unseren Kunden das bestmögliche Einkaufserlebnis bieten zu können, haben wir bei der Auswahl der Technologien auf leistungsfähige Programmiersprachen und Frameworks gesetzt. Das Backend ist in der Programmiersprache Golang geschrieben, die sowohl sicher als auch sehr schnell ist. Das Frontend profitiert von einer Kombination aus React, Redux, Nextjs und Typescript, die es uns ermöglichte, eine schnelle, zukunftssichere und benutzerfreundliche Single-Page-Webanwendung zu entwickeln.

Schnelligkeit der Filter

Globus

Globus

Zalando

Zalando

Amazon

Amazon

Die Anzahl der Artikel im Shop hat sich seit dem Start verfünffacht. Der Produktkatalog «Service» ist mit über 350’000 Artikeln beim Thema Performance die grösste Herausforderung. Aber trotz dieser grossen Anzahl an Produkten lassen sich die Produktlisten im Globus-Onlineshop innerhalb von 80 Millisekunden filtern.

Horizontale Skalierbarkeit ist die Basis für nachhaltiges Wachstum

Der modulare Aufbau erlaubt es uns, den Shop nach Bedarf zu erweitern und so auf Nachfragespitzen zu reagieren. Auf diese Weise konnten wir im November und Dezember 2018 während der TV-Ausstrahlung der Globus-Weihnachtskampagnen und am Black Friday das Vierfache der sonst üblichen Besucherzahl und das Achtfache des regulären Bestellvolumens ohne Leistungseinbussen bewältigen.

“Echte Personalisierung funktioniert nur ohne Caches.”

Die persönliche Kundenansprache gehört bei Globus zum guten Ton – auch online. Darum werden – bei 500’000 Seitenaufrufen täglich – 450’000 Seiten personalisiert angezeigt. Basierend auf dem Nutzerverhalten werden auf den Produktseiten Empfehlungen angezeigt, die Produktkategorien werden nach den beliebtesten Marken sortiert und die Inhalte auf den Landingpages werden personalisiert.

Damit auf allen Seiten eine Personalisierung in Echtzeit möglich ist, haben wir die Architektur komplett ohne Cache aufgebaut. Werden Inhalte aber für jeden Nutzer individuell geladen, muss die Anwendung leistungsfähig genug sein, um diese in allen Bereichen in unter 200 Millisekunden auf dem Server zu rendern.

Verlässliche Release- und Deployment-Prozesse

Neben über 100’000 Besuchern im Globus-Onlineshop muss unsere Infrastruktur auch täglich über 1000 Globus-Mitarbeiter, die die Verkaufs-App nutzen, mit Inhalten versorgen. Ein ausfall- und störungsfreier Betrieb ist für uns daher essenziell. Zugleich wird die Globus-Crosschannel-Plattform fortwährend weiterentwickelt und es erscheinen wöchentlich neue Releases.

“Happy developers are motivated developers.”

Die Microservice-Architektur, basierend auf einem Kubernetes-Cluster und einer Multi-Node-Architektur im Backend, erlaubt es, dass neue Releases ohne Ausfallzeiten in die produktiven Systeme eingespielt werden. Ist nur ein bestimmter Microservice von einem Release betroffen, wird auch nur dieser aktualisiert. Durch die Umstellung von einem monolithischen Frontend auf einzelne Microserivce konnten wird die durchschnittlichen Deployment-Zeiten halbieren.

Des Weiteren können neue Funktionen bei einem Release unter realen Bedingungen getestet werden, denn die Kundenanfragen lassen sich über den vorherigen Release abwickeln, bis alle automatisierten Tests abgeschlossen wurden.

Speicherung von personenbezogenen Daten – sicher und schnell dank Hybrid-Cloud-Lösung

Cloud Lösung

Wir garantieren unseren Kunden, dass ihre persönlichen Daten bei uns in guten Händen sind. Deshalb werden alle personenbezogenen Daten im Rechenzentrum der Migros in einer sicheren Zone gespeichert und bleiben somit immer im Unternehmen.

Um trotzdem maximale Leistung, gute Verfügbarkeit und Skalierbarkeit zu gewährleisten, werden nicht schützenswerte Daten, wie etwa Produktinformationen und Website-Inhalte, in der Cloud gespeichert. Die Kommunikation zwischen den Services in der Cloud und im Rechenzentrum wird durch mehrere Schutzmechanismen wie C-Binding, Quota-Limitierungen und Firewalls gesichert.

globus.ch in Zahlen

665.981

Zeilen Go code

29

Entwickler

7

Geburten während der Entwicklung

128.615

Zeilen Javascript code

400%

Umsatzsteigerung seit Launch

103

Releases