Der perfekte Microservice

Fazit

Anzeige

Eine Microservice-Architektur macht nur wirklich Sinn, wenn es gelingt, die Services so zuzuschneiden, dass sie fachlich möglichst unabhängig voneinander sind. Anders formuliert sollte ein Service eine in sich geschlossene Fachlichkeit – Bounded Context – abbilden. In der Praxis hat sich gezeigt, dass dabei die naheliegende Einteilung nach Domänen-Objekten eher selten zum Ziel führt. Passender scheint eine Einteilung nach Use Cases zu sein.

Die notwendige Kommunikation der Microservices untereinander sollte so klar definiert wie notwendig und so flexibel und fehlertolerant wie möglich sein. Patterns wie Tolerant Reader und Semantic Versioning, aber auch Consumer-Driven Contract können dabei helfen, Schnittstellen über lange Zeit kompatibel zu halten.

Eine besondere Herausforderung stellen die verteilte Datenhaltung und die damit verbundene Sicherstellung der Datenkonsistenz dar. Gelockerte Konsistenzregeln wie BASE und die damit verbundene Eventual Consistency in Verbindung mit Datenreplikationen, Event-Mechanismen und geschicktem Daten-Caching innerhalb der Microservices stellen in den meisten, praxisnahem Szenarien eine gangbare Lösung dar.

Wie beim Schneiden von Microservices mit der zugehörigen UI umgegangen werden soll, ist schon fast eine philosophische Frage. Die UI kann sich entweder aus den UI-Fragmenten der einzelnen Microservices zusammensetzen oder alternativ en block implementiert werden und lediglich – über den Umweg eines API-Gateways – die zur Aufbereitung der UI notwendigen Daten von den Microservices beziehen. Als dritte Alternative ist ein Kompromiss beider Varianten denkbar, bei dem jeder Microservice die passenden UI-Komponenten inklusive Daten liefert und eine übergeordnete UI-Instanz diese sinnvoll zusammensetzt. (ane)

Lars Röwekamp
ist Gründer des IT-Beratungs- und Entwicklungsunternehmens open knowledge GmbH und beschäftigt sich im Rahmen seiner Tätigkeit mit der eingehenden Analyse und Bewertung neuer Software- und Techniktrends. Ein besonderer Schwerpunkt seiner Arbeit liegt derzeit in den Bereichen Enterprise und Mobile Computing.

Arne Limburg
ist Enterprise Architect bei der open knowledge GmbH in Oldenburg. Er verfügt über mehrjährige Erfahrung als Entwickler, Architekt und Trainer im Enterprise-Umfeld. Darüber schreibt er regelmäßig Artikel, spricht auf Konferenzen und führt Workshops durch. Außerdem ist er im Open-Source-Bereich tätig, unter anderem als PMC Member von Apache OpenWebBeans und Apache Deltaspike und als Urheber und Projektleiter von JPA Security.

Anzeige