Auf dem Weg zur Data-Driven Company: Warum du nur einen Öltanker in deine Systemarchitektur integrieren solltest
Über den Autor
Hi, ich bin Dr. Florian Krause und Principal of Tech and Data bei Etribes. Seit über 15 Jahren entwickle ich E-Commerce Anwendungen und Big Data Plattformen für Unternehmen wie About You, Rebelle oder Swarovski. Heute gebe ich mein Wissen an unsere Kunden weiter und begleite sie auf dem Weg, eine data-driven company zu werden. Mein Ziel: Dich zu befähigen, die richtigen Entscheidungen treffen, um langfristig zufrieden zu sein und nicht nach 2 Jahren Probleme mit z.B. deiner Systemarchitektur zu bekommen.
Wenn du Fragen oder Ideen zu diesem Blogbeitrag hier hast, kontaktiere mich gerne über das Formular unten oder schreib mir auf LinkedIn. Bis dahin!
21. September 2022 / Dr. Florian Krause
Der große Irrglaube der idealen Systemarchitektur
Beginnen wir mit einem weit verbreiteten Irrglauben: Im Bereich der Softwareentwicklung wird oft geglaubt, dass der strukturelle Rahmen einer zentralen Software und Datenbank (oder in anderen Worten: eines Öltankers) für viele Unternehmen die einzig wahre Lösung darstellt. Doch über die Zeit hinweg und die stetige Weiterentwicklung zeigen sich zunehmend Stärken und Schwächen dieser Vorgehensweise, was wiederum Raum für neue Innovationen und andere Möglichkeiten bietet.
Jedes Unternehmen, das zu einer data-driven company werden will, muss sich rechtzeitig Gedanken darüber machen, wie es seine Systemarchitektur aufbauen möchte und eben diese Stärken und Schwächen der verschiedenen Möglichkeiten zu verstehen und für sich zu nutzen. Genau darum geht es auch in diesem Blogbeitrag. Konkret gesagt gehen wir auf zwei mögliche Paradigmen der Systemarchitektur ein und leiten deren High-und Lowlights für dein Unternehmen ab.
Monolith versus Service-orientierter Architektur - Was ist das Richtige für meine Systemarchitektur?
Welche Systemarchitektur-Typen finden in der Praxis also am häufigsten Anwendung? Hierbei gibt es grundsätzlich zwei entscheidende Paradigmen, die in diesem Kontext eingesetzt werden können. Zum einen ein Monolith, welcher ein großes, mächtiges IT-System darstellt, und zum anderen eine service-orientierte Architektur, bei der die gesamte IT-Infrastruktur in kleinere Teile heruntergebrochen wird. Eine Spielart der service-orientierten Architektur sind Micro-Services, wo die Granularität gegenüber normalen Services nochmal erhöht wird. Mehr dazu erkläre ich dir besser persönlich im Video (ich sitze nicht zu oft vor der Kamera – also schick mir dein Feedback und Ideen für das nächste Video gerne unten über das Kontaktformular).
Monolithen - Die Öltanker der Systemarchitektur
Unter einem Monolith versteht man also eine große Software-Anwendung, die alle geschäftlichen Prozesse miteinander verknüpft. Zur Speicherung der Daten kommt eine zentrale Datenbank zum Einsatz, somit sind Geschäftsprozesse (zumindest technisch gesehen) oft orchestrierte Lese- und Schreiboperationen zwischen verschiedenen Tabellen dieser Datenbank. Ein gängiges Beispiel für eine monolithische Architektur ist ein ERP-System.
Vorteile einer Monolith Systemarchitektur
- Einfache Entwicklung: Durch einheitlich eingesetzte Programmiersprachen und Tools wird eine Entwicklungsumgebung erschaffen, die für alle Entwickler gleich ist.
- Einfacher Zugriff auf Daten: Da sich alles an einem zentralen Ort befindet, können Daten leicht gefunden und Prozesse verknüpft werden. Dies gilt speziell für verknüpfte Datensätze wie Belegketten in der Art von Auftrag -> Lieferschein -> Rechnung.
- Einfaches Testen: Aufgrund dieser einzigen Datenbank können beispielsweise End-to-End-Test schneller durchgeführt werden.
Nachteile einer Monolith Systemarchitektur
- Längerer Entwicklungszeitraum: Durch die Größe des Monoliths ist seine Entwicklung langwierig und zeitintensiv.
- Eingeschränkte Unabhängigkeit: Wenn ein Fehler in der Architektur vorliegt, kann es die gesamte Funktionalität einschränken.
- Weniger Flexibilität: Da diese Architektur sehr groß ist, können bestehende Prozesse nicht schnell verändert werden, da diese Veränderungen oder der Kurswechsel einer Strategie sehr zeitintensiv sind.
"Wenn man Softwaresysteme betrachtet, ist es für Firmen wichtig, dass sie immer nur einen Öltanker haben - ausgenommen man ist eine Reederei.”
Dr. Florian Krause, Principal Tech & Data Etribes
Service-orientierte Architektur - die Speedboote der Systemarchitektur
Eine service-orientierte Architektur hingegen unterteilt einen großen Monolithen in kleinere Teile, welche unabhängig voneinander betrieben werden. Jedes dieser einzelnen Teile verfügt über eine eigene Datenbank und verfolgt ein bestimmtes Business-Ziel. Sie tragen daher unabhängig voneinander zum Gesamtprozess des Unternehmens dar.
Vorteile einer service-orientierten Architektur
- Erhöhte Flexibilität: Aufgrund der einzelnen Einheiten kann agil und flexibel auf Veränderungen reagiert und Prozesse angepasst werden.
- Erhöhter Output: Durch die vielen kleinen Datenbanken kann vermehrt parallel und unabhängig voneinander gearbeitet und so ein höherer Output durch reduzierte Abhängigkeiten generiert werden.
- Erhöhte Zuverlässigkeit: Wenn ein Problem oder ein Fehler vorliegt, kommt durch die dezentralen Einheiten nicht direkt das gesamte Geschäft zum Erliegen.
Nachteile einer service-orientierten Architektur
- Uneinheitliches Gesamtbild: Jeder kennt die Struktur innerhalb seines eigenen Systems, allerdings nur selten, wie alle kleinen Systeme miteinander zusammen spielen bzw. verknüpft sind.
- Unklare Verantwortlichkeiten: Bei steigender Anzahl der einzelnen Systeme lässt sich oft nur schwer zuordnen, welches Team für welche Anfragen zuständig ist.
- Unkoordiniertes Wachstum: Die Vielzahl der Systeme, die von mehreren Teams erstellt wurde, kann zu einem unkontrollierten oder nicht reguliertem Wachstum führen.
Approaching data
with enthusiasm!
Wenn du das volle Potenzial im Umgang mit Daten für dein Unternehmen entfalten willst, ist es unerlässlich, das Thema an Mitarbeitende zu geben, die sich dafür begeistern. Der Claim unseres industrieerfahrenen Data Squads ist “Approaching data with enthusiasm” – lerne sie jetzt kennen und profitiere von ihrer Begeisterung und ihrer Erfahrung im Bereich Data.
Welche Systemarchitektur passt nun am besten zu meinem Unternehmen?
Bei der Frage nach der idealen Systemarchitektur stoßen wir wieder auf meine Metapher aus dem Video: Speedboot oder Öltanker? Und ohne dein Unternehmen zu kennen (lass uns das gern ändern und mal spezifisch sprechen!) kann ich dir empfehlen: Die Mischung macht’s.
Hierbei stellt unser Monolith einen großen, mächtigen “Öltanker” und unsere service-orientierte Architektur ein Zusammenspiel aus vielen kleinen “Speedbooten” dar. Manchmal ist es nämlich die Mischung, die zum Erfolg führt. Hierbei stellt man die Systemarchitektur quasi zum einen aus einem großen “Öltanker”, also beispielsweise einem ERP-System, zusammen und ergänzt das ganze durch eine Flotte von kleinen “Speedbooten” um die zentrale Einheit herum.
Dieses Konstrukt vereint die Vorteile beider Konzepte. Das ERP-System, der “Öltanker” im Zentrum, ist für die Grundfunktionen zuständig, über welchen business-kritische Prozesse bedient und gesteuert werden können.
Gleichzeitig gibt es die kleinen “Speedboote”, um Arbeiten schneller ausführen zu können. Diese sind immer in Bewegung, können agil und flexibel angepasst werden und docken an einer geringen Anzahl an Schnittstellen wieder an den großen “Öltanker” an, um dort die Informationen zu übernehmen oder zu übergeben.
Fazit: Die Mischung machts!
Kombiniert man also die Vorzüge eines Monolithen (z.B. einfacher Zugriff auf die verfügbaren Daten) mit denen einer service-orientierten Architektur (z.B enorme Flexibilität und Zuverlässigkeit), lässt sich erkennen, dass sie sich gegenseitig ideal ergänzen und die jeweiligen Minuspunkte des anderen überdecken. Darum kann für viele Unternehmen die Mischung aus beidem die perfekte Lösung sein.
Damit bewältigt keines der beiden Paradigmen nur eine rein technische Herausforderung. Im Gegenteil: Eine effektive Systemarchitektur unterstützt das gesamte Projektmanagement sowie die Kommunikation innerhalb des Betriebs und stellt einen fundamentalen wirtschaftlichen Erfolgsfaktor dar.