Microservices

Concept

Was ist das?

Microservices sind ein moderner Ansatz für die Anwendungsentwicklung, der die Vorteile von Cloud Native Technologien nutzt. Moderne Anwendungen wie Netflix sehen zwar aus wie eine einzige App, sind aber in Wirklichkeit eine Sammlung kleinerer Dienste, die alle eng zusammenarbeiten. Eine Seite, über die du auf Videos zugreifen, sie suchen und in der Vorschau ansehen kannst, wird wahrscheinlich von kleineren Diensten betrieben, die jeweils einen Aspekt davon übernehmen (z. B. Suche, Authentifizierung und Vorschau im Browser). Kurz gesagt: Microservices sind ein Muster für die Anwendungsarchitektur, das normalerweise mit monolithischen Anwendungen verglichen wird.

Probleme, die damit gelöst werden

Microservices sind eine Antwort auf die Herausforderungen, die monolithische Anwendungen mit sich bringen. In der Regel müssen verschiedene Teile einer Anwendung separat angepasst werden. In einem Online-Shop gibt es zum Beispiel mehr Produktansichten als Checkouts. Das bedeutet, dass du mehr Kopien der Produktansichten brauchst als des Checkouts. In einer monolithischen Anwendung können diese Teile der Logik nicht separat bereitgestellt werden. Wenn du die Produktfunktionalität nicht einzeln anpassen kannst, musst du die gesamte Anwendung mit allen anderen Komponenten, die du nicht brauchst, duplizieren - eine ineffiziente Ressourcennutzung. Monolithische Anwendungen machen es Entwicklern damit auch leicht, Design-Fallen zu erliegen. Da sich der gesamte Code an einem Ort befindet, ist es leichter, diesen Code eng zu koppeln und schwieriger, das Prinzip der Trennung von Belangen durchzusetzen. Bei Monolithen müssen Entwickler/innen oft die gesamte Codebasis verstehen, bevor sie produktiv arbeiten können.

Wie es hilft

Die Aufteilung von Funktionen in verschiedene Microservices macht es einfacher, sie unabhängig voneinander einzusetzen, zu aktualisieren und anzupassen. Damit können sich verschiedene Teams auf ihren eigenen kleinen Teil einer größeren Anwendung konzentrieren, ohne den Rest des Unternehmens zu beeinträchtigen. Microservices lösen zwar viele Probleme, aber sie verursachen auch einen betrieblichen Overhead - die Dinge, die du bereitstellen und im Auge behalten musst, steigen um Größenordnungen oder mehr. Viele Cloud Native-Technologien zielen darauf ab, die Bereitstellung und Verwaltung von Microservices zu vereinfachen.