Dieser Beitrag ist Teil einer sechsteiligen Serie über Microservices-Prinzipien. Die anderen Teile sind: Geschäftsfähigkeit, Autonomie, Asynchrone Kommunikation, Beste Technologie und Ein Team.
Microservices sind ein heißes Thema. Um Unternehmen dabei zu helfen, das Beste aus diesem neuen Architekturstil herauszuholen, hat Xebia eine Reihe von Prinzipien definiert, die unserer Meinung nach bei der Implementierung einer Microservice-Architektur angewandt werden sollten. Heute besprechen wir das Domain Driven Design (DDD) Konzept des"Bounded Context" und wie es eine wichtige Rolle bei der Entwicklung von Microservices spielt.
Einer der Diskussionspunkte rund um Microservices, seit der Begriff im Jahr 2013 geprägt wurde, ist die Frage, wie groß (oder besser gesagt, wie klein) ein Microservice sein sollte. Einige Leute, wie Fred George, behaupten, dass Dienste klein sein sollten, vielleicht zwischen 100-1000 Zeilen Code (LoC). LoC ist jedoch ein schlechter Maßstab für die Messung von Software im Allgemeinen und erst recht für die Bestimmung des Umfangs eines Microservice. Bei der Bestimmung des Umfangs unserer Microservices achten wir vielmehr auf die Funktionalität, die ein Dienst bereitstellen muss, und darauf, wie der Dienst mit anderen Diensten zusammenhängt. Unser Ziel ist es, Microservices zu entwerfen, die autonom sind, d.h. eine geringe Kopplung mit anderen Services aufweisen, über gut definierte Schnittstellen verfügen und eine einzige Geschäftsfunktion implementieren, d.h. eine hohe Kohäsion aufweisen. Eine Technik, die hierfür verwendet werden kann, ist das "Context Mapping". Mit dieser Technik identifizieren wir die verschiedenen Kontexte in der IT-Landschaft und deren Grenzen. Die Context Map ist das wichtigste Instrument, um die Grenzen zwischen den Domänen deutlich zu machen. Ein Bounded Context kapselt die Details einer einzelnen Domäne, wie Domänenmodell, Datenmodell, Anwendungsdienste usw., und definiert die Integrationspunkte mit anderen Bounded Contexts/Domänen. Dies passt perfekt zu unserer Definition eines Microservice: autonome, klar definierte Schnittstellen, die eine Geschäftsfunktion implementieren. Das macht Context Mapping (und DDD im Allgemeinen) zu einem ausgezeichneten Werkzeug in der Werkzeugkiste des Architekten für die Identifizierung und den Entwurf von Microservices.Verfasst von
Marco van der Linden
Unsere Ideen
Weitere Blogs
Contact



