Automatisierung von Code-Upgrades in Spryker CI

Anspruchsvolle DevOps-Automatisierung für Spryker-Kunden
19.09.2023

Spryker ist die führende Composable-Commerce-Plattform für Unternehmen mit anspruchsvollen Geschäftsmodellen – sie fördert Wachstum, Innovation und Differenzierung. Speziell für komplexe Transaktionsgeschäfte entwickelt, bietet Spryker mit seinem benutzerfreundlichen Headless-API-First-Modell einen Best-of-Breed-Ansatz, der Unternehmen die Flexibilität bietet, sich anzupassen, zu skalieren und ihre Produkte rasch auf den Markt zu bringen. Gleichzeitig ist ein schnelleres Time-to-Value hin zur digitalen Transformation möglich. Als global führende Plattform für B2B- und B2C-E-Commerce-Marktplätze, Thing Commerce und Unified Commerce hat Spryker bereits mehr als 150 Unternehmen weltweit unterstützt und genießt das Vertrauen
von Marken wie ALDI, Siemens, Hilti und Ricoh. Spryker wurde von Gartner® als „Visionary in Digital Commerce“ im 2022 Magic Quadrant™ anerkannt und zudem als „Strong Performer“ in The Forrester Wave™ eingestuft: B2B Commerce Solutions, Q2 2022. Spryker ist ein privates Technologieunternehmen mit Hauptsitz in Berlin und New York.

Zusammenfassung

Spryker bietet mit dem Commerce OS einen Webshop als Plattform-as-a-Service+ (PaaS+) der nächsten Generation, die Implementierungen ihrer Kunden hostet und bereitstellt. Allerdings ist die Plattform, ein Headless-Webshop mit Trennung zwischen Front- und Backend, von Drittanbietern abhängig und muss daher gewartet und aktualisiert werden.

Um dies zu vereinfachen, hat Spryker sein PaaS±Angebot um den Spryker Code Upgrader, powered by Spryker CI, erweitert. Dieses zeitsparende Tool macht Upgrade-Vorschläge und führt Code-Upgrades für das Code-Repository des Kunden durch. Unterstützt werden Repositories, die auf Github oder Gitlab gehostet werden.
Spryker CI und Spryker Code Upgrader beschleunigen die Weiterentwicklung des Geschäftsbetriebs, indem sie einen nahtlosen Prozess mit kontinuierlichen Upgrades des Spryker Commerce OS ermöglichen. Dies bietet mehrere Vorteile:

  1. verbesserte Code-Qualität,
  2. optimierte Upgrades:

a) Spryker führt automatisierte und halbautomatisierte Upgrades durch und reduziert so den Aufwand und die Kosten von Upgrades.

b) Die Upgrades umfassen Minor- und Patch-Releases von Spryker-Modulen, wenn folgende Anpassungsstrategien verwendet werden: “Configuration”, “Plug and Play” und “Project Modules”). Dabei werden keine Änderungen am benutzerdefinierten Projektcode vorgenommen.

Dies entspricht der Spryker-Vision einer effektiven und effizienten Methode, die sicherstellt, dass die Spryker-Geschäftslösungen kontinuierlich auf dem neuesten Stand sind, sodass sich der Kunde auf die Weiterentwicklung seines Geschäftsbetriebs konzentrieren kann – und nicht auf die Wartung seines Systems.

Auch zukünftige Versionen von Sprykers CI werden auf die Bereitstellung von Selfservice-Funktionen fokussiert, die es dem Kunden ermöglichen, seinen Shop an die benötigten Funktionalitäten anzupassen.

Das Problem

Oft werden Upgrades versäumt, da die unmittelbaren Kosten und der manuelle Aufwand dafür gescheut werden. Zudem müssen Upgrades mit jeder Benutzerimplementation getestet werden, um zu verhindern, dass die Anwendung geschädigt wird. Andernfalls könnten Sicherheitspatches und möglicherweise sogar notwendige Funktionen fehlen.

Ein weiteres Problem sind Code-Änderungen durch Kunden, die nicht mit dem Ökosystem von Spryker harmonisieren, was zu technischen Problemen bei der zukünftigen Wartung führen kann.

In der Praxis entstehen zusätzliche Schwierigkeiten: Kunden des Spryker Cloud-Service haben nur geringe Kenntnisse des CI/CD-Prozesses der Anwendung. Dies kann dazu führen, dass sie bei Spryker anfragen, wann eine Korrektur zu erfolgen hat und damit den Support zusätzlich belasten.

Die Lösung

Spryker PaaS+ und Spryker Code Upgrader ermöglichen Kunden einen Prozess kontinuierlicher, störungsfreier Upgrades in der Spryker-Cloud. Dieser Prozess deckt den gesamten Ablauf ab – beginnend damit, dass der Code in ein Repository gepusht wird, bis hin zum Deployment mit der AWS CodePipeline.

Um dies zu erreichen, erhält jeder Kunde vordefinierte CI/CD-Pipelines, die in seinem eigenen Workplace gespeichert sind. Sie werden von Buddy unterstützt. Dieser Service bietet eine Benutzeroberfläche für die Erstellung von CI/CD-Pipelines und umfasst zahlreiche Aktionen.

Spryker Case CI/CD graph 1

Der Spryker Code Upgrader im Arbeitsbereich wird standardmäßig jede Woche ausgeführt, kann aber je nach Kundenbedarf konfiguriert werden. Wenn ein Upgrade verfügbar ist, wird ein Pull Request (PR) auf Github oder ein Merge Request (MR) auf Gitlab erstellt. Der Benutzer muss diese nur noch genehmigen, falls gewünscht. Es gibt auch eine Funktion, mit der jeder PR und MR automatisch genehmigt wird, ohne dass der Benutzer eingreifen muss.

Die Spryker-CI-Integration ist auf der Basis von Terraform entwickelt worden.

Das Ergebnis

Unternehmen besitzen erst dann eine leistungsfähige Shop-Plattform genießen, wenn diese reibungslose DevOps-Automatisierung ermöglicht. Sprykers PaaS+ zielt darauf ab, automatisierte CI/CD-Workflows bereitzustellen, die es Kunden ermöglichen, ihre Spryker-Lösungen kontinuierlich zu integrieren und bereitzustellen.
Spryker-Kunden können ihre Anwendungen nun direkt und im Self-Service über Spryker CI bereitstellen.

Diese Lösung bietet:

  • eine herausragende digitale Benutzerfahrung,
  • Sichtbarkeit und Kontrolle über CI/CD-Prozesse,
  • CI-Funktionen, da der Code des Kunden auf Übereinstimmung mit den Best Practices von Spryker und PaaS-Kompatibilität geprüft wird.

Spryker CI und Spryker Code Upgrader ermöglichen es den Spryker-Kunden, selbstständig zu arbeiten – somit müssen Spryker-Ingenieure seltener kontaktiert werden. Dies resultiert in einem geringeren Upgrade- und Wartungsaufwand; zudem können neue Versionen oder Korrekturen einfacher übernommen werden.