© Excellent backgrounds/Shutterstock.com
Java Magazin
Datenarchitekturen nicht nur für Microservices

Daten richtig behandeln


Microservices werfen wichtige Fragen für die Softwarearchitektur auf. Besonders wichtig ist es, wie die Microservices mit Daten umgehen. Die dort angewandten Konzepte lassen sich aber für viel mehr als nur für Microservices nutzen. Sie werfen grundlegende Fragen zur Modularisierung auf.

Video: Datenarchitekturen nicht nur für Microservices

Zunächst einige Worte über Microservices [1]: Dieser Artikel versteht unter Microservices unabhängig deploybare Module. Das können Docker-Container sein. Eine neue Version eines Microservice bedeutet dann, dass ein Docker-Container gestoppt, durch eine neue Version ersetzt und wieder gestartet wird. Das beeinflusst andere Docker-Container und damit andere Microservices nicht. Microservices sollten von einem Team weiterentwickelt werden. Ein Team kann durchaus an mehreren Microservices arbeiten. Aber ein Microservice, an dem mehrere Teams arbeiten, ist kaum sinnvoll. Schließlich ist das System ja in Module aufgeteilt, damit eine unabhängige Arbeit an einzelnen Modulen möglich ist. Wenn Teams immer an getrennten Microservices arbeiten, müssen sie sich viel weniger abstimmen.

Microservices haben viele Vorteile. Entwickler können ein Feature implementieren und es in Produktion bringen – ohne dass dazu eine Koordination mit anderen Microservices zwingend notwendig wäre. Schließlich lassen sich Microservices ja unabhängig in Produktion bringen. Außerdem kann jeder Microservice unabhängig skaliert werden und einen anderen Technologiestack nutzen. Außerdem sind Microservices isoliert: Der Absturz eines Microservice bleibt auf den Microservice begrenzt. Ebenso können Microservices bezüglich Sicherheit beispielsweise durch Firewalls isoliert werden.

Am Ende ermöglichen Microservices ähnlich wie andere Arten von Modulen auch Entkopplung. Aber nicht nur auf Ebene der Architektur, sondern auch bei der Technologie, beim Deployment, bei der Sicherheit oder bei der Robustheit. Dieser hohe Grad an Entkopplung rechtfertigt auch die hohe technologische Komplexität, die Microservices mit sich bringen.

Zentrale Datenbank ist keine Lösung

Das Speichern von Daten ist kein Thema, das nur Microservices betrifft. Viele komplexe Softwaresysteme nutzen zentrale Datenbanken. Es ist nicht ungewöhnlich, dass sich mehrere Module oder gar Systeme eine Kunden- oder Produktdatenbank teilen. Die Vorteile liegen auf der Hand: Nicht nur die Daten sind konsistent, sondern auch das Datenformat. Änderungen an Daten und Datenformaten stehen sofort allen Sys...

Java Magazin
Datenarchitekturen nicht nur für Microservices

Daten richtig behandeln

Microservices werfen wichtige Fragen für die Softwarearchitektur auf. Besonders wichtig ist es, wie die Microservices mit Daten umgehen. Die dort angewandten Konzepte lassen sich aber für viel mehr als nur für Microservices nutzen. Sie werfen grundlegende Fragen zur Modularisierung auf.

Eberhard Wolff


Microservices werfen wichtige Fragen für die Softwarearchitektur auf. Besonders wichtig ist es, wie die Microservices mit Daten umgehen. Die dort angewandten Konzepte lassen sich aber für viel mehr als nur für Microservices nutzen. Sie werfen grundlegende Fragen zur Modularisierung auf.

Video: Datenarchitekturen nicht nur für Microservices

Zunächst einige Worte über Microservices [1]: Dieser Artikel versteht unter Microservices unabhängig deploybare Module. Das können Docker-Container sein. Eine neue Version eines Microservice bedeutet dann, dass ein Docker-Container gestoppt, durch eine neue Version ersetzt und wieder gestartet wird. Das beeinflusst andere Docker-Container und damit andere Microservices nicht. Microservices sollten von einem Team weiterentwickelt werden. Ein Team kann durchaus an mehreren Microservices arbeiten. Aber ein Microservice, an dem mehrere Teams arbeiten, ist kaum sinnvoll. Schließlich ist das System ja in Module aufgeteilt, damit eine unabhängige Arbeit an einzelnen Modulen möglich ist. Wenn Teams immer an getrennten Microservices arbeiten, müssen sie sich viel weniger abstimmen.

Microservices haben viele Vorteile. Entwickler können ein Feature implementieren und es in Produktion bringen – ohne dass dazu eine Koordination mit anderen Microservices zwingend notwendig wäre. Schließlich lassen sich Microservices ja unabhängig in Produktion bringen. Außerdem kann jeder Microservice unabhängig skaliert werden und einen anderen Technologiestack nutzen. Außerdem sind Microservices isoliert: Der Absturz eines Microservice bleibt auf den Microservice begrenzt. Ebenso können Microservices bezüglich Sicherheit beispielsweise durch Firewalls isoliert werden.

Am Ende ermöglichen Microservices ähnlich wie andere Arten von Modulen auch Entkopplung. Aber nicht nur auf Ebene der Architektur, sondern auch bei der Technologie, beim Deployment, bei der Sicherheit oder bei der Robustheit. Dieser hohe Grad an Entkopplung rechtfertigt auch die hohe technologische Komplexität, die Microservices mit sich bringen.

Zentrale Datenbank ist keine Lösung

Das Speichern von Daten ist kein Thema, das nur Microservices betrifft. Viele komplexe Softwaresysteme nutzen zentrale Datenbanken. Es ist nicht ungewöhnlich, dass sich mehrere Module oder gar Systeme eine Kunden- oder Produktdatenbank teilen. Die Vorteile liegen auf der Hand: Nicht nur die Daten sind konsistent, sondern auch das Datenformat. Änderungen an Daten und Datenformaten stehen sofort allen Sys...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang