Was ist serviceorientierte Architektur (SOA)?

Serviceorientierte Architektur (SOA) ist ein Architekturansatz zum Entwerfen von Anwendungen rund um eine Sammlung unabhängiger Dienste. Ein Dienst kann jede Geschäftsfunktionalität sein, die eine Aktion ausführt und ein bestimmtes Ergebnis liefert, z. B. die Bearbeitung einer Kundenbestellung oder die Erstellung eines Bestandsberichts. Dienste können zusammengefügt werden, um zusammengesetzte Anwendungen zu erstellen, die Endbenutzern mehr Funktionalität bieten.

Zu den Vorteilen des SOA-Ansatzes gehört, dass sich Servicekomponenten einfacher warten und aktualisieren lassen. Da die einzelnen Komponenten kompakter und eigenständiger sind, können Codefehler leichter behoben oder Elemente ersetzt werden, ohne dass dies Auswirkungen auf alle anderen Elemente hat. Es treten jedoch Probleme auf, wenn wir bestimmen, wie die Kommunikation zwischen Diensten am besten ermöglicht werden kann. SOA wird typischerweise mit dem Enterprise Service Bus (ESB) als zentrales Kommunikationsmittel zwischen Diensten in Verbindung gebracht. ESBs reagieren häufig nicht gut auf Änderungen, führen typischerweise zu mehr Komplexität und erschweren das Verständnis, wo ein Dienst beginnt und endet.

SOA vs. Mikroservices

Wenn Sie denken, dass SOA stark nach der aktuellen Definition von Microservices klingt, sind Sie nicht allein. Microservices sind ebenfalls kleine, in sich geschlossene Dienste, die unabhängig voneinander funktionieren, aber auch zusammenarbeiten sollen. Es gibt jedoch wesentliche Unterschiede zwischen SOA und Microservices. Hier sind einige Hinweise:

  • Microservices sind sehr feinkörnige Dienste, die aus funktionalen Gründen auf einer bestimmten Granularitätsebene getrennt sind. Dies bedeutet, dass in einer Microservices-Architektur ein Dienst – einschließlich der Datenbank- und Anwendungsserver sowie des Produktsupports – durchgängig vom selben Team verwaltet wird. SOA hingegen trennt die Dienste auf logische Weise. Der Unterschied besteht darin , dass logisch gruppierte Dienste zwischen Funktionen gemeinsam genutzt werden. Das klingt gut … bis der Dienst ausfällt und alle darauf angewiesenen Funktionen beeinträchtigt werden. Microservices-Architekturen sind darauf ausgelegt, diese Auswirkungen zu eliminieren, indem sie die Geschäftsdienste vollständig in ihren einzigartigen Funktionen einschließen, zusammen mit allem, was zur Erfüllung dieser Funktionen und zur Schaffung von Geschäftswert erforderlich ist – selbst wenn dies bedeutet, dass dabei einige Dinge dupliziert werden.
  • Da Microservices vollständig auf ihre Funktionen beschränkt sind, unterliegen sie auch nicht denselben Kommunikationsrahmen, Protokollen und Spezifikationen, die SOA letztlich einschränken. Stattdessen liegt der Schwerpunkt bei Microservices darauf, die Intelligenz in jedem Endpunktsatz beizubehalten und über eine einfache Struktur zu verfügen, um sie zu verbinden. Dies lässt sich häufig am besten durch die Implementierung eines einzelnen API-Gateways erreichen, das die interne Systemarchitektur beherbergt und Anfragen mithilfe einfacher Webprotokolle wie REST an die einzelnen unabhängigen Mikrodienste weiterleitet. Darüber hinaus nutzt jeder Microservice häufig APIs von anderen Services – das Gateway verhindert jedoch, dass mobile Apps jemals das Back-End berühren. Eine SOA kann diesen Grad an Flexibilität niemals erreichen, da sie durch Webservice-Spezifikationen belastet ist und sich zum Verbinden von Anwendungen auf ESB verlässt.

Viele Menschen glauben, dass Microservices die endlich richtige SOA sind. Tatsächlich gibt es jedoch eine Reihe entscheidender Unterschiede zwischen den beiden Systemen – und diese machen Microservices in vielerlei Hinsicht zur effektiveren Architekturwahl für komplexe Anwendungen. Weitere Informationen zu SOA und Microservices erhalten Sie im kostenlosen E-Book „Building Microservices“: Entwurf feinkörniger Systeme .

Wie kann NGINX helfen?

NGINX Plus und NGINX sind die besten Lastausgleichslösungen ihrer Klasse, die von Websites mit hohem Datenverkehr wie Dropbox, Netflix und Zynga verwendet werden. Mehr als 350 Millionen Websites weltweit verlassen sich auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.

Als softwarebasierter Application Delivery Controller (ADC) ist NGINX Plus darauf ausgelegt, Microservices-Architekturen weitaus effektiver und kostengünstiger zu unterstützen als Hardwarelösungen mit vergleichbaren Funktionen.

  • NGINX Plus bietet eine vollständige Lösung für die Anwendungsbereitstellung und den Lastenausgleich, die die Leistung und Zuverlässigkeit jedes Mikrodienstes erhöht.
  • NGINX Plus ist flexibel und skalierbar genug, um als API-Gateway und als Endpunkt für jeden Dienst in Ihren Stack zu passen.
  • NGINX Plus fungiert als Hochleistungs-HTTP-Server, um Microservice-Aktionen mit maximaler Geschwindigkeit und Effizienz auszuführen.