Was ist eine serviceorientierte Architektur (SOA)?
Serviceorientierte Architektur (SOA) ist ein Architekturansatz, bei dem Anwendungen auf der Grundlage einer Sammlung unabhängiger Services entwickelt werden. Ein Service kann eine beliebige Geschäftsfunktion sein, die eine Aktion ausführt und ein bestimmtes Ergebnis liefert, beispielsweise die Bearbeitung einer Kundenbestellung oder die Erstellung eines Bestandsberichts. Services können zu zusammengesetzten Anwendungen verknüpft werden, die Endbenutzern einen größeren Funktionsumfang bieten.
Zu den Vorteilen des SOA-Ansatzes gehört, dass sich Servicekomponenten leichter warten und aktualisieren lassen. Da jede Komponente kompakter und in sich geschlossen ist, können Codefehler einfacher behoben oder Elemente ausgetauscht werden, ohne dass sich dies auf alle anderen Elemente auswirkt. Herausforderungen ergeben sich jedoch bei der Frage, wie die Kommunikation zwischen den Services am besten ermöglicht werden kann. SOA wird üblicherweise mit dem Enterprise Service Bus (ESB) als zentralem Kommunikationsmittel zwischen Services in Verbindung gebracht. ESBs können häufig nur schlecht auf Änderungen reagieren, führen in der Regel zu mehr Komplexität und erschweren es, zu erkennen, wo ein Service beginnt und endet.
SOA vs. Microservices
Wenn Sie finden, dass SOA der heutigen Definition von Microservices sehr ähnlich klingt, sind Sie nicht allein. Auch Microservices sind kleine, eigenständige Dienste, die unabhängig voneinander funktionieren und zugleich zusammenarbeiten sollen. Es gibt jedoch wesentliche Unterschiede zwischen SOA und Microservices. Hier sind einige davon:
- Microservices sind sehr feingranulare Dienste, die mit einem bestimmten Granularitätsgrad aus einem funktionalen Grund voneinander getrennt sind. Das bedeutet, dass in einer Microservices-Architektur ein Dienst – einschließlich der Datenbank- und Anwendungsserver sowie des Produktsupports – durchgängig von demselben Team verwaltet wird. SOA hingegen trennt Dienste auf logische Weise. Der Unterschied besteht darin dass logisch gruppierte Dienste von mehreren Funktionen gemeinsam genutzt werden. Das klingt gut … bis der Dienst ausfällt und alle davon abhängigen Funktionen beeinträchtigt werden. Microservices-Architekturen sollen diese Auswirkungen vermeiden, indem sie Geschäftsdienste vollständig innerhalb ihrer jeweiligen Funktionen kapseln – zusammen mit allem, was zur Erfüllung dieser Funktionen und zur Schaffung eines geschäftlichen Mehrwerts erforderlich ist –, selbst wenn dafür an anderer Stelle etwas dupliziert werden muss.
- Da Microservices vollständig nach Funktionen gekapselt sind, sind sie auch nicht an dieselben Kommunikationsframeworks, Protokolle und Spezifikationen gebunden, die SOA letztlich einschränken. Stattdessen zielen Microservices darauf ab, die Intelligenz innerhalb der jeweiligen Endpunktgruppen zu halten und sie über eine einfache Infrastruktur miteinander zu verbinden. Dies lässt sich häufig am besten durch die Implementierung eines zentralen API-Gateways erreichen, das die interne Systemarchitektur kapselt und Anfragen mithilfe schlanker Webprotokolle wie REST an die einzelnen unabhängigen Microservices weiterleitet. Darüber hinaus nutzt jeder Microservice häufig APIs anderer Dienste – das Gateway verhindert jedoch, dass mobile Apps jemals direkt auf das Backend zugreifen. Dieses Maß an Flexibilität kann SOA, das durch Webservice-Spezifikationen belastet ist und zur Verbindung von Anwendungen auf einen ESB angewiesen ist, niemals erreichen.
Viele Menschen betrachten Microservices zwar als endlich richtig umgesetzte SOA, tatsächlich gibt es jedoch eine Reihe entscheidender Unterschiede zwischen den beiden Ansätzen, die Microservices in vielerlei Hinsicht zur effektiveren Architekturwahl für komplexe Anwendungen machen. Weitere Informationen zu SOA und Microservices finden Sie in unserem kostenlosen E-Book Microservices entwickeln: Feingranulare Systeme entwerfen.
Wie kann NGINX helfen?
NGINX Plus und NGINX sind erstklassige Load-Balancing-Lösungen, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit vertrauen auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.
Als softwarebasierter Application Delivery Controller (ADC) unterstützt NGINX Plus Microservices-Architekturen wesentlich effektiver und kostengünstiger als Hardwarelösungen mit vergleichbarem Funktionsumfang.
- NGINX Plus bietet eine umfassende Lösung für die Anwendungsbereitstellung und den Lastenausgleich, die die Leistung und Zuverlässigkeit jedes Microservice erhöht.
- NGINX Plus ist flexibel und skalierbar genug, um sich als API-Gateway und als Endpunkt für jeden Dienst in Ihren Stack einzufügen.
- NGINX Plus fungiert als leistungsstarker HTTP-Server, der Microservice-Aktionen mit maximaler Geschwindigkeit und Effizienz ausführt.

