Microservices

Klein und fein in die Cloud

Microservices sind kleine, unabhängige Module, die sich vor allem dadurch auszeichnen, dass sie genau eine bestimmte Aufgabe erledigen. Im Gegensatz zu monlithischen Systemen sind sie dadurch leichter verständlich bzw. zu erfassen. Da ihr Scope per Definition begrenzt ist, sind Microservices leichter testbar.

Der Microservice-Ansatz passt auch ins Bild, wenn es um DevOps geht; denn die Aufteilung aller Aufgaben der Gesamtvision kann von mehreren unabhängigen Teams durchgeführt werden. So werden Microservices oftmals getrennt versioniert und in Betrieb gesetzt (deployment) und in getrennten Versionsmanagement Systemen/Repositories gehalten.

Meistens werden Microservices darauf angelegt, stateless zu sein. Dadurch kann einfach skaliert werden, indem der gleiche Service mehrfach in Betrieb gesetzt wird. Und fällt ein Service aus, dann übernimmt der nächste.

In der Produktionsumgebung kommen Microservices nicht allein daher, der Begriff fällt häufig im Zusammenhang mit "serverless"-Ansätzen, Docker sowie zentralisiertem Logging.

Bei der Frage, wie aus einem komplexen Systementwurf viele kleine Services entstehen, kann Domain-Driven Design (DDD) dem Team helfen, auf den ersten Blick monolithische Strukturen in kleine, verständliche Domänen aufzuteilen.

Manchmal muss das Microservice-Ensemble orchestriert werden, um gemeinsam größere Aufgaben zu erledigen. Dazu eignen sich zum Beispiel Business Process Engines wie Camunda.

Bei andrena interessieren wir uns aus mehreren Gründen besonders für den Microservice-Ansatz. Zunächst erleichtern sie es, DevOps Teams in genau der angemessener Größe zu formieren, auch bei größeren Produktvisionen. Außerdem sind sie aufgrund ihrer Test- und Skalierbarkeit geeignet, das Gesamt-System robuster zu machen und damit insgesamt die Service-Qualität zu erhöhen.

Artikel zum Download
Best Practices für die Cloud-Entwicklung File icon Download (266.8 KiB)

 

Vorträge und Workshops (Links zu externen Seiten)