© StonePictures/Shutterstock.com
Web Components in der Welt der Micro Frontends

Kolumne: EnterpriseTales


Früher bestand eine Webanwendung mehr oder weniger aus nur einer Sammlung von dynamisch erzeugten HTML-Dokumenten, die ggf. mit Ajax Calls und jQuery angereichert wurden. Nahezu die gesamte Komplexität war serverseitig. Erhöhte Anforderungen an Interaktivität haben mittlerweile aber dazu geführt, dass mehr Logik im Client zu finden ist. Single Page Applications (SPAs) sind das Resultat. Durch diese wachsende Logik steigt auch die Komplexität der Anwendungen. Es entstehen Frontend-Monolithen. Eine Wunderwaffe dagegen können Micro Frontends sein. Aber wie gewährleisten wir dann Konsistenz in der gesamten Anwendung und isolieren gleichzeitig die einzelnen Micro Frontends voneinander?

Vom Monolithen zu Microservices

Monolithen haben bei Backend-Entwicklern nur einen bedingt guten Ruf. Sie haben in der Vergangenheit oftmals zu Problemen geführt und tun es auch heute noch oft. Je größer und verworrener der Monolith, desto länger dauert es, Änderungen umzusetzen – wobei die Wahrscheinlichkeit, dass danach eine andere Stelle nicht mehr funktioniert, von Feature zu Feature steigt. Wir erschaffen einen Big Ball of Mud [1] oder wie es das Management sagen würde: Die Produktivität der Teams skaliert nicht mehr. Doch noch mehr Entwickler auf das Problem anzusetzen, macht es im Zweifel noch schlimmer als vorher. Hier wird häufig die schlecht passende Metapher von den neun Frauen verwendet, die ein Kind auch nicht in nur einem Monat bekommen.

Das eigentliche Problem der Wartbarkeit liegt jedoch nicht an der monolithischen Architektur an sich, sondern vielmehr an der häufig fehlenden Modularität. Um diese zu erreichen und damit die Entwicklungsgeschwindigkeit der Teams auf einem konstant hohen Niveau zu halten, müssen wir große Software in möglichst unabhängige und kleinere Stücke zerschneiden. Während die Komplexität des technologischen Aspekts der Software auch bei deren längerer Existenz meist konstant bleibt (die Technologie veraltet höchstens), ist es meist die Fachlichkeit, die mit jedem neuen Feature umfangreicher und komplexer wird. Das führt dazu, dass die Software bei schlechtem Schnitt nicht mehr wartbar ist. Um die Komplexität eines Monolithen aufzubrechen, ist es daher sinnvoll, fachlich (und eben nicht technisch) zu schneiden.

Aus dieser Überlegung heraus hat sich in den letzten Jahren ein alternatives Architekturmuster zum Monolithen im Backend etabliert, die Microservices. Dieser Ansatz zwingt technisch dazu, die Software zu modularisieren. Der richtige S...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang