Was Sie über zusammensetzbare Monolithen wissen sollten

By | January 22, 2024

Luca Maraschi ist Mitbegründer und CEO von Plattform.

Amazon sorgte Anfang 2023 für Schlagzeilen, als sein Prime Video-Dienst Microservices zugunsten einer monolithischen App aufgab. Das Unternehmen verbuchte durch die Änderung Kosteneinsparungen von 90 %. Dies ist nur ein Beispiel für Microservices, die etwas von dem Glanz und der Attraktivität verloren haben, die sie einst hatten.

Gleichzeitig fördern viele Unternehmen weiterhin Microservices, da sie davon überzeugt sind, dass diese erhebliche Vorteile gegenüber monolithischen Anwendungen haben. Meiner Erfahrung nach sind strenge Versionen beider Ansätze grundsätzlich fehlerhaft.

Der monolithische AnsatzDie onolytische Architektur ist seit Jahrzehnten der Standard und bietet gegenüber Microservices mehrere Vorteile.

Generell gilt, dass monolithische Anwendungen einfacher zu entwerfen und zu entwickeln sind, da sie auf einer einzigen Codebasis basieren. Die monolithische Codebasis ist aufgrund einer einfacheren Architektur oft einfacher zu testen und bereitzustellen. Monolithische Anwendungen er kann wird in manchen Situationen einfacher zu skalieren sein, insbesondere bei horizontaler Skalierung.

Monolithische Anwendungen haben einige erhebliche Nachteile, von denen viele durch Microservices behoben werden. Einer der größten Nachteile sind die Herausforderungen bei der Wartung von Anwendungen, wenn diese immer größer und komplexer werden. Dies kann das Onboarding neuer Entwickler zu einer besonderen Herausforderung machen.

Mit zunehmender Codebasis werden Aktualisierungen immer schwieriger und unvorhersehbarer. Ein Update, das darauf abzielt, eine neue Funktion hinzuzufügen, eine Sicherheitslücke zu schließen oder einen Fehler zu beheben, kann manchmal unvorhergesehene Folgen an anderer Stelle in der Anwendung haben.

Ebenso können monolithische Anwendungen etwas fragil sein. Da die gesamte Anwendung auf einer Codebasis basiert, kann ein einziger schwerwiegender Fehler die gesamte Anwendung gefährden und zum Absturz bringen.

Der Microservices-AnsatzMit dem rasanten Wachstum des Cloud Computing wurde etwas benötigt, um die Mängel der monolithischen Architektur zu beheben, und Microservices wurden als Lösung angepriesen. Im Gegensatz zu seinen Vorgängern basieren Microservices auf einer Reihe kleinerer Dienste, die zusammenarbeiten, um eine Anwendung oder einen Dienst zu erstellen. Der modulare Ansatz hat mehrere Vorteile.

Einer der größten Vorteile ist die Möglichkeit, an bestimmten Teilen einer Anwendung zu arbeiten, ohne dass die Gefahr einer negativen Auswirkung auf eine andere Komponente geringer ist. Auch wenn monolithische Anwendungen in ganz bestimmten Situationen besser skaliert werden können, lassen sich Microservices in den allermeisten Fällen einfacher skalieren. Das Onboarding neuer Entwickler sowie die Arbeit verschiedener Entwickler an einzelnen Teilen der Anwendung ist mit Microservices viel einfacher als mit Monolithen.

Trotz der Vorteile haben Microservices ihre eigenen Nachteile. Da eine Anwendung oder ein Dienst aus vielen kleineren Teilen besteht, kann es zu erheblichen Duplikaten einiger Bibliotheken und Komponenten kommen, insbesondere wenn die Anwendung skaliert wird. Auch die Leistung kann eine Herausforderung darstellen, da verschiedene Teile einer Anwendung unterschiedlich funktionieren und potenzielle Engpässe verursachen. Sicherheit ist eine der größten Herausforderungen für Microservices, da jede Komponente ein potenzieller Angriffsvektor sein kann.

Aufgrund der Herausforderungen, denen Entwickler bei der Wahl zwischen monolithischer und Microservices-Architektur gegenüberstehen, besteht Bedarf an etwas Besserem, vorzugsweise etwas, das die Vorteile beider Ansätze vereint und gleichzeitig ihre Schwächen negiert.

Zusammensetzbare Monolithen: eine Mischung aus OptionenBasierend auf unserer Erfahrung schafft ein zusammensetzbarer Monolith ein Gleichgewicht zwischen traditioneller monolithischer Architektur und Microservices und bietet unter vielen Umständen die Vorteile beider Welten.

Weniger komplexe Anwendungen können nahtlos als Monolith funktionieren. Ebenso können Projekte mit weniger hohen Skalierbarkeitsanforderungen mit einer Microservices-Architektur perfekt funktionieren. Ein kombinierbarer Monolith hingegen kann für Anwendungen geeignet sein, die nicht perfekt in eines der beiden Modelle passen.

Genau wie ein Monolith ist ein zusammensetzbarer Monolith eine einzelne Einheit, übernimmt aber den modularen Charakter von Microservices. Dadurch lassen sich Anwendungen leichter skalieren als herkömmliche Monolithen, und Entwickler können mit mehreren Komponenten arbeiten, ohne dass das Risiko negativer Auswirkungen auf andere besteht.

Der modulare Charakter bedeutet auch, dass Entwickler verschiedene Teile der Anwendung unabhängig voneinander bereitstellen und skalieren können und gleichzeitig ein Maß an Anpassung bieten, das ein herkömmlicher Monolith nicht erreichen kann.

Gleichzeitig übernimmt ein zusammensetzbarer Monolith die Einfachheit der einzelnen Codebasis eines herkömmlichen Monolithen. Dies trägt dazu bei, Codeduplizierungen zu reduzieren und erleichtert die Wartung der Codebasis, da Änderungen einmalig in der gesamten Architektur vorgenommen werden können.

Für diejenigen, die an weiteren Informationen interessiert sind, ist diese Studie eine spannende Lektüre.

Wie Teams zusammensetzbare Monolithen nutzen könnenDer erste Schritt besteht darin, dass ein Entwicklungsteam seinen Arbeitsablauf und seine aktuellen Projekte analysiert. Ihr aktueller Arbeitsablauf ist möglicherweise gut für Monolithen oder Microservices optimiert und sie würden von der Umstellung kaum profitieren.

Organisationen mit Projekten, die von der Umstellung auf eine zusammensetzbare monolithische Architektur profitieren könnten, sollten sich die Zeit nehmen, ihre Entwickler zu schulen und einzubinden. Backend-Entwicklung kann ein langweiliges Feld sein, und manchmal verschärfen Unternehmen das Problem dadurch, dass sie einseitige Entscheidungen treffen, ohne ihre Entwickler einzubeziehen. Daher muss die Entwicklung oft aufholen.

Unserer Erfahrung nach funktioniert der Übergang zu einem zusammensetzbaren Monolithen oft am besten, wenn die Organisation ein Pilotprogramm durchführt und Entwicklern die Möglichkeit gibt, die Machbarkeit zu testen. Erfolgreiche Organisationen investieren auch in geeignete Tools zur Unterstützung ihres Entwicklungsteams.

Wenn der Übergang richtig gehandhabt wird, können zusammensetzbare Monolithen herkömmliche Monolithen und Microservices in Bezug auf Leistungsmetriken, Fehlertoleranz, Variationsgrad und Abstraktionsgrenzen übertreffen.

Wie sieht die Zukunft der Softwarearchitektur aus?Während wir uns durch die sich ständig verändernde Landschaft der digitalen Architektur bewegen, ist ein neueres Konzept entstanden: der zusammensetzbare Monolith. Wir befreien uns von den traditionellen Zwängen monolithischer und Microservices-Architekturen und glauben, dass sich der zusammensetzbare Monolith als eine Mischung präsentiert, die einzigartige Funktionen bietet, die unser Verständnis von effizienten, skalierbaren und wartbaren Systemen neu definieren.

Der Schlüssel liegt darin, Vielfalt in der digitalen Landschaft zu akzeptieren. Die Wahl der richtigen Architektur hängt von den individuellen Gegebenheiten jedes Unternehmens ab und berücksichtigt Faktoren wie Projektgröße, Teamstruktur, Skalierbarkeitsanforderungen und Anpassungsfähigkeitsziele.

Für hochrangige technische Führungskräfte, die sich an einem architektonischen Scheideweg befinden, wird der Entscheidungsprozess zu einem praktischen Balanceakt – das Abwägen von Einfachheit und Komplexität, Skalierbarkeit und Anpassungsfähigkeit. Es ist dieses sorgfältige Gleichgewicht, das die zukünftigen Parameter der Softwarearchitektur prägen und Innovation und Widerstandsfähigkeit vorantreiben wird.


Der Forbes Technology Council ist eine Community nur auf Einladung für erstklassige CIOs, CTOs und Technologiemanager. Bin ich qualifiziert?


Leave a Reply

Your email address will not be published. Required fields are marked *