Zum Inhalt springen

Microservices an unabhängigen Änderungen ausrichten

Getrennte Dienste lohnen eine Prüfung, wenn fachliche Grenzen, Datenverantwortung und unabhängige Auslieferung zusammenpassen.

Katharina Weber2 Min. Lesezeit
Heller Würfel mit zwei blauen waagerechten Trennlinien und leicht blau schattierter Seite.

Welche Änderung soll unabhängig möglich werden?

Eine Anwendung auf mehrere Dienste zu verteilen schafft noch keine unabhängige Weiterentwicklung. Müssen dieselben Personen bei jeder Preisregel alle Dienste gemeinsam ändern und ausliefern, bleibt die Abstimmung bestehen. Hinzu kommen Aufrufe über das Netzwerk und weitere Betriebsaufgaben.

Microsoft beschreibt unabhängige Bereitstellung und eigene Datenverantwortung als wesentliche Merkmale. Unser Ausgangspunkt für die Entscheidung ist deshalb eine konkrete Änderung: Welcher fachliche Bereich soll sie ohne gleichzeitige Anpassung anderer Bereiche tragen können?

Beispiel: Angebote und Aufträge bleiben zunächst zusammen

Das folgende Produkt und seine Arbeitsweise sind erfunden. Ein Team betreut Angebote, Aufträge und Berichte. Preisregeln ändern sich gemeinsam in Angebot und Auftrag. Die Berichtsformate haben einen anderen Änderungsbedarf.

Beobachtete Grenze im Beispiel

Vorläufige Entscheidung

Was die Entscheidung stützen muss

Angebot und Auftrag teilen sich dieselbe fachliche Preisänderung.

Gemeinsam ausliefern, intern klar gegliedert.

Zuständigkeit und Modulzugriffe sind ausdrücklich geregelt.

Berichtsformate können sich unabhängig verändern.

Ein eigenes Modul; einen separaten Dienst bei belegtem Bedarf prüfen.

Stabile Datenschnittstelle, verantwortlicher Betrieb und benötigte Aktualität der Daten sind geklärt.

In dieser Planung bleibt die Anwendung zunächst ein modularer Monolith: innere Grenzen, gemeinsame Auslieferung. Spring Modulith zeigt beispielhaft die Unterscheidung von öffentlicher Modulschnittstelle und innerer Umsetzung. Diese Trennung ist auch ohne die Wahl dieses konkreten Werkzeugs sinnvoll zu beschreiben.

Nehmen Sie den Betrieb in die Entscheidung auf

Ein separater Berichtsdienst müsste mit Ausfällen seiner Datenquelle umgehen. Jemand müsste Bereitstellung, Überwachung und Fehlerklärung verantworten. Das Team braucht außerdem Regeln, nach denen alte und neue Schnittstellenversionen während einer Umstellung zusammenarbeiten. Ein eigener Prozess allein erfüllt diese Bedingungen nicht.

Halten Sie den Grund für eine spätere Trennung fest: beispielsweise tatsächlich notwendige unabhängige Auslieferung oder eine anders zu behandelnde Last. Prüfen Sie dabei Kopplung, Datenzugriff und Betriebsaufwand erneut. Auch gemeinsam ausgelieferte Module können klar strukturiert sein. Umgekehrt kann ein gut abgegrenzter Dienst gerechtfertigt sein, bevor die übrige Anwendung aufgeteilt wird. Die Zahl der Dienste ist kein Qualitätsmaß für diese Entscheidung.

Quellen

Geschrieben von

  • Katharina WeberRedakteurin für Software und TechnologieKatharina Weber betreut bei ASES die Beiträge zur Softwareentwicklung. Sie schreibt über Fragen, die Unternehmen bei der Auswahl von Software, der Entwicklung neuer Anwendungen und der Modernisierung bestehender Systeme beschäftigen.

ASES folgen

Weiterlesen

Alle Beiträge

Softwareentwicklung mit ASES

Individuelle Software, Web- und Mobile-Apps