Zum Inhalt springen

Glossar · M

Microservices

Architektur, die eine Anwendung in kleine, unabhängig deploybare Services aufteilt. Jeder mit eigener Datenbank und klarem fachlichem Schnitt.

Definition

Microservices sind ein Architekturmuster, das Anwendungen in kleine, unabhängige Dienste aufteilt, die jeweils eine spezifische Funktionalität bereitstellen. Jeder dieser Dienste kann unabhängig entwickelt, getestet, bereitgestellt und skaliert werden. Dies ermöglicht eine flexible und agile Softwareentwicklung, da Teams an verschiedenen Diensten gleichzeitig arbeiten können, ohne sich gegenseitig zu behindern.

Ein zentrales Merkmal von Microservices ist die Verwendung von klar definierten Schnittstellen, oft über REST-APIs oder Messaging-Protokolle. Jeder Microservice hat in der Regel seine eigene Datenbank, was die Entkopplung der Dienste fördert und die Datenverwaltung vereinfacht.

Was bedeutet das für Ihr Unternehmen?

Für die meisten mittelständischen Anwendungen sind Microservices mehr Aufwand als Nutzen: Statt einer Anwendung müssen mehrere Dienste betrieben, überwacht und aufeinander abgestimmt werden. Sinnvoll wird die Aufteilung erst, wenn mehrere Teams unabhängig voneinander an klar getrennten Fachbereichen arbeiten oder einzelne Teile sehr unterschiedlich viel Last tragen. Schlägt ein Anbieter Microservices für ein kleines Projekt vor, ist eine Begründung angebracht, warum ein gut strukturierter Monolith nicht reicht.

Hintergrund

Das Konzept der Microservices hat seine Wurzeln in der Softwareentwicklung der 2000er Jahre, als Unternehmen begannen, die Vorteile von modularen Architekturen zu erkennen. Der Begriff „Microservices“ wurde populär durch eine Veröffentlichung von Martin Fowler und James Lewis im Jahr 2014, die die Prinzipien und Vorteile dieser Architektur detailliert beschrieben.

Microservices sind eine Reaktion auf die Herausforderungen monolithischer Architekturen, bei denen alle Komponenten einer Anwendung eng miteinander verbunden sind. Solche monolithischen Systeme sind oft schwerfällig und schwierig zu warten, da Änderungen an einer Komponente Auswirkungen auf das gesamte System haben können. Microservices bieten eine Lösung, indem sie eine lose Kopplung zwischen den einzelnen Diensten ermöglichen.

Funktionsweise

In einer Microservices-Architektur kommunizieren die einzelnen Dienste über Netzwerkprotokolle, was eine flexible Interaktion ermöglicht. Jeder Dienst kann in einer unterschiedlichen Programmiersprache oder Technologie entwickelt werden, was eine große Vielfalt in der Auswahl der Tools und Frameworks erlaubt. Diese Flexibilität fördert die Innovationskraft und Anpassungsfähigkeit der Softwareentwicklung.

Die Bereitstellung von Microservices erfolgt in der Regel über Container-Technologien wie Docker oder Kubernetes, die eine einfache Verwaltung und Skalierung der Dienste ermöglichen. Diese Technologien unterstützen auch die Automatisierung von Bereitstellungsprozessen und die Überwachung der Dienste im laufenden Betrieb.

Einsatzgebiete

Microservices finden Anwendung in einer Vielzahl von Branchen, insbesondere in der Web- und Cloud-Entwicklung. Unternehmen, die skalierbare und wartbare Anwendungen benötigen, setzen zunehmend auf Microservices, um ihre Softwarearchitektur zu modernisieren. Beispiele sind E-Commerce-Plattformen, Finanzdienstleister und soziale Netzwerke, die alle von der Flexibilität und Skalierbarkeit dieser Architektur profitieren.

Ein weiterer Anwendungsbereich sind Unternehmen, die agile Entwicklungsmethoden anwenden. Durch die Unabhängigkeit der Microservices können Teams schneller auf Änderungen reagieren und neue Funktionen schneller bereitstellen, was zu einer höheren Kundenzufriedenheit führt.

Abgrenzung

Microservices werden häufig mit anderen Architekturmuster wie monolithischen Anwendungen oder serviceorientierten Architekturen (SOA) verglichen. Der Hauptunterschied zu monolithischen Anwendungen liegt in der Modularität und der Unabhängigkeit der einzelnen Dienste. Während monolithische Anwendungen als eine einzige Einheit bereitgestellt werden, können Microservices unabhängig voneinander aktualisiert und skaliert werden.

Im Vergleich zu SOA, das ebenfalls auf lose Kopplung setzt, sind Microservices in der Regel leichtergewichtig und fokussieren sich stärker auf die spezifischen Geschäftsanforderungen. SOA verwendet oft komplexere Middleware und ist in der Regel stärker auf die Integration von Unternehmensanwendungen ausgerichtet, während Microservices eine schnellere und agilere Entwicklung fördern.

Verwandte Begriffe

Aus dem Blog

Passende Leistung

Sie möchten wissen, was das für Ihr Projekt bedeutet? Sprechen Sie uns an.

Zum Angebot: Architecture Rescue