Raus aus der Legacy-Falle: Single Page Applications und Micro-Apps

Entscheidung treffen

Nachdem nun mehrere Ansätze für die Umsetzung von Micro-Apps zur Auswahl stehen, drängt sich die Frage auf, welcher für die eigene Applikation am besten geeignet ist. Das ist nicht einfach zu beantworten, da jeder Ansatz seine Vor- und Nachteile hat, die nun gegen die Architekturanforderungen zu validieren sind. Zur Unterstützung der Entscheidung hat der Autor auf Basis praktischer Projekterfahrung den nachfolgenden Entscheidungsbaum (Abbildung 3) erstellt. Damit lassen sich zwar ebenfalls keine allgemeingültigen Antworten liefern, nichtsdestotrotz hat er sich als nützlich erwiesen, um einen ersten guten Ansatz zu identifizieren.

Abbildung 3: Entscheidungsbaum für die Technikauswahl

Immer wenn es möglich ist, empfiehlt der Entscheidungsbaum den Einsatz von Hyperlinks. Das ist die einfachste Variante und das Team hält sich damit viele Optionen offen. Hyperlinks sind nur sinnvoll, wenn die Apps wenig Zustand teilen müssen und der Benutzer nur selten zwischen den Micro-Apps navigieren muss. Erstrecken sich viele zentrale Anwendungsfälle über mehrere Micro-Apps, ist der Ansatz für die Benutzerfreundlichkeit kontraproduktiv. Im Idealfall beschränken sich zwar alle Anwendungsfälle auf eine Micro-App, doch das vorgestellte Beispiel zeigt, dass das häufig nicht der Fall ist. Beispielsweise tangiert das Buchen von Flügen die drei Bereiche Flüge, Passagiere und Bezahlung.

Scheiden Hyperlinks aus, stellt der Baum die Frage, ob die Shell Legacy-Anwendungen integrieren soll oder aus den diskutierten Gründen eine starke Isolation benötigt. In solchen Fällen schlägt der Entscheidungsbaum iframes vor, obwohl sie nicht für öffentliche Portale geeignet sind.

Als nächstes wirft der Entscheidungsbaum die Frage auf, ob man autarke Teams benötigt. Das beinhaltet die Möglichkeit, eigenständig zu deployen und eigenständig Technikentscheidungen treffen zu können. Ist das nicht gewünscht, zahlt sich der Mehraufwand für Micro-Apps wahrscheinlich nicht aus. Dann empfiehlt der Baum einen Client-Monolithen. Ansonsten sind Web Components das Mittel der Wahl.