Monolithische Architektur

Monolithische Architektur ist ein Softwareentwicklungsmuster, bei dem eine Anwendung mit einer einzigen Codebasis, einem einzigen Build-System, einer einzigen ausführbaren Binärdatei und mehreren Modulen für geschäftliche oder technische Funktionen erstellt wird. Die Komponenten arbeiten zusammen und teilen sich denselben Speicherplatz und dieselben Ressourcen. Aus der Definition von monolithisch folgt, dass eine monolithische Anwendung eine zusammenhängende Codeeinheit ist (griech. mono = „allein“, „einzig“, „ein“  + griech. lithos = „Stein“ => einzelner Steinblock bzw. aus nur einem Stein gemeißeltes, monumentales Bildwerk)

Monolitische Architektur einer Webanwendung
Monolitische Architektur einer Webanwendung

Obwohl der Code in Klassen und Pakete unterteilt sein kann und eine gute Struktur aufweisen sollte, wird er nicht in Module zur separaten Kompilierung aufgeteilt und funktioniert als isolierte Einheit, wobei die Komponenten der Anwendung durch die Verwendung interner Prozeduren leicht miteinander kommunizieren können.
Der Code wird, sobald er zur Freigabe bereit ist, in einer einzigen Version an alle Knotenpunkte gleichzeitig ausgeliefert. Um die Verteilung hier durchzuführen, ist es oft notwendig, das gesamte System anzuhalten, die Software auszurollen und dann neu zu starten.

Die Skalierung einer Komponente erfordert die Skalierung der gesamten Anwendung, da es sich um eine Integration von kleinen Teilen handelt, die nicht unabhängig voneinander funktionieren können.

Dieser Ansatz wurde jahrelang für die Entwicklung von Webanwendungen verwendet, da man sich auf Desktop-Geräte mit Browsern konzentrierte, die keine APIs (application platform interfaces) benötigten.


Microservices-Architektur

Eine Anwendung wird mit jeder Iteration größer, ist schwieriger zu verwalten und braucht länger, um zu starten. Aus diesem Grund wird in letzter Zeit für große Webanwendungen zunehmend das Microservices-Pattern verwendet:

Microservices-Architektur
Microservices-Architektur

Die Microservices-Architektur ist im Gegensatz zur monolithischen Architektur eine Sammlung von mehreren lose gekoppelten Diensten. Diese sogenannten Microservices verwenden eine leichtgewichtige Standardkommunikation (RESTful API = HTTP + meist JSON) und bilden als zusammenhängende Lösung eine Webanwendung.




Last modified: Wednesday, 28 September 2022, 12:49 PM