Smartstore als Modules & Microservices-Architektur
Montag, 6. Januar 2020

Smartstore als Modules & Microservices-Architektur

Microservices stellen ein Architekturmuster in der Informationstechnik dar, welche eine komplexe Anwendungssoftware aus mehreren unabhängigen Prozessen zusammenstellen, die mit sprachunabhängigen Programmierschnittstellen untereinander kommunizieren. Außerdem sind die Dienste weitgehend entkoppelt und erledigen immer eine kleine Aufgabe. Dies ermöglicht einen modularen Aufbau der Anwendungssoftware. https://de.wikipedia.org/wiki/Microservices 

Wenn Sie sich mit der Thematik „Microservices-Architektur“ in Kombination mit Smartstore beschäftigen, spielt auch die Frage eine Rolle, ob Sie und Ihr Business für eine Microservices-Architektur infrage kommen. Wir denken, dass diese Art der Orchestrierung erst dann Sinn macht, wenn Ihr Unternehmen eine gewisse Größe und Komplexität aufweist und Sie diese auch online umsetzen müssen.  

Microservices zielen darauf ab, komplexe Anwendungen durch Dezentralisierung (Stichwort: Cloud) und Autonomiemaximierung individuell und leichter skalierbar, wartbar und erweiterbar zu machen. Was als Monolith nur schwer zu managen ist oder wäre, wird durch Microservices besser nutzbar und adaptierbar. Jeder (Micro-)Service erfüllt im Sinne der fachlichen Logik dabei genau eine Funktion. Die wichtigsten Gründe, sich für Microservices zu entscheiden, sind: große Komplexität, hoher Innovationsbedarf und auch die Notwendigkeit, eine Anwendung skalierbar und beherrschbar zu machen.  

Ein Beispiel: Smartstore liefert Ihnen das Plugin „MegaSearch“, um Ihre große Sortimentspalette und Produktvielfalt beherrschbar zu machen. Und wenn Sie diese Art der Suche nicht überzeugt, können Sie sie beliebig erweitern oder natürlich auch gegen eine andere am Markt erhältliche oder selbstentwickelte Lösung austauschen.  

Was macht die Microservices-Architektur aus und brauche ich diese?
Beim Einsatz von Microservices arbeiten im Gegensatz zum Monolithen viele Bausteine unabhängig voneinander. Diese Architektur bringt einige Vorteile mit sich:

  • Optimierte Organisation: Die Funktion jeder Komponente ist klar abgegrenzt von den Aufgaben anderer Module. Dies verhindert Überschneidungen und verbessert auch die gesamte Organisation.
  • Entkopplung: Autonome Einheiten können Sie einfacher neu konfigurieren, um auch unterschiedliche Anforderungen angemessen zu erfüllen. Darüber hinaus können Sie einzelne Funktionen, wenn sie dringend benötigt werden, auch besonders schnell in Kraft setzen.
  • Gute Performance: Abhängig davon, wie gut die Microservices strukturiert und organisiert sind, wird eine gute Performance ebenfalls gefördert. Damit ist es z.B. möglich, bei Bedarf einzelne Komponenten isoliert zu skalieren.
  • Weniger Fehler: Zwischen den einzelnen Microservices gibt es Grenzen. Und so sind auch Fehler auf einzelne Komponenten beschränkt.

Dennoch gibt es im Hinblick auf Microservices auch einige Nachteile zu beachten:

  • Es besteht ein größerer operativer Aufwand: Da Microservices meistens unabhängig voneinander deployt werden, erhöht sich auch der Abstimmungsaufwand.
  • Berücksichtigung von Querschnittsthemen: Natürlich gibt es in allen auf Microservices basierenden Anwendungen auch übergreifende Anforderungen. Um diesen gerecht zu werden, müssen entweder Querschnittskomponenten erstellt werden oder auch erhöhter Aufwand in Kauf genommen werden (beispielsweise bei Testphasen).

Ok. soweit verstanden, aber was hat es mit dieser monolithischen Architektur auf sich?
Monolith kommt aus dem Altgriechischen und bedeutet so viel wie (großer) einheitlicher Stein. Solche monolithischen Anwendungen bestehen aus einer einzigen Einheit, wo sämtliche Funktionalitäten integriert sind. Sie lassen sich nur schwer durch Dritt-Systeme erweitern, was zwar Vorteile, aber auch einige Nachteile mit sich bringt:

Die Vorteile im Rahmen einer Monolithischen Anwendung:

  • Leichtere Handhabung von Querschnittsthemen: Die meisten Anwendungen müssen neben ihrer eigentlichen Funktion auch eine Menge übergeordneter Aufgaben und Bestimmungen erfüllen – z.B. im Hinblick auf Sicherheitsfunktionen oder Datenprotokolle. Dadurch, dass alles über eine einzige Anwendung läuft, ist es auch einfacher, die einzelnen Programmteile an die globalen Richtlinien anzupassen.
  • Bessere Performance: Oftmals ist die Performance der Programme besser, da ein Shared-Memory-Access schneller abläuft als modular aufgebaute Interprozesskommunikation (IPC).
  • Geringerer operativer Aufwand: Wenn nur eine einzige Anwendung existiert, muss auch nur diese getestet, kontrolliert und gewartet werden. Darüber hinaus ist das Deployment ebenfalls weniger komplex.

Diesen Pluspunkten stehen jedoch auch Nachteile gegenüber:

  • Hohe Komplexität: Monolithisch aufgebaute Programme sind vielfach schwer zu verstehen und managen, da bei vielen Funktionen Abhängigkeiten und Nebeneffekte vorkommen.
  • Enge Verflechtung: Die einzelnen Programmteile sind fest miteinander verbunden. Je weiter die Entwicklung der Anwendung vorankommt, desto komplizierter und aufwendiger wird es auch, einzelne Teile davon zu isolieren, um sie beispielsweise gesondert zu skalieren oder den Code zu warten.
Verstanden, ist Smartstore nun eine auf Microservices basierende Lösung? 
In erster Linie ist Smartstore eine sogenannte Open-Source-Anwendung. Man kann an dieser Stelle aber auch von einer Modular Monolithische Architektur sprechen die Microservices nutzt. Denn einzelne Dienste oder Plugins können in diesem Zusammenhang durchaus als Microservices betrachtet werden. Wenn man also die von uns bereitgestellten Smartstore Enterprise Commerce Open Source Edition https://bit.ly/3953Tvy nutzt, kann man auf alle Fälle Microservices-basierende Dienste in Anspruch nehmen und ggfs. wie gewünscht erweitern. Außerdem bieten wir Ihnen eine Middleware zum Zwecke einer schnellen und reibungslosen Integration von externen Systemen, um Kosten und Entwicklungszeit zu reduzieren. Lesen Sie dazu unseren Blogbeitrag: Smartstore ETL, Ihr Autopilot für Data Warehousing nach ISO 9001, https://bit.ly/39i5Chl  

Alles klar. D.h. Smartstore ist schon aufgrund seiner Architektur keine monolithische Anwendung?
Nein, das ist sie auf keinen Fall. Smartstore haben wir von Anfang an eben genau deswegen modular aufgebaut, um Ihnen grenzenlose Skalierbarkeit sowie uneingeschränkte Agilität und Flexibilität zu ermöglichen. 

Kann ich Smartstore in Verbindung mit Visual Studio in eine zu 100 Prozent auf Microservices basierende Lösung umwandeln?
Auf jeden Fall geht das! Und genau diesen Ansatz verfolgen wir auch mit unserer „Smartstore Enterprise Commerce Open Source Edition“, auch kurz „Smartstore Enterprise Commerce OS“ genannt https://bit.ly/3953Tvy. Damit können Sie alle Geschäftsprozesse in Ihrem Unternehmen abbilden und umsetzen. Wenn Sie Ihre Commerce-Prozesse von Grund auf modular und variabel kompatibel gestalten möchten, kommt Ihnen Smartstore Enterprise Commerce OS entgegen: Dieses können Sie nämlich genau dort nutzen, wo Sie in der Vergangenheit verhindert waren – vielleicht wegen der Lizenzierung der Komponenten, aufgrund proprietärer Lösungen oder auch wegen des monolithischen Ansatzes. So können Sie leichter neue, notwendige Wege zur Nutzung der Daten und Dienste Ihrer Anwendung entwickeln – ganz gleich, ob dies innerhalb oder auch gegebenenfalls von außerhalb Ihres Unternehmens geschieht.

Ein Beispiel: Da Smartstore als .NET Software mithilfe von Visual Studio entwickelt wird, ist es ein Leichtes bestehende Microservices, wie zum Beispiel einen der Cognitiven Services von Microsoft Azure, mithilfe von NuGet-Paketen in Smartstore zu intergieren. Laden Sie das gewünschte Paket mit nur wenigen Klicks in Visual Studio herunter und binden Sie es ohne Aufwand in Ihr Projekt ein.

Durch die offene und modulare Architektur der Smartstore Plattform ist es möglich Microservices einzubinden, sowie Erweiterungen oder Veränderungen durchzuführen, ohne den Programmkern zu modifizieren. So bleiben Änderungen am Code auch bei zukünftigen Updates erhalten.

Ist es dann so, dass Smartstore in Kombination mit der Microsoft .NET Microservices-Architektur zu einer Plattform und Infrastruktur wird?
Ja, genau so ist es. Die Optionen, die Sie in Kooperation mit Smartstore und Microsoft Azure Kubernetes Service (AKS) für Ihre Geschäftsprozesse erhalten, vergrößern Ihre Chance, endlich die angestrebten innovativeren Geschäftsmodelle zu realisieren. Und ganz gleich, ob Sie einen klassischen Online-Shop als B2B oder B2C betreiben, und ob Sie IoT-Anwendungen, Car Commerce oder aber Voice Commerce realisieren wollen: Mit Microsoft Azure Cognitive Services stehen Ihnen noch weitere Microservice-Dienste zur Verfügung, wie z.B. Spracherkennung und -verständnis, Gesichtserkennung, Emotions- und Videoerkennung möglich, um ein paar davon zu nennen. In der Kombination Smartstore und Microsoft Azure sind Ihre Möglichkeiten somit nahezu grenzenlos.      

Sind Sie bereit, um zu starten?
Schreiben Sie uns oder probieren Sie Smartstore kostenlos aus. 
Kontaktieren Sie unseren Vertrieb: http://smartstore.com/de/kontakt  

Ihr Kommentar