Entscheidungen zur Architektur
Zunächst stand die Entscheidung an, ob wieder auf eine Standardplattform, wie beispielsweise Magento 2, oder auf ein individuell entwickeltes System gesetzt werden sollte. Um ausreichend Flexibilität hinsichtlich der Integration der verschiedenen OSV Applikationen zu haben und eine optimale Anbindung an das speziell auf das Verlagswesen zugeschnittene ERP-System zu schaffen, entschieden wir uns gemeinsam mit dem Kunden für eine individuelle Microservice-Architektur.
Produktmigration
Da die Daten bisher im alten ERP-System Klopotek bzw. dem Magento 1 Store vorlagen, wurden Importer für den Product- und Customer-Service entwickelt, um zum Start des neuen Onlineshops einmalig alle Daten zu migrieren.
Frontend
Es wurde ein modernes und responsives Frontend für den Onlineshop geschaffen. Dieses basiert auf Symfony und Twig und verwendet spezielle Caching Methoden, um eine optimale Performance leisten zu können und die Last auf die angebunden Services minimal zu halten.
Product Service
Dieser Service bietet eine umfangreiche Schnittstelle (API) und bildet das Produktdatenmodell von OSV optimal und individuell zugeschnitten ab. Die Produktdaten vom ERP-System “KNK Verlagssoftware” werden durchgehend synchronisiert und aufbereitet.
News Service
Es werden für das neue Frontend optimierte News aus dem CMS “Open Text” importiert und zur Verfügung gestellt.
Customer Service
Dieser Service beinhaltet alle OSV Kundendaten mit den entsprechenden Funktionen zur Authentifizierung und Autorisierung.
Shop Service
Die gesamte Business Logik für das Bestellmanagement wird von diesem Service verwaltet. Dies geschieht mit Hilfe von Komponenten des Frameworks Sylius.
Admin Service
Dabei handelt es sich um einen zum großen Teil automatisch generierten Service zur Verwaltung von Produkt-, Kategorie- und URL-Rewrite Daten. Der Service basiert auf React (bzw. React Admin) und kommuniziert direkt mit den anderen Services.
Category Service
Dieser Service ist für die Kategorisierung von Produkt- und weiteren Daten zuständig und stellt unter anderem den Navigationsbaum für das Frontend bereit.
Qualitätssicherung
Um die Funktionalität der verschiedenen Microservices gewährleisten zu können wurden diese vollständig automatisiert getestet und dem Deployment wurde eine umfangreiche CI-Pipeline vorgeschaltet. Alle Änderungen hinsichtlich Qualität, Funktion und Sicherheit werden durch die CI-Pipeline geprüft und anschließend werden die Services sowie Docker-Container automatisch gebaut und deployed.