© T.Sumaetho/Shutterstock.com
Entwickler Magazin
Wie man SPAs und Microservices verheiratet

Angular in einer Microservices-Welt

Zwei der wichtigsten Architekturtrends in der Webentwicklung sind zurzeit Microservices und Single Page Applications (SPAs). Doch wie bringt man beides zusammen? Eine allgemeingültige Lösung für dieses noch recht junge Problem zeichnet sich nicht ab. Wir diskutieren in diesem Artikel fünf Ansätze mit ihren Vor- und Nachteilen. Nach der Lektüre sollten Sie in der Lage sein, selbst zu entscheiden, welcher der richtige für Sie ist.

Manfred Steyer


Microservices erfreuen sich großer Beliebtheit, Single Page Applications auch. Wie man diese beiden Ansätze am besten verwendet, habe ich in den letzten Monaten immer wieder mit meinen Kunden diskutiert. Das Spannende daran ist, dass es hierfür keine eindeutige Antwort gibt. Wie so häufig, hängt es stark von den Prioritäten ab und somit auch von den Gründen, warum die Entscheidung für Microservices gefallen ist. Deshalb stelle ich hier einige Möglichkeiten vor und bewerte sie im Hinblick auf ausgewählte Architekturziele, die für Microservices und Angular-Clients sprechen (Tabelle 1).

ArchitekturzielBeschreibungIsolation zu anderen SPAsInwieweit ist die Angular-Anwendung von anderen Single Page Applications, die im Browser laufen, abgeschottet? Können sich die einzelnen Anwendungen gegenseitig beeinflussen?Separates DeploymentLassen sich die einzelnen Single Page Applications separat deployen?Unterschiedliche FrameworksKönnen unterschiedliche Single Page Applications mit unterschiedlichen Frameworks in unterschiedlichen Versionen geschrieben werden?Single Page ShellPräsentiert sich die Shell, die die Navigation zwischen den einzelnen Single Page Applications erlaubt, auch als SPA oder verhält sich die Lösung wie eine klassische Webanwendung, die einzelnen Seiten nachlädt und keine Zustände lokal vorhalten kann?Tree ShakingLassen sich Bundle-Größen durch das Abstoßen nicht benötigter Frameworkbestandteile optimieren?

Tabelle 1: Architekturziele für SPA im Microservices-Umfeld

Variante eins: Integration via Hyperlinks

Die wohl einfachste Möglichkeit, verschiedene Clients im Rahmen einer Microservices-Architektur zu integrieren, ist der Einsatz von Hyperlinks. Auf diese Weise referenzieren sich die einzelnen Clients gegenseitig. Außerdem können übergeordnete Shell-Anwendungen die Clients aufrufen. Während es sich bei diesen Clients um SPAs handelt, trifft das auf die Gesamtlösung nicht zu. Die Seitenwechsel beim Übergang zwischen den Clients hat zur Folge, dass die aktuelle SPA beendet wird und auch deren Zustände verloren gehen. Gerade die Möglichkeit, Zustände im Client vorhalten zu können, führt jedoch bei SPAs zu einer erhöhten Benutzerfreundlichkeit. Das ist ein großer Unterschied zu klassischen Webanwendungen, wo Zustände im Weblayer nicht gerne gesehen sind. Um diesen Nachteil zu kompensieren, könnte man die clientseitigen Zustände regelmäßig sichern. Hierfür bieten sich Browserdatenbanken wie IndexedDB an. Alternativ dazu lassen sich die Zustände au...

Entwickler Magazin
Wie man SPAs und Microservices verheiratet

Angular in einer Microservices-Welt

Zwei der wichtigsten Architekturtrends in der Webentwicklung sind zurzeit Microservices und Single Page Applications (SPAs). Doch wie bringt man beides zusammen? Eine allgemeingültige Lösung für dieses noch recht junge Problem zeichnet sich nicht ab. Wir diskutieren in diesem Artikel fünf Ansätze mit ihren Vor- und Nachteilen. Nach der Lektüre sollten Sie in der Lage sein, selbst zu entscheiden, welcher der richtige für Sie ist.

Manfred Steyer


Microservices erfreuen sich großer Beliebtheit, Single Page Applications auch. Wie man diese beiden Ansätze am besten verwendet, habe ich in den letzten Monaten immer wieder mit meinen Kunden diskutiert. Das Spannende daran ist, dass es hierfür keine eindeutige Antwort gibt. Wie so häufig, hängt es stark von den Prioritäten ab und somit auch von den Gründen, warum die Entscheidung für Microservices gefallen ist. Deshalb stelle ich hier einige Möglichkeiten vor und bewerte sie im Hinblick auf ausgewählte Architekturziele, die für Microservices und Angular-Clients sprechen (Tabelle 1).

ArchitekturzielBeschreibungIsolation zu anderen SPAsInwieweit ist die Angular-Anwendung von anderen Single Page Applications, die im Browser laufen, abgeschottet? Können sich die einzelnen Anwendungen gegenseitig beeinflussen?Separates DeploymentLassen sich die einzelnen Single Page Applications separat deployen?Unterschiedliche FrameworksKönnen unterschiedliche Single Page Applications mit unterschiedlichen Frameworks in unterschiedlichen Versionen geschrieben werden?Single Page ShellPräsentiert sich die Shell, die die Navigation zwischen den einzelnen Single Page Applications erlaubt, auch als SPA oder verhält sich die Lösung wie eine klassische Webanwendung, die einzelnen Seiten nachlädt und keine Zustände lokal vorhalten kann?Tree ShakingLassen sich Bundle-Größen durch das Abstoßen nicht benötigter Frameworkbestandteile optimieren?

Tabelle 1: Architekturziele für SPA im Microservices-Umfeld

Variante eins: Integration via Hyperlinks

Die wohl einfachste Möglichkeit, verschiedene Clients im Rahmen einer Microservices-Architektur zu integrieren, ist der Einsatz von Hyperlinks. Auf diese Weise referenzieren sich die einzelnen Clients gegenseitig. Außerdem können übergeordnete Shell-Anwendungen die Clients aufrufen. Während es sich bei diesen Clients um SPAs handelt, trifft das auf die Gesamtlösung nicht zu. Die Seitenwechsel beim Übergang zwischen den Clients hat zur Folge, dass die aktuelle SPA beendet wird und auch deren Zustände verloren gehen. Gerade die Möglichkeit, Zustände im Client vorhalten zu können, führt jedoch bei SPAs zu einer erhöhten Benutzerfreundlichkeit. Das ist ein großer Unterschied zu klassischen Webanwendungen, wo Zustände im Weblayer nicht gerne gesehen sind. Um diesen Nachteil zu kompensieren, könnte man die clientseitigen Zustände regelmäßig sichern. Hierfür bieten sich Browserdatenbanken wie IndexedDB an. Alternativ dazu lassen sich die Zustände au...

Neugierig geworden?


   
Loading...

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