Zum Inhalt

Kategorie: Softwarentwicklung

Idee zur Dokumentation von Microservices

Nach einem weiteren Tag abseits eines vernünftigen Entwicklungsrechners entwickelt sich zum vorherigen Posts zum Thema Micrsoservice Konfiguration langsam eine Idee.

Dabei geht es vor allem um das Teilproblem der Dokumentation von Microservices. In einer ersten, noch Prototypisch zu testenden, Idee geht es darum, das sich die einzelnen Microsservices, evtl. mit einem Namen und einer eindeutigen ID, an einem zentralen Service registrieren. Aus dem Request der Registrierung sollte sich die URL des registrierenden Service ermitteln lassen. Diese kann nun für weitere Zwecke gespeichert werden.

Später ließen sich mit einer geeigneten Methode die Registrierungen durchsuchen und z.B. von dieser zentralen Stelle aus die Swagger Dokumentation oder MVC Hilfeseiten aufrufen.

In einem weiteren Schritt könnten die Services Ihre Abhängigkeiten an den Dokumentationsdienst übermitteln. Somit ließe sich die Struktur der Microservices dokumentieren.

Um wieder an den vorherigen Post anzuknüpfen, könnten in einer weiteren Ausbaustufe die URLs der registrierten Services von anderen Services abgefragt werden um sich zu konfigurieren.

Microservices konfigurieren

Da sitz ich nun wegen Krankheit allein zu Hause und grübel mit den Kopf wund wie man am besten Microservices konfiguriert. Daher hier mal kurz meine ersten Gedanken zum Thema niedergeschrieben.

Für einen Kunden entwickeln wir auf Arbeit derzeit eine Anwendung mit einer Microservice Architektur. Diese gliedert sich in Domain Services, welche ausschließlich für Änderungen am Domainmodell zuständig sind, und Application Services, welche diverse Domain Services verwenden um daraus Daten für Anwendungen zu generieren oder Daten von den Anwendungen für die Domainservices aufbereiten.

micrsoservices-system-overview

Das „Problem“ ergibt sich nun aus der Konfiguration der Services. Aktuell enthält jeder Service bzw. Anwendung eine Konfigurationsdatei, in der die URLs der zu verwendenden Services hinterlegt sind. Ist nun einer der Services unter einer anderen URL zu erreichen müssen alle Konfigurationsdateien, die auf diesen Service verweisen angepasst werden.

Ich grübel nun darüber, wie man eine Komponente entwickeln könnte, an der sich die Micrsoservices anmelden und über die sie die URLs ihrer benötigen Services beziehen können. Parallel dazu müssten sich die Services noch in Gruppen teilen lassen, so das sich Services aus einem evtl. laufenden Demo System nicht mit denen eines anderen Demo Systems verbinden sondern nur innerhalb ihrer Gruppe.

Zusätzlich sollten sich lokal laufende Debug Versionen nur mit Versionen auf dem selben PC verbinden. Dies ließe sich jedoch mit Buildkonfigurationen lösen … irgendwie.

Als nettes Feature hätt man immer einen Überblick welche Systeme laufen und welche Abängigkeiten innerhalb diesen besteht.

Nun ja, ich grübel mal noch ein bisschen weiter. Es soll ja Systeme geben, die wohl genau dies können. Tests stehen allerdings noch aus 😉