In Modul 4.5 haben Sie die Kladde auf Orleans verteilt: Angebote, Termine und Deals leben in Grains, über mehrere Silos. In diesem Modul haben Sie einen Dienst herausgelöst. Beides heißt „verteiltes System“, und beides verteilt Arbeit auf mehrere Rechner. Trotzdem beantworten die beiden Werkzeuge verschiedene Fragen. Diese letzte Lektion des Moduls legt sie nebeneinander, damit Sie für ein neues Stück der Kladde begründet sagen können: ein Grain, ein eigener Dienst, oder beides.

Zwei Antworten auf zwei Fragen

Orleans Microservices
Die Frage Wie verteile ich Zustand und Rechenarbeit vieler kleiner Objekte auf mehrere Rechner, ohne dass mein Code davon handelt? Wie trenne ich Teile eines Systems so, dass Teams sie unabhängig bauen, ausliefern und betreiben?
Was getrennt wird Aktivierungen auf Silos, je Objekt Programme, Deployments, Datenbanken, Teams
Was gemeinsam bleibt ein Programm, ein Deployment, ein Cluster, ein Typsystem ein Vertrag über das Netz
Konsistenz je Grain, ein Aufruf nach dem anderen je Dienst; dazwischen Sagas und letztliche Konsistenz
Aufruf zwischen Teilen ein Methodenaufruf auf einer Grain-Schnittstelle, Orleans findet das Silo HTTP, gRPC oder eine Nachricht, mit allem aus Lektion 4.12.2
Ein neues Feld im Vertrag Grain-Schnittstellen versionieren, alle Silos rollen gemeinsam aus Vertrag versionieren, jeder Dienst liefert für sich aus

Ein Orleans-Cluster ist also, aus der Sicht der Teams, ein Ding: ein Programm, das sich selbst über Rechner verteilt. Die Grains darin sind fein geschnitten, aber sie werden zusammen gebaut und ausgerollt. Microservices dagegen trennen grob, aber wirklich: Zwischen zwei Diensten steht das Netz, und jeder Dienst kann eine andere Version, ein anderes Team und eine andere Technik haben.