Microservices-Architektur liefert geschäftliche Agilität

By Richard Jones, Richard Jackson, Brett Lawrence

Die Microservices bringen Skalierbarkeit und Flexibilität in die Kernsysteme der Handelsunternehmen. Aber was genau sind diese Dienste? Und warum ist die Investition in die technische Architektur so wichtig für das Überleben? Das erfahren wir in diesem Leitfaden zur Architektur von Microservices.

Was ist eine Architektur für Microservices?  

Eine Microservice-Architektur ist eine Architektur, bei der die Funktionalität und Daten einer Anwendung als eine Sammlung von unabhängigen, aber lose gekoppelten Geschäftskomponenten oder -diensten strukturiert sind. 

Diese in sich geschlossenen Services oder Komponenten haben in der Regel einen einzigen Zweck. Sie sind lose gekoppelt und kommunizieren miteinander unter Verwendung einer gemeinsamen Sprache - in der Regel Application Programming Interfaces (APIs).

Ein 3-minütiger Guide über Microservices von Inviqas CTO Richard Jones

Da diese individuellen Anwendungen gering sind, können sie von verschiedenen Teams entwickelt, verwaltet und unabhängig voneinander skaliert werden, so dass ein flexibles Softwaresystem entsteht, das eine kontinuierliche Bereitstellung und Implementierung unterstützt.

Sie sind einfach zu warten und durch Alternativen zu ersetzen, ohne die gesamte Anwendung zu unterbrechen (solange der API-Vertrag eingehalten wird). Und da sie in verschiedenen Programmiersprachen geschrieben werden können, können Sie eine Sprache auswählen, die für die jeweilige Aufgabe am besten geeignet ist.

Der konventionelle Ansatz besteht darin, Anwendungen zu haben, die viele Dinge innerhalb einer einzigen, monolithischen Plattform erledigen, wobei sich alle Funktionen in derselben Codebasis befinden. Dies verlangsamt Releases dramatisch, da die gesamte Anwendung neu getestet werden muss, wenn ein einzelner Teil davon verändert wird.

Der monolithische Ansatz hat bei vielen Unternehmen sehr gut funktioniert (einschließlich uns selbst; wir arbeiten seit mehr als zehn Jahren mit Magento und Drupal). 

Aber dieser Ansatz hat auch Nachteile: die wichtigsten sind Skalierbarkeit und Komplexität. Denn wenn man auch nur einen kleinen Teil der Funktionalität skalieren will, muss man alles skalieren. 

Eine monolithische Plattform ermöglicht es nicht, eine bestimmte Komponente, die zusätzliche Leistung benötigt (z.B. die Preis- und Steuerkomponente in einer E-Commerce-Plattform), zu skalieren. Stattdessen müssen Sie die gesamte Anwendung durch Steigerung der Serverkapazität skalieren.

Wenn Sie irgendeinen Aspekt des Codes ändern möchten, könnte es an anderer Stelle in der Anwendung zu unerwarteten Folgen kommen. Dies führt zu massiven und langen Testzyklen.

Wenn Ihre Systeme eng miteinander verbunden sind, wie es bei monolithischen Anwendungen normalerweise der Fall ist, kann es arbeits- und kostenintensiv sein, Änderungen an Ihren digitalen Produkten und Dienstleistungen vorzunehmen.

Aber durch die Entkopplung Ihres Technologie-Stacks und die Einführung von Microservices ist es einfacher, schnelle Produktänderungen vorzunehmen, einzelne Services isoliert zu skalieren und Innovationen zu unterstützen.

Illustration of a monolithic technical architecture

Oben: ein Beispiel für eine traditionelle (monolithische) Architektur

Illustration of a decoupled, components-based architecture

Oben: Ein Beispiel für eine Microservices-Architektur

Können Microservices mit monolithischen Plattformen verknüpft werden?

Auf jeden Fall! Bei Inviqa arbeiten wir zum Beispiel immer noch mit traditionellen, "monolithischen" Plattformen, aber wir trennen die Schlüsselfunktionalität, wenn es ganz besondere Anforderungen in Bezug auf Umfang oder Komplexität gibt, die eine Microservice-Architektur erfordern.

Sagen wir, Sie haben zum Beispiel ein System mit einem Engpass, der die Anwendung in einem anderen Bereich verlangsamt - zum Beispiel komplexe Preisgestaltung oder Bestandsberechnung. Wir können diese spezifische Funktion in einen Microservice verlagern. D.h. Sie isolieren diese Anforderung von der Hauptanwendung so, dass sie bei Bedarf unabhängig skaliert werden kann.

Dieser Ansatz gibt Unternehmen mehr Flexibilität und Agilität. Es ermöglicht die Aufteilung einer Funktion oder den Ersatz eines Microservices, ohne dass die gesamte Organisation neu strukturiert werden muss.

Und wenn Ihr Ansatz zur Nutzung von Microservices ausgereift ist, sind Sie in der Lage, Ihre Kernplattformen auf mehrere Dienstleistungen aufzuteilen. Und diese Dienste können wiederum von kleineren, engagierten Teams mit einem stärker fokussierten Fachwissen verwaltet werden.

Welche Handelsunternehmen sollten diesen Ansatz in Betracht ziehen?

Eine Microservice-Architektur ist ideal für Handelsunternehmen, die mit großen, monolithischen Systemen belastet sind und dringend eine flexible, skalierbare Technologie benötigen. Diese ermöglichen es ihnen, mit den sich ändernden Kundenerwartungen und Märkten Schritt zu halten.

Eine gute Lösung für Unternehmen, die sich mit einer Anbieterabhängigkeit konfrontiert sehen, aber in der Lage sein müssen, Systeme ein- und auszutauschen, um sich ändernde Märkte und Kundenanforderungen zu bewältigen.

Um dies besser zu erklären, setzen wir uns damit auseinander, warum viele Einzelhändler überhaupt mit solchen Altsystemen arbeiten.

Traditionelle Anbieter von E-Commerce-Plattformen haben sich in der Regel darauf konzentriert, eine möglichst umfassende Suite von Funktionen aufzubauen, entweder in der Kernplattform oder als Teil eines Ökosystems von komplementären Produkten und Dienstleistungen. Alle branchenführenden Funktionen, unter einem Dach, von einem Anbieter.

Lösungen wie Hybris (jetzt SAP Commerce), ATG (jetzt Oracle Commerce) und IBM Websphere haben bei größeren Unternehmen, die ihr Publikum online ansprechen wollen, erheblich an Attraktivität gewonnen.

Und es sind weitere wichtige Akteure wie Salesforce und Adobe hinzugekommen, die eine ähnliche Auffassung vertreten: viele Dienstleistungen und Funktionen von einem einzigen Anbieter.

Dieser Ansatz kann der Branche von Nutzen sein. Für spezifische Branchen bietet ein "All-in" mit einem Anbieter Bequemlichkeit, ein gewisses Maß an Stabilität und Einfachheit. Es führt zu einer gewissen Abhängigkeit von dem gewählten Anbieter (je nach Standpunkt und Umständen ein Vorteil oder Nachteil).

Aber bei jeder groß angelegten, unternehmensrelevanten Lösung ist es von entscheidender Bedeutung, die technische Belastung durch Modernisierung, Verbesserung und Weiterentwicklung des Systems zu verringern. Unter den heutigen brachialen Handelsbedingungen ist die Fähigkeit, sich schnell anzupassen, eine Frage von (kommerziellem) Überleben.

Unternehmen, die in hohem Maße von großen, unflexiblen, monolithischen Lösungen abhängig sind, haben also eine schwierige Wahl zu treffen: Entweder sie verpflichten sich zu einer umfangreichen, riskanten Investition in die Umstellung auf eine alternative Lösung oder sie machen weiter wie bisher und riskieren, zu einem technologischen Dinosaurier zu werden.

Tatenlosigkeit oder Handlungsunfähigkeit geben Handelsunternehmen Angriffsfläche für schnellere, agile Konkurrenten, die frei von technischen Verbindlichkeiten oder der Abhängigkeit von großen, monolithischen Lösungen sind.

Aber die enormen Kosten und Risiken, die mit dem Übergang zu einer neuen, zeitgemäßen Lösung verbunden sind, sind entmutigend.

Microservices können für Handelsunternehmen, die mit diesem Dilemma konfrontiert sind, von großem Nutzen sein. Eine Architektur für Microservices ermöglicht es ihnen, ihre digitalen Produkte und Dienstleistungen flexibel zu gestalten und Änderungen schnell und nachhaltig umzusetzen.

Was sind die Geschäftsfaktoren für Microservices?   

In der Vergangenheit wurde die Verwendung einer Monolith-Lösung als "sichere Investition" betrachtet - ein einziger, gut etablierter und vertrauenswürdiger Partner, dessen unmittelbare Lösungen und dessen Roadmap in der Lage wären, Ihre Geschäftsinitiativen zum größten Teil zu unterstützen. Nur gelegentlich ist eine maßgeschneiderte Entwicklung erforderlich, um diese nach genauen Anforderungen zu modifizieren.

Sollten Handelsunternehmen jedoch versuchen, sich von der Masse abzuheben und ihrem Kundenstamm eine unterschiedliches Produkt- bzw. Dienstleistungsangebot zu präsentieren, bringt die Einführung von Microservices eine Reihe kommerzieller Vorteile mit sich. Sie ermöglichen Unternehmen, ihren Wettbewerbsvorteil weiter auszubauen.

Ein auf Microservices basierender Ansatz bietet Flexibilität, die es Unternehmen ermöglicht, schnell auf die sich ändernden Anforderungen ihrer Kunden reagieren zu können.

So können Piloten gestartet, Annahmen getestet und daraus schnell Erkenntnisse gewonnen werden. Wenn sich die Anforderungen und Erwartungen ändern, können neue Dienste übernommen oder bestehende ersetzt werden, ohne dass die gesamte Lösung entsorgt oder stark angepasst werden muss. 

Die unabhängige Bereitstellung ist das Kernstück eines Microservices-Ansatzes. Dies führt in der Regel zu schnelleren und sichereren Upgrades und geringeren Ausfallzeiten. Unternehmen werden dabei unterstützt, die Markteinführung neuer Funktionen oder Angebote deutlich zu beschleunigen.

Nicht alle Unternehmen werden im gleichen Maße risikobereit sein. Genauso wird die Risikoeinschätzung in den einzelnen Unternehmen unterschiedlich sein. Glücklicherweise ermöglicht die Nutzung von Microservices es den Unternehmen, Risikoprofile auf einer granularen Ebene (Geschäftsfunktion) anzuwenden und größere Risiken zu akzeptieren, wo sie es für angebracht halten. 

Wenn es beispielsweise um Betrugsprävention oder CRM geht, kann sich ein Unternehmen für eine Lösung mit ausgereiften Produkten und einer überzeugenden Erfolgsbilanz entscheiden. Ein "riskanterer" Branchenneuling könnte hingegen für seine Recommendation Engine oder sein CMS ausgewählt werden, weil dieser innovativere Funktionen anbieten kann. 

Auf diese Weise ist es möglich, sich vor Neugründungen und Störern zu schützen. Diejenigen, die an Monolithen gebunden sind, können dies nicht. 

Microservices vereinfachen, das optimale Tool für die Aufgabe auszuwählen. Besser als eine Lösung einzusetzen, die zufällig als Teil einer größeren Unternehmenslösung zur Verfügung steht. 

Auf diese Weise können Dienstleistungen ausgewählt werden, die zu den Erfahrungen des Teams, seinen Arbeitsmethoden und letztlich zu seinen alltäglichen und strategischen Bedürfnissen passen.  Dieser Ansatz ist effizienter, anstatt einen Kompromiss eingehen zu müssen. 

Darüber hinaus haben Unternehmen durch die organisatorische Anpassung der Unternehmensbereiche die Möglichkeit, einzelne Dienstleistungen zu "übernehmen". Sie sind in der Lage, Leistungszentren zu schaffen, in denen der Schwerpunkt auf der Ausarbeitung von bewährten Methoden, der Produktentwicklung und Funktionsverbesserung liegt, die auf Wachstums- und Effizienzinitiativen ausgerichtet sind.

Wie wird eine Microservice-Architektur eingeführt?  

Das Reizvolle an Microservices ist, dass sie es Handelsunternehmen ermöglichen, das Risiko und den Umfang eines E-Commerce-Migrationsprojekts zu reduzieren, indem sie die Gesamtlösung als eine Reihe separater Komponenten betrachten. Das Unternehmen ist in der Lage, das Altsystem mit einem Feature nach dem anderen anzugehen, anstatt es als eine einzige, enorme, komplexe und unteilbare Einheit zu betrachten.

Wie bei jedem anderen E-Commerce-Projekt sollte der Übergang zu einer Microservices-Architektur zuallererst im Hinblick auf die Rentabilität betrachtet werden.

Ihr digitaler Partner sollte mit Ihnen zusammenarbeiten, um den Funktionen, die Sie migrieren oder implementieren möchten, einen kommerziellen Wert zuzuschreiben. Und dann sollten diese nach Priorität geordnet werden, um einen maximalen Wert für das gegebene Budget zu gewährleisten.

Das bestehende, monolithische System sollte als eine Gesamtheit von Services betrachtet werden, von denen jede ihre eigene wirtschaftliche Relevanz hat. Das hilft uns, mit der Migration von Funktionen zu beginnen, wobei wir uns auf einzelne Bereiche konzentrieren, die den größten Nutzen bringen werden.

Nehmen Sie die standardmäßige E-Commerce-Warenkorbfunktion als Beispiel. Durch die Einführung der Microservices wie z.B. commercetools ist es möglich, die betreffende native Funktion (in diesem Fall den Warenkorb) von der monolithischen Anwendung zu entkoppeln und stattdessen dem Microservice die Verantwortung für diese Funktion zu übertragen. 

Denken Sie daran, dass die Migration zu einer Microservice-Architektur ein fortlaufendes, kontinuierliches Projekt ist. Sie implementieren jeweils eine Komponente oder ein Feature und blenden den Vorläufer nach und nach aus, bis von der bisherigen Lösung nur noch wenig oder gar nichts mehr übrig ist.

Welche Cloud-Commerce-Tools unterstützen diesen Ansatz?  

commercetools und andere Cloud-basierte E-Commerce-Software, die sich auf APIs und Microservices konzentriert, bietet der Branche eine wirklich neue und effektive Alternative zur traditionellen "All-in-One"-E-Commerce-Replattform, mit allen damit verbundenen Herausforderungen. 

Auf der grundlegendsten Erklärungsebene ist commercetools eine Abfolge von API-Endpunkten, die in einer Vielzahl von Programmiersprachen eingesetzt werden können.

Die Vorteile dieses Ansatzes sind eindeutig:

  • Kleinere Komponenten können je nach Bedarf eingeführt und individuell skaliert werden.
  • Migration und Entwicklung ist wirklich iterativ, was die Tests kompakter und überschaubarer macht.
  • Die Abhängigkeit von einem einzigen Anbieter wird reduziert  (allerdings ist eine umfangreichere Verwaltung zu erwarten, da mehr Partner / Technologien in die Gesamtlösung einbezogen würden).
  • Tools wie commercetools und BigCommerce sind sprachunabhängig, so dass Sie die beste Variante für die jeweilige Aufgabe auswählen können.
  • Flexibilität ist gewährleistet, da es einen geringeren Grad an Anbieterabhängigkeit gibt, indem die Verantwortung für die betreffende Lösung auf mehrere Anbieter/Dienste verteilt wird.

Zusammenfassung

Viele Handelsunternehmen sind mit veralteten Systemen konfrontiert. Diese erschweren den Unternehmen, sich mit den sich ändernden Geschäfts-, Markt- und Kundenanforderungen weiterzuentwickeln. Ein "Re-Plattforming" kann jedoch kostspielig und komplex sein und erfordert, dass die Elemente Ihrer Altsysteme, die tatsächlich funktionieren, neu programmiert werden müssen.

Eine Microservices-Architektur kann eine ideale Lösung für diese Herausforderung sein, indem sie es Handelsunternehmen ermöglicht, Flexibilität und Skalierbarkeit in ihre Kernsysteme zu bringen. Diese unterstützt eine beliebige Anzahl von APIs und Systemen von Drittanbietern. 

Dadurch, dass sich engagierte, qualifizierte Teams um bestimmte Dienstleistungen in einem System bilden können, geht es bei Microservices letztlich darum, Innovation zu einer Lebensform zu machen - etwas, das im heutigen schwierigen Einzelhandelsklima der Schlüssel zum Überleben ist.

Über die Autoren 

Richard Jackson, Managing Director: Retail bei Inviqa

Richard hat große Handelsunternehmen zu kommerziellem Erfolg geführt. In seiner derzeitigen Position verwaltet er das Retail-Portfolio von Inviqa und ermöglicht es den Unternehmen, komplexe Geschäfts- und Kundenanforderungen mit E-Commerce-Plattformen zu erfüllen, die einen nachhaltigen ROI erzielen.

Richard Jones, Head of Product & Innovation bei Inviqa

In seiner derzeitigen Rolle ermöglicht Richard führenden Medien- und Unterhaltungsmarken, ihre Inhaltsstrategien zu definieren und unternehmensweite Technologiearchitekturen zu entwickeln, die Transformation und Innovation in großem Maßstab unterstützen.

Brett Lawrence, Direktor Business Consultancy bei Inviqa

Brett Lawrence verfügt über 20 Jahre Erfahrung in der Zusammenarbeit mit führenden Einzelhandels- und Unterhaltungsunternehmen. Bei Inviqa hilft Brett seinen Kunden, komplexe geschäftliche Herausforderungen zu lösen, ihre Strategien zu entwickeln, ihre digitalen Angebote zu erweitern und eine positive Kapitalrendite sicherzustellen.