Microservices: Definition und praktische Vorzüge
Der Begriff Microservices bezeichnet einen methodischen Ansatz in der Softwareentwicklung, bei dem komplexe Anwendungen nicht als zusammenhängende Architektur programmiert werden, sondern als voneinander unabhängige Dienste. Somit sind Microservices laut Definition ein Gegenmodell zur monolithischen Architektur.
Was sind Microservices?
Eine Microservice-Architektur basiert auf der Idee, bei der Anwendungsentwicklung die verschiedenen Dienste bzw. Funktionen der Software voneinander zu entkoppeln und als kleinere, einzelne Prozesse zu betrachten. Diese Prozesse werden typischerweise von kleinen Entwickler-Teams getrennt voneinander erstellt und verwaltet. Sie kommunizieren untereinander über sorgfältig definierte Schnittstellen (API), die unabhängig von der für die einzelnen Teile der Gesamt-Architektur verwendeten Programmiersprache funktionieren. Im Gegensatz zur serviceorientierten Architektur (SOA), die auf einer Unterteilung in die Geschäftsprozesse der Anwender basiert, liegen Microservices per Definition die verschiedenen technischen Funktionen zu Grunde.
Warum Microservices? Was sind die Vorteile?
Durch die Entwicklung des Cloud Computing werden Anwendungen heute zunehmend in Microservices untergliedert und als solche in Betriebssystem-Containern bereitgestellt, da diese Architektur zahlreiche Vorzüge bietet:
- Die Aufgliederung einer Software in kleinteilige Dienste ermöglicht deutlich kürzere Entwicklungszeiten. Dies führt zu einer schnelleren Implementierung neuer Anwendungen.
- Komplexe Systeme sind besser gegen Komplett-Ausfälle geschützt, da bei Problemen nicht die gesamte Anwendung, sondern nur einzelne Dienste betroffen sind. Dies erleichtert auch die Isolierung und das Beheben von Fehlern.
- Die Entwickler-Teams sind technologisch flexibel. Für jeden Dienst lassen sich die bestmöglichen Tools verwenden. Kompromisse zu Gunsten der Gesamtarchitektur sind nicht notwendig.
- Die einzelnen Microservices lassen sich unabhängig voneinander vergleichsweise schnell skalieren. Diese vereinfachte Skalierbarkeit ist ein wesentliches Merkmal moderner Geschäftsanwendungen.
- Ein fertig programmierter Dienst kann durch die Aufgliederung in kleine Teile für andere Bereiche wiederverwendet werden. Das heißt, es können neue Funktionen entwickelt werden, ohne dafür einen grundlegend neuen Code zu schreiben.
Kritikpunkte an einer Microservice-Architektur sind auf der anderen Seite die Gefahr einer hohen Komplexität durch allzu kleinteilige Abgrenzungen der einzelnen Dienste, mögliche Latenzen bei intensiver Nutzung, sowie der zusätzliche Aufwand für die Definition der API und der Kommunikation zwischen den Services.
Sie interessieren sich für Anwendungsentwicklung und Anwendungsmodernisierung? Neben diesem Beitrag zum Thema Microservices finden Sie weitere Erläuterungen und Begriffsklärungen in unserem IT-Glossar! Gerne beraten wir Sie persönlich zu einer Softwaremodernisierung für Ihr Unternehmen.