Die Lösung besteht darin, ein API-Gateway für jeden Client zu haben, das Backends for Front Ends (BFF)-Muster, das von Phil Calado (philcalcado.com/) und seinen Kollegen bei SoundCloud entwickelt wurde. Wie Abbildung 5 zeigt, wird jedes API-Modul zu einem eigenen eigenständigen API-Gateway, das von einem einzelnen Client-Team entwickelt und betrieben wird. Das MVC-Muster hat sich in der Folge weiterentwickelt[14], wodurch Varianten wie hierarchische Modell-Ansichts-Controller (HMVC), Model-View-Adapter (MVA), Model-View-Presenter (MVP), Model-View-Viewmodel (MVVM) und andere, die MVC an verschiedene Kontexte angepasst haben, entstanden sind. Netflix Hystrix ist eine gute Implementierung des Leistungsschaltermusters. Es hilft Ihnen auch, einen Fallback-Mechanismus zu definieren, der verwendet werden kann, wenn der Leistungsschalter fahrten. Das bietet eine bessere Benutzererfahrung. In diesem Handbuch und der Referenzbeispielanwendung (eShopOnContainers) ist die Architektur auf eine einfachere und maßgeschneiderte Containerarchitektur beschränkt, um sich auf einfache Container zu konzentrieren, ohne PaaS-Produkte wie Azure API Management zu verwenden. Für große Microservice-basierte Anwendungen, die in Microsoft Azure bereitgestellt werden, empfehlen wir Ihnen jedoch, Azure API Management als Basis für Ihre API-Gateways in der Produktion zu bewerten. Model-View-Controller (in der Regel als MVC bezeichnet) ist ein Software-Entwurfsmuster[1], das häufig für die Entwicklung von Benutzeroberflächen verwendet wird, die die zugehörige Programmlogik in drei miteinander verbundene Elemente unterteilt. Dies geschieht, um interne Darstellungen von Informationen von der Art und Weise zu trennen, wie Informationen dem Benutzer präsentiert und vom Benutzer akzeptiert werden. [2] [3] Diese Art von Muster wird zum Entwerfen des Layouts der Seite verwendet. Nach den ersten Erläuterungsabschnitten für Architektur und Muster wird in den nächsten Abschnitten erläutert, wie API-Gateways mit Ocelot implementiert werden.

Die Anwendungsarchitektur versucht sicherzustellen, dass die Anwendungssuite, die von einer Organisation zum Erstellen der Zusammengesetzten Architektur verwendet wird, skalierbar, zuverlässig, verfügbar und verwaltbar ist. Wie Sie vielleicht erwarten, hat das API-Gateway-Muster sowohl Vorteile als auch Nachteile. Amazon.com hatte ursprünglich eine zweistufige Architektur. Um zu skalieren, migrierten sie zu einer serviceorientierten Architektur, die aus Hunderten von Backend-Diensten bestand. Mehrere Anwendungen rufen diese Dienste auf, einschließlich der Anwendungen, die die Amazon.com Website und die Webdienst-API implementieren. Die Amazon.com Website-Anwendung ruft 100-150 Dienste auf, um die Daten zu erhalten, die zum Erstellen einer Webseite verwendet wurden. Wie bei anderen Softwaremustern drückt MVC den “Kern der Lösung” zu einem Problem aus, während es für jedes System angepasst werden kann. [8] Bestimmte MVC-Designs können hier erheblich von der traditionellen Beschreibung abweichen. [9] Die Implementierung von Sicherheits- und Querschnittssorgen wie Sicherheit und Autorisierung für jeden Microservice kann erheblichen Entwicklungsaufwand erfordern.