Spring GDS 25. Jubiläum
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Microservices sind ein Architekturstil, bei dem eine Anwendung in kleine, unabhängige Services geteilt wird, jeder Eigentümer einer Fähigkeit und mit den anderen über das Netzwerk verbunden, meist über APIs. Zahlungen sind ein Service. Suche ein weiterer. Benachrichtigungen ein weiterer. Jeder kann von einem anderen Team gebaut, deployt, skaliert und sogar in einer anderen Sprache geschrieben werden, ohne den Rest anzufassen.
Die Alternative ist ein Monolith, bei dem all diese Logik in einer einzigen deploybaren Codebasis steckt. Microservices bringen unabhängiges Deployment, gezieltes Skalieren und Fehlerisolierung: Fällt die Suche aus, läuft der Checkout weiter. Dafür kosten sie die Komplexität verteilter Systeme. Netzwerkaufrufe scheitern, Daten verteilen sich über Services, und eine einzelne Anfrage über ein Dutzend Sprünge zu verfolgen, ist wirklich schwer. Ein Online-Marktplatz skaliert seinen Suchdienst während eines Sale auf hundert Instanzen, während der Profildienst still auf zweien läuft, genau die Art unabhängiger Skalierung, die ein Monolith nicht sauber leisten kann.
Microservices sind keine Standardwahl. Sie zahlen sich bei großen Systemen und großen Teams aus und bestrafen kleine mit einem Overhead, den ein Monolith nie auferlegen würde.
Der ehrliche Rat, den wir den meisten Kunden geben, lautet, mit einem gut strukturierten Monolithen zu beginnen und Services erst herauszulösen, wenn ein echter Druck es verlangt: ein Team, das ein anderes ständig blockiert, eine Komponente, die eigenständig skalieren muss, ein Systemteil mit ganz anderem Zuverlässigkeitsprofil. Zu früh zu teilen kauft den Schmerz verteilter Systeme, bevor ein Nutzen ihn rechtfertigt. Wir haben mehr Projekte aus verfrühten Microservices gerettet, als wir dorthin gedrängt haben.
Ist der Schnitt gerechtfertigt, zählen die Grenzen zwischen Services mehr als alles andere, und diese Grenzen sind API-Verträge. Unsere individuelle Webanwendungsentwicklung und Headless Entwicklung behandeln diese Verträge als das eigentliche Produkt, mit Versionierung, Tests und klarer Verantwortung. Richtig gemacht, speist die Architektur auch die Plattformstandardisierung, sodass jeder Service gleich gebaut, deployt und beobachtet wird, statt zu einem Dutzend Schneeflocken zu werden.
Wägen Sie Monolith gegen Microservices ab oder entwirren einen, der zu schnell wuchs? Skizzieren wir es gemeinsam.
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Eine Marke in ein funktionierendes Geschäft verwandeln.
Eine halbe Million Menschen. Eine App. Null Chaos.















