Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Alexandra Mendes
André Santos

09. April 2024

Min Read

Micro-Frontend: Was es ist und wie Sie es für Ihr Unternehmen nutzen können

Jeden Tag tauchen neue Frontend-Techniken auf. Bei so vielen verschiedenen Ansätzen kann es schwierig sein zu wissen, welche am besten zu Ihrem Projekt und Team passen. Wenn Sie in Ihren Projekten neuere Technologien verwenden und gleichzeitig hohe Leistungs- und Wartungsstandards einhalten möchten, ist Micro-Frontend möglicherweise die Antwort.

Durch die Kombination von Mikrodiensten mit Web-Apps können wir leistungsstarke, funktionsreiche Browser erstellen. Das Hauptziel besteht darin, sich eine Website oder mobile App als eine Sammlung von Funktionen vorzustellen, die von unabhängigen Teams betrieben werden.

In diesem Beitrag wird ausführlicher erklärt, was ein Micro-Frontend ist, welche Vorteile es hat, wie Ihr Unternehmen es für Ihr Unternehmen implementieren kann, und Beispiele für Unternehmen, die es bereits in der Produktion verwenden.

Schauen wir uns diese weniger bekannte Technik genauer an.

Was ist Micro-Frontend?

Ein Micro-Frontend besteht aus mehreren kleinen und autonomen modularen Komponenten. Die Module sind in sich abgeschlossen und können von anderen Seiten verwendet werden. Sie können jede Programmiersprache verwenden, um die Komponenten zu codieren, aus denen ein Micro-Frontend besteht. Normalerweise sind Javascript- und Javascript-Frameworks am beliebtesten, aber Mikro-Frontends können in jeder Sprache entwickelt und dann kompiliert und in ein Javascript-Paket gepackt werden, das vom anderen Frontend importiert und zusammengestellt werden kann.

In der Micro-Frontend-Architektur werden Weblösungen erstellt, indem die monolithische Anwendung in kleinere Teile zerlegt und jedes Fragment separat codiert, getestet und bereitgestellt wird. Auf diese Weise können funktionsübergreifende Teams jede Komponente (von einer Datenbank bis hin zu einer Benutzeroberfläche) unabhängig entwickeln, sodass die Komponenten unabhängig sind. Die Benutzer sehen die gesamte Lösung und nicht einzelne Fragmente, sodass ein nahtloses Erlebnis gewährleistet ist.

Micro frontend architecture
End to end teams with micro frontend architecture
Quelle: micro-frontends.org
blue arrow to the left
Imaginary Cloud logo

Namhafte Unternehmen, die Micro-Frontends verwenden

Hier sind ein paar bekannte Unternehmen, die Micro-Frontends verwenden:

  • IKEA - ein europäischer Möbelhändler, bietet ein Online-Einkaufserlebnis.
  • DAZN - ein europäischer Sport-Streaming-Dienst, der auf neun Länder angewachsen ist.
  • Upwork - ein freiberufliches Netzwerk, das unabhängige Geschäftsleute auf der ganzen Welt verbindet.
  • Spotify - Dieser Anbieter von Online-Streaming-Medien stellt Desktop-Anwendungen mithilfe von Frontend-Microservices zusammen.
  • SoundCloud - eine europäische Website zum Teilen von Musik und eine Online-Audiovertriebsplattform, die ein einheitliches Erlebnis auf allen Plattformen bietet.
blue arrow to the left
Imaginary Cloud logo

Ein kurzer Überblick über die Micro-Frontend-Architektur

Das Ziel eines Micro-Frontends ist es, die gleichen Vorteile wie Microservices zu bieten, indem es die Nachteile beseitigt, die mit großen Frontend-Monolithen verbunden sind.

Was sind die Vorteile des monolithischen Ansatzes und warum ist er nicht die beste Option für moderne groß angelegte Webentwicklung? Lassen Sie uns das untersuchen.

Was ist eine Microservices-Architektur?

Die Microservice-Architektur ist ein Entwurfsmuster in der Backend-Entwicklung. Im Gegensatz zu einer monolithischen Architektur umfassen Microservices mehrere unabhängig voneinander einsetzbare Komponenten. Sie sind nach Geschäftsbereichen getrennt und über APIs miteinander verbunden, die einfach bereitzustellen sind.

Differences between monolithic and microservices architectures
Unterschiede zwischen monolithischen Architekturen und Microservices-Architekturen

Microservices sind die Bausteine der meisten modernen Weblösungen. Unternehmen entscheiden sich häufig für diese Art von Architektur, wenn sie neue Web-Apps erstellen oder ihre alte Software aktualisieren, indem sie von einem monolithischen Backend zu Microservices wechseln. Hier sind die wichtigsten:

  • Skalierbarkeit. Mit der Microservice-Architektur ist es einfacher, eine Weblösung zu skalieren. Ein Entwicklungsteam kann einen oder mehrere Dienste, die mehr Ressourcen benötigen, hochskalieren und den Rest in Ruhe lassen.
  • Flexibilität. In Websystemen, die auf Microservices basieren, erfolgt keine gemeinsame Nutzung von Code. Das Ändern einzelner Dienste wirkt sich nicht auf andere Module einer Anwendung aus.
  • Resilienz. Es gewährleistet eine höhere Zuverlässigkeit und Ausfallsicherheit durch den Einsatz von Microservices. Dienste sind getrennt. Wenn also einer ausfällt, funktionieren die anderen weiterhin.
  • Keine Abhängigkeit von der Technologie. In einer einzigen Weblösung können Programmierer verschiedene Technologien für verschiedene Dienste verwenden.
  • Schnellere Entwicklung. Entwickler können gleichzeitig an mehreren verschiedenen Diensten arbeiten. Außerdem sind Dienste wiederverwendbar. Es reduziert natürlich die Zeit, die für die Entwicklung benötigt wird.

Grundsätzlich sollten die meisten großen Webentwicklungsprojekte Microservices verwenden.

Warum ist ein Frontend-Monolith schlecht für Microservices geeignet?

Der Begriff Frontend-Monolith bezieht sich auf die Client-Seite einer Webanwendung, die aus einer einzigen Codebasis erstellt wurde. Viele Lösungen verwenden immer noch diese Art von Schnittstellenarchitektur, auch solche mit Microservice-Architektur. Daher ist das Backend eines Systems oft modular aufgebaut, während das Frontend solide bleibt.

Anfangs kann das gut funktionieren, aber oft treten Probleme auf, wenn eine Weblösung wächst. Hier sind ein paar Beispiele:

  • Wenn sich die Software ändert, wird ein Frontend-Monolith zu voll und ineffizient. Aus diesem Grund verlangsamt sich das System und wird weniger effizient.
  • Ein großes und schweres Frontend kann die Entwicklung verlangsamen, wenn ein System wächst. Obwohl Dienste im Backend schnell geändert werden können, kann die Übertragung von Updates auf die Client-Seite viel Arbeit und Zeit in Anspruch nehmen.
  • Eine umfangreiche Weblösung mit einem einteiligen Frontend ist schwer zu bewältigen. Es gibt keine Möglichkeit, separate Bereitstellungen zu haben, sodass das gesamte System ausfallen kann, wenn ein Teil ausfällt.

Zusammenfassend lässt sich sagen, dass ein Frontend-Monolith die Unabhängigkeit einer Microservice-Architektur einschränkt. Immer mehr Entwickler verwenden Micro-Frontends, um dies zu vermeiden. Lassen Sie uns also genauer darauf eingehen, wie eine Weblösung funktioniert, wenn eine Micro-Frontend-Architektur auf Microservices aufbaut.

Best agile practices to use in your software development cycle
blue arrow to the left
Imaginary Cloud logo

Warum ein Micro-Frontend verwenden?

Mit einem Micro-Frontend können Unternehmen:

  • Sorgen Sie für eine bessere Benutzererfahrung: Sorgen Sie für ein nahtloses Benutzererlebnis, indem Sie ein einheitliches Erlebnis auf allen Geräten und Plattformen von Drittanbietern bieten. Sie können dies erreichen, indem Sie eine einzige Codebasis für alle Frontend-Komponenten haben. Es kann auch dazu beitragen, die allgemeine Benutzerbindungsrate zu verbessern, indem die Zeit für den Abschluss von Transaktionen oder die Registrierung für einen Dienst reduziert wird.
  • Verbessern Sie die Geschwindigkeit der Entwicklung: Mit Micro-Frontends können Teams Funktionen schneller entwickeln und bereitstellen, indem sie eine einzige Codebasis verwenden und sich nicht mit kompliziertem Code auseinandersetzen müssen. Dies kann zu erheblichen Kosteneinsparungen führen.
  • Verbessern Sie die Skalierbarkeit des Produkts: Der Micro-Frontend-Ansatz ermöglicht es Unternehmen, die Anzahl der Komponenten und die Komplexität eines Produkts zu erhöhen, ohne den Code neu schreiben zu müssen. Da der Micro-Frontend-Ansatz kleine unabhängige Komponenten verwendet, kann er problemlos auf einen Cluster von Servern oder Diensten verteilt werden.

Auf diese Weise kann der Micro-Frontend-Ansatz verwendet werden, um komplexe Benutzeroberflächen schnell und einfach zu erstellen. Es ist auch eine hervorragende Option für Teams, die einen modernen Softwareentwicklungsansatz verfolgen möchten. Darüber hinaus sind Micro-Frontends hochflexibel, skalierbar und schnell einsetzbar. Neben den technischen Vorteilen eignen sich Micro-Frontends auch hervorragend für Unternehmen, da sie einen hervorragenden geschäftlichen Nutzen und technische Vorteile bieten.

Vorteile der Verwendung eines Micro-Frontends

  1. Autonome Teams mit beschleunigter Entwicklung.
    Ein autonomes Team kann jede Web-App oder Website-Komponente nach einem Micro-Frontend-Ansatz erstellen. Jedes Team ist völlig unabhängig, sodass jeder Zyklus der Komponentenerstellung mit der Ideenfindung beginnt und mit der Veröffentlichung und Postproduktion endet. Mehrere Einheiten können gleichzeitig an demselben Projekt arbeiten, ohne miteinander kommunizieren zu müssen. Da die Veröffentlichungszyklen mit Micro-Frontends viel schneller sind, können mehrere Teams gleichzeitig an demselben Projekt arbeiten.
  2. Höhere App-Stabilität durch lose Kopplung.
    Mikro-Frontends kommunizieren miteinander, aber die Komponenten sind lose miteinander verbunden, und jede Verbindung ist von Bedeutung. Die hohe Stabilität einer Weblösung beruht auf der Tatsache, dass ein Ausfall einer Komponente keine Auswirkungen auf andere hat.
  1. Kleinere Codebasen einzelner Micro-Frontends führen zu saubererem Code.
    Monolithische Frontends werden im Laufe der Zeit immer unstrukturierter und komplexer zu verwalten, da sie über große Codebasen verfügen. Micro-Frontends lösen dieses Problem, indem sie den Code jedes Micro-Frontends einfacher, kleiner und damit viel einfacher zu verwalten machen. Dies führt zu einem saubereren Code in der gesamten Weblösung.
  2. Schnellere Einführung von Funktionen durch unabhängige Bereitstellungen.
    Jedes Micro-Frontend wird getrennt von anderen Komponenten einer Weblösung bereitgestellt. Funktionen können für die Produktion bereitgestellt werden, sodass Programmierer darüber nachdenken können, was mit dem Rest einer Anwendung passiert. Funktionen können daher vergleichsweise schnell eingeführt werden, da sie über eigene Bereitstellungspipelines verfügen. Änderungen am Monolithen werden nicht behindert, sodass Sie einzelne Funktionen problemlos einsetzen können.
  3. Mit dieser Methode ist es einfacher, einzelne Funktionen zu testen.
    Der Hauptvorteil von Micro-Frontends besteht darin, dass sie von Natur aus modular aufgebaut und in verschiedene Komponenten unterteilt sind, was das Testen einzelner Teile einer Client-Anwendung vereinfacht. Micro-Frontends sind nicht nur von Natur aus modular, sondern profitieren auch davon, dass sie einzeln testbar sind.
  4. Weniger riskante Umsetzung wesentlicher Änderungen.
    Signifikante Änderungen an einem monolithischen Frontend sind immer riskant: Ein Fehler und alle Funktionen können ausfallen. Im Gegensatz dazu ist das Ändern von Micro-Frontends ein einfacher Vorgang, da selbst signifikante Änderungen an einem Teil das gesamte System nicht gefährden. Aus diesem Grund werden Sie keine Angst davor haben, Dinge zu ändern, unabhängig davon, wie wichtig die Änderungen sein mögen.
  5. Ein kleineres Paket erhöht die Seitenladegeschwindigkeit.
    Die langsame Seitenladezeit in monolithischen Weblösungen mit vielen Funktionen ist einer der Hauptgründe für die Größe des JavaScript-Pakets. Im Gegensatz dazu erleichtert ein Micro-Frontend-Ansatz die Optimierung der Seitenladezeit. Da eine Webseite aus vielen kleinen Paketen besteht, muss der Browser nicht jedes Mal unbenutzten Code herunterladen. Dies wiederum führt zu schnelleren Seitenladevorgängen und einer höheren Seitengeschwindigkeit.
  6. Technologieunabhängigkeit.
    Eine Micro-Frontend-Architektur ermöglicht es Entwicklern, verschiedene Frontend-Frameworks in einer einzigen Weblösung zu stapeln. Da die Komponenten unabhängig voneinander konstruiert werden, kann jede einzelne mit der Technologie erstellt werden, die für die Erreichung der Projektziele am besten geeignet ist. Natürlich müssen Programmierer bei der Auswahl der Frameworks für die Software, für die sie verantwortlich sind, immer vorsichtig sein, und die Zusammenarbeit mit anderen Teams wird dennoch dringend empfohlen. Es besteht jedoch keine Gefahr, dass Sie während der gesamten Lebensdauer der App bei der Verwendung eines älteren Frameworks feststecken.

Nachteile der Verwendung eines Micro-Frontends

  1. Es ist ziemlich kompliziert, eine Weblösung als Ganzes zu testen.
    Das Testen einer Web-App, die auf einer Micro-Frontend-Architektur basiert, ist einfach, da jedes Modul isoliert ist. Das Problem ist, dass das Testen einer Weblösung als Ganzes nicht dasselbe ist wie das Testen einzelner Module. Sie müssen sicherstellen, dass alle Komponenten wie vorgesehen zusammenarbeiten. Da Micro-Frontends unabhängig sind und über eigene Bereitstellungspipelines verfügen, kann dies schwierig sein.
  2. Die Schwierigkeit, ein System zu entwickeln und einzusetzen.
    Aufgrund der minimalistischen Struktur der Micro-Frontend-Architektur kann der Entwicklungs- und Bereitstellungsprozess weniger einfach sein. Wenn beispielsweise mehrere autonome Teams an demselben Projekt arbeiten, kann die Lösung mit zu vielen Komponenten überladen werden, was zu Problemen während der Bereitstellungsphase führen kann. Es ist auch schwierig, alle Module korrekt zusammenzusetzen und sie nahtlos in das Gesamtbild einzufügen, ohne alle ihre Abhängigkeiten gut zu verstehen.
  3. Inkonsistenz ausgewählter Technologien.
    Frontend-Frameworks für verschiedene Module können eine vorteilhafte Technologiekombination sein, aber dieser Vorteil hat auch einen Nachteil. Selbst wenn Frontend-Frameworks sorgfältig ausgewählt werden, kann es zu einem inkonsistenten Tech-Stack kommen. Dies kann zu einem langsamen Leistungsproblem und einer unangenehmen Benutzererfahrung führen.
  4. Die Schwierigkeit, die UX kohäsiv zu halten.
    Es ist eine Herausforderung, die Benutzeroberfläche konsistent zu halten, wenn Teams an verschiedenen Softwareteilen arbeiten. Zahlreiche Inkonsistenzen können auftreten, wenn alle am Projekt beteiligten Entwickler eine einheitliche Vorstellung von der Weblösung haben.
  5. Hohe Anfangsinvestitionen.
    Die Wartung eines Micro-Frontend-Projekts ist kostspielig. Die Zusammenstellung und Pflege mehrerer Frontend-Teams ist teuer. Sie benötigen außerdem Managementpersonal, um die Arbeit zu planen, alles zu koordinieren und eine effektive Teamkommunikation sicherzustellen.
blue arrow to the left
Imaginary Cloud logo

Wann sollte ein Micro-Frontend verwendet werden?

Trotz der Vorteile der Micro-Frontend-Architektur handelt es sich nicht um eine Einheitslösung. Nicht jede Webanwendung ist für diesen Architekturstil geeignet. Woher wissen Sie bei der Auswahl eines Micro-Frontends für Ihre Webanwendung, ob es ein Erfolg wird? Es gibt zwei Arten von Frontends: monolithische und Mikro-Frontends.

Lassen Sie uns die wichtigsten Kriterien für Ihre Entscheidung besprechen. Hier sind ein paar Beispiele dafür, wann Micro-Frontends sinnvoll sind:

  • Ihre Online-Lösung ist kompliziert, basiert auf Microservices und kann in verschiedene eigenständige Branchen unterteilt werden. Nehmen wir zum Beispiel an, Sie entwickeln ein Enterprise-Resource-Planning-System mit mehreren Modulen (z. B. Finanzen, CRM, Personalwesen, Inventar).
  • Sie benötigen separate Technologie-Stacks für verschiedene Module in einer einzigen Online-Lösung.
  • Sie haben bereits ein großes Entwicklungsteam (oder mehrere Teams) oder werden es einstellen, und Ihr Budget lässt dies zu.

Wenn Sie sich nicht sicher sind, ob Micro-Frontends zu Ihrem Projekt passen, wenden Sie sich an einen zuverlässigen Technologiepartner wie Imaginary Cloud. Am Ende hängt es von den Einzelheiten Ihres Geschäftsplans ab.

blue arrow to the left
Imaginary Cloud logo

Wie funktioniert ein Micro-Frontend

Ein Micro-Frontend besteht aus mehreren unabhängigen und modularen Komponenten, die bei Bedarf geladen und angezeigt werden. Das bedeutet, dass nur die Komponenten geladen werden, die für eine bestimmte Seite benötigt werden. Diese Komponenten interagieren direkt mit den Daten und benötigen keinen zentralen Server, um Anfragen weiterzuleiten oder Daten zu verarbeiten. Zusätzlich zu den Komponenten, die Inhalte anzeigen, kann ein Micro-Frontend auch mehrere Dienstprogrammkomponenten enthalten, die mit der Anwendungsumgebung interagieren.

Diese Komponenten können mit dem Benutzer oder mit anderen Komponenten interagieren. Die Verwaltung des Status der Anwendung kann sie ebenfalls verwenden. Diese Dienstprogrammkomponenten haben in der Regel nur eine minimale Funktionalität und zeigen dem Benutzer keinen Inhalt an. Sie können auch nur bei Bedarf geladen werden.

blue arrow to the left
Imaginary Cloud logo

Wie implementiere ich ein Micro-Frontend?

Sie können Micro-Frontends auf zwei Arten integrieren:

Build-Time-Integration
So wird heute der meiste Code geschrieben. Der Container installiert die Komponenten als Bibliotheken, ähnlich wie Sie Bibliotheken von npm aus installieren würden. Sie können Module Federation auch mit NextJS in der aktuellen Version von WebPack 5 verwenden.

Die Nachteile dieser Technik sind das Synchronisieren mehrerer Versionen von Bibliotheken und Build-Probleme. Es ist auch schwierig, mehrere Technologien zu verwenden. Das endgültige Paket wird ebenfalls umfangreich sein, da es alle Abhängigkeiten enthalten wird. Darüber hinaus müssen alle Änderungen der Abhängigkeiten erneut implementiert werden, und der Container und alle Micro-Frontends sind eng miteinander verbunden.

Laufzeitintegration
Kompositionen für die Laufzeitintegration werden in drei Typen eingeteilt:

  • Serverseitige Zusammensetzung: Die Backend-Funktionalität bestimmte, welches Micro-Frontend wann geladen werden sollte. URLs bestimmen, wie der Server Anfragen weiterleitet.
  • Randseitige Zusammensetzung: Die Orchestrierung erfolgt auf dem CDN selbst. Es kann aktive Backends handhaben, die normalerweise vom Server verarbeitet werden. Es ist auch in der Lage, statisches Material zu liefern.
  • Zusammensetzung auf Kundenseite: Die Container entscheiden, welche Version der Frontends bereitgestellt werden soll, da beide entkoppelt sind. Bei Bedarf kann der Host Microservices anfordern.
blue arrow to the left
Imaginary Cloud logo

Fazit

Die Micro-Frontend-Architektur eignet sich besonders für große Webentwicklungsprojekte, die auf Microservices basieren. Sie ermöglicht die Entwicklung verschiedener Komponenten durch separate, autonome Teams von Programmierern. Infolgedessen bietet es mehrere Vorteile, darunter eine schnellere Einführung neuer Funktionen, einfacheres Testen einzelner Komponenten und reibungslosere Updates.

Trotz der Vorteile von Micro-Frontends gibt es auch einige Nachteile. Es kann beispielsweise schwierig sein, eine Anwendung in ihrer Gesamtheit zu testen. Mikro-Frontend-Projekte sind auch ziemlich kostspielig, da sie ein großes Team von Entwicklern und Managern erfordern. Berücksichtigen Sie alle Auswirkungen eines Projekts, bevor Sie fortfahren.

Imaginary Cloud hat Erfahrung mit Mikrofrontends und monolithischen Frontends, sodass Sie sich keine Sorgen machen müssen. Nehmen Sie Kontakt mit uns auf und wir werden Ihre Anfrage ausführlich besprechen.

New call-to-action
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Alexandra Mendes
Alexandra Mendes

Inhaltsautor mit großer Neugier auf die Auswirkungen der Technologie auf die Gesellschaft. Immer umgeben von Büchern und Musik.

Read more posts by this author
André Santos
André Santos

Your everyday web developer who likes to hide in the backend. Javascript and Ruby are my jam. I still fumble with Docker and my builds break quite often.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon