PUBLIKATIONEN

Microservices im E-Commerce – alter Wein in neuen Schläuchen?

Derzeit wird viel über Microservices im E-Commerce gesprochen. Dies sei die einzige Chance, um in unserer technologiegetriebenen Branche am Ball bleiben zu können. Doch davon abgesehen, dass sicherlich jeder Online-Shop bereits seit langem Microservices einsetzt, ohne es sich bewusst zu machen, birgt diese vollmundig als Paradigmenwechsel angekündigte Neuausrichtung seiner IT-Struktur auch einige Nachteile.

banner-1711944_640

Microservices sind kleine Service-Programme, die einzelne Aufgaben im Gesamtprozess übernehmen. Diese Software kommunizieren dabei über standardisierte Schnittstellen (APIs). Vorteil dieser Tools ist die Aufteilung von Programmierarbeiten in kleinere Happen. So können Entwickler unabhängiger voneinander agieren, wodurch einzelne Funktionen, wie bspw. der Bestellprozess schneller realisiert, gewartet und online gestellt werden können. Insgesamt soll so der Gesamtprozess wesentlich schneller und effizienter umgesetzt werden.

Mehr Unabhängigkeit und skalierbarere Prozesse dank Microservices

Die Funktionen eines Online-Shops können so in viele kleine Module unterteilt werden. Diese beinhalten dann im Idealfall wiederum alle dafür benötigten Features. So können auch größere Projekte mit agilen Teams durchgeführt und technische Entscheidungen unabhängig von anderen Microservices (Modulen) getroffen werden.

Auch die Inbetriebnahme inkl. der Tests ist einfacher. Hinzu kommt, dass die Risiken der Produktivstellung geringer sind. Wenn es zu Fehlern kommt, fällt nur der betroffene Bereich aus und nicht das gesamte System, was wiederum Fehlersuche und -behebung effizienter macht.

Die Wartung wird also vereinfacht und auch generelle Änderungen oder Optimierungen sind zielsicherer zu realisieren. Letztlich kann auch die gesamte Funktion, der gesamte Microservice, vergleichsweise unkompliziert ersetzt oder neu geschrieben werden.

Dies ist in sog. Monolithen nicht so ohne Weiteres möglich. Hier entstehen im Laufe der Zeit, oft unbeabsichtigte, Abhängigkeiten zwischen Modulen. Dies macht das System starr, da sogar schon kleine Änderungen Auswirkungen auf die verschiedensten Bereiche des Systems haben. Am Ende bleiben Änderungsanforderungen auf der Strecke, da der Aufwand zu groß und die beteiligten Project Owner zu zahlreich werden.

Microservices dagegen haben explizite Schnittstellen, die nur über das Netzwerk angesprochen werden können. So schleichen sich kaum unbeabsichtigte Abhängigkeiten ein. Geht man davon aus, dass jede Software einmal runderneuert werden muss, spricht auch deshalb einiges für Microservices. Die Migration einzelner Komponenten ist da natürlich weniger kompliziert.

Wo Licht, da auch Schatten

Solche Programme haben also einige gewichtige Vorteile vorzuweisen. Doch wo viel Licht ist, findet sich bekanntermaßen auch reichlich Schatten. Die Tücke liegt dabei vor allem im Betrieb. Wie skizziert, ist jeder Microservice ein eigener Prozess. Sogar eine eigene virtuelle Maschine mit eigener Software, eigener Datenbank und ggf. sogar einem eigenen Betriebssystem. Dies bringt einige Komplexitäten mit sich.

Ein wichtiges Argument gegen den Einsatz von Microservices sind hohe Latenzzeiten, die in dieser Architektur üblicherweise vorkommen. Die Kommunikation verläuft über das Netzwerk, sprich: zwischen den oben erwähnten verschiedenen Maschinen. Diese Art der Kommunikation ist selbstverständlich deutlich langsamer als die Kommunikation zwischen Prozessen, die auf demselben Rechner laufen.

Auch die erwähnte technische Unabhängigkeit von Microservices kann zum Bumerang bzw. Nachteil tendieren. Beispielsweise, wenn eine hohe Wiederverwendbarkeit von Programmiercodes eine große Rolle spielt. Dadurch, dass die Teams isoliert arbeiten und gegebenenfalls unterschiedliche Technologien nutzen, sinkt die Wiederverwendbarkeit von Codierungen deutlich.

Nur mit den richtigen Leuten kann es klappen

Apropos Teams: Es genügt nicht, die technischen Herausforderungen meistern zu können. Hinzu kommt, dass die gesamte Organisationsstruktur angepasst werden muss. Es müssen neue Teams aufgebaut werden, die sich autonom mit den einzelnen Services beschäftigen und das entsprechende Know-how sowohl besitzen als auch weiterentwickeln. Diese müssen sich jedoch auch ständig austauschen und gegenseitig auf dem aktuellsten Stand ihrer Entwicklung halten.

Einen guten Vergleich, hinsichtlich Organisationsstruktur, bietet übrigens Alexander Graf von Kassenzone:

Wer ist schneller und effektiver beim Aufbau und der Skalierung neuer Modelle:

  1. Ein Konzern mit dutzenden Abteilungen und Direktionen die sich permanent abstimmen müssen, die in ihren Disziplinen aber jeweils extrem gut sind.
  1. Ein Unternehmen bei dem bis zu 100 Mitarbeiter in einem Raum sitzen und alle wissen was gerade passiert und alle miteinander reden.

Schneller ist 2), da müssen wir nicht groß diskutieren. Bei großen Modellen bei der es um die Skalierung eines eher gleichbleibenden Ansatzes geht, ist 1) allerdings besser.

Die Frage ist nur, welche Unternehmen verfügen über genügend Team-Mitglieder die „extrem gut“ sind.

Microservices sind kein Allheilmittel

Vor dem Paradigmenwechsel sollte man also sehr genau Kosten und Nutzen beim Umstieg auf Microservices abwägen. Nach Meinung von Martin Fowler, einem Veteran der Softwarearchitektur, drängt die Aufsplittung der Produktivität Kosten auf, die nur in komplexeren Systemen wieder wettgemacht werden können. Wenn man aber der Komplexität des Systems auch mit einer monolithischen Architektur beikommen kann, soll man besser auf eine Umstellung verzichten.

Entwickler möchten immer die neueste Technologie nutzen

Als Entscheider sollte man sich auch vor Augen halten, dass CTOs und Entwickler natürlich am liebsten die neueste Programmiersprache nutzen und dem aktuellsten Entwicklungstrend hinterherlaufen. Einerseits aus deren Interesse an Neuem und weiterhin die Chance, etwas auszuprobieren bzw. zu verstehen, wie etwas funktioniert. Das sind schließlich wichtige Eigenschaften von Entwicklern. Dieser Forscherdrang muss nur in die richtigen Bahnen gelenkt bzw. „kontrolliert“ werden. Ein weiterer Punkt ist reines Statusdenken. Schließlich ist es deutlich hipper, bei den neuesten Trends in dieser Branche immer ganz vorne dabei zu sein.

Microservices sind schon lange üblich

Aber die gute Nachricht ist, dass sicherlich jeder Online-Shop bereits seit langem Microservices im Einsatz hat. Sei es die Suchfunktion im Shop, die über einen externen Anbieter wie FACT-Finder oder Findologic läuft, oder das Gütesiegel von Trusted Shops, die Bonitätsprüfung und Anbindung an einen Payment Provider, das Plug-in für Personalisierung oder, oder, oder …

Gerne unterstützen wir auch Sie, bei der Entscheidung was die richtige Strategie für Ihre IT-Struktur ist. Wir können hier auch völlig unabhängig von unserem Agenturgeschäft als Berater fungieren.

Sprechen Sie uns einfach an. Wir stehen für ein unverbindliches Erstgespräch gerne für Sie bereit.

Telefon: 089 23 23 92 94 0

Links

Bild

  • CC0 Public Domain pixabay, PeteLinforth

Schreibe einen Kommentar

Ähnliche Artikel
Kontakt