Haftungsausschluss
Ich hoffe, ich trete niemandem auf die Zehen oder beleidige die Enthusiasten beider Konzepte
Hintergrund
Ich habe nach echten Unterschieden zwischen serviceorientierter Architektur und Microservices gesucht , ohne eine klare Antwort zu finden.
Ich lese Dinge wie:
- die Nebenwirkungen von SOA
- SOA ist Anti-Pattern
- Microservices kamen, um die Fehler von SOA zu beheben
- ESBs sind nicht wirklich ESBs, sondern EAIs
- Übermäßiges Vertrauen in Message Brokers
- Anbieter missbrauchen den Begriff SOA und versuchen, ihre Produkte zu verkaufen
- SOA wächst unkontrolliert
Dennoch definiert nichts klar die architektonischen Unterschiede zwischen serviceorientierter Architektur (als Konzept) und Microservices (als Konzept).
Nach meinem Verständnis haben beide:
- Dienstleister, die nur eines tun
- Service Gateway / ESB stellt diese Dienste Verbrauchern zur Verfügung
- Service-Verbraucher, die über ESB / Service Gateway auf Services zugreifen
Frage
Gibt es etwas anderes als die Umbenennung von SOA in Microservices? Ist es eine technologische Einschränkung, die verhindert, dass Microservices zu Makros werden?
Hinweis: Ich suche keine Meinungen, nur harte Fakten, hoffentlich in Stichpunkten
Verweise
- Fragen zum Software-Engineering
- Martin Fowlers Site (Ich denke, er hasst es sehr)
- Info Welt
- Michael Fethers 'Website
- Fragen zum Stapelüberlauf
Aktualisieren
Es scheint, dass eine ähnliche Debatte in einer Stapelüberlauffrage stattgefunden hat , bei der die Meinungen geteilt wurden, ob Microservices eine serviceorientierte Architektur sind oder nicht.
Schlussfolgerung aus der SO-Frage:
- MS ist ein Sonderfall von SOA
- MS befürworten kleinere Anwendungen von Hosting-Diensten
- MS ist technologieabhängig (die Verwendung von HTTP anstelle von offenen Protokolloptionen)
- MS setzt auf Technologie, um Disziplin durchzusetzen (automatische Bereitstellung von Diensten)
- MS betrachtet ESBs (böse), verwendet jedoch API-Gateways, bei denen es sich meiner Meinung nach um eine Art ESB handelt
Daraus folgt, dass MS SOA ist, wenn Folgendes zutrifft:
- Unterstützen MS den Begriff Orchestrierung? Ein oder mehrere Masterprozesse verwalten Workflows
- Gibt es in MS eine Nachrichtenbroker-Schicht? Eine Reihe von Adaptern, die Nachrichtenformate aus dem Nachrichtenbereich der Dienstproduzenten an die Dienstkonsumenten übersetzen
- Können Microservices Daten aus monolithischen Unternehmensanwendungen lesen? Können es APIs einer monolithischen Anwendung sein? oder müssen es eigenständige Anwendungen sein, die unabhängig arbeiten können?
Wenn sich die Antwort auf die letzte Frage als Nein herausstellen würde, wäre Microservices nicht in der Lage, komplexe Workflow-Systeme, z. B. Kreditkartenverwaltungssysteme oder Abstimmungssysteme, zu handhaben
Martin Fowler's Site (I think he hates it big time)
Das waren nicht meine Gefühle, als ich zu seinem Vortrag in Barcelona ging. Er ist sich der Kompromisse bewusst und wie sich die Menschen blindlings auf diese Architektur verlagert haben, ohne zu berücksichtigen, dass MS nicht für jeden geeignet ist.