Microservices:
skalierbare Software schneller liefern

Teilen

Was sind Microservices?

Microservices bezeichnet einen Ansatz für die Softwarearchitektur, bei dem unabhängige Teams für die bedarfsgerechte und fortlaufende Entwicklung von Softwaremodulen für bestimmte Zwecke verantwortlich sind. Dieses Modell ist der Gegenentwurf zu herkömmlicher monolithischer Software, die aus eng miteinander verzahnten Modulen besteht, nur selten aktualisiert wird und als Ganzes skaliert werden muss. Zwar funktioniert dieser Ansatz für manche Unternehmen und manche Anwendungsfälle hervorragend, aber Unternehmen, die mehr Flexibilität und Skalierbarkeit benötigen, setzen zunehmend auf Microservices.


Microservices Cartoon


Der Wert von Microservices

Schnellere Erfüllung von Kundenanforderungen

Softwareanbieter, die eine Microservices-Architektur einsetzen, sind nicht an starre Versionszyklen gebunden und können daher zeitnah neue Funktionen liefern, die ihre Kunden benötigen.

Produktivere Softwareentwickler

Microservices nutzen agile Softwareentwicklung und DevOps. Damit können die Teams parallel an der schrittweisen Optimierung einzelner Funktionen arbeiten.

Zuverlässigere, besser skalierbare Systeme

Eine gelungene Microservices-Architektur ist sehr robust. Sie nutzt wiederholbare und automatisierte Vorgänge, wo immer dies möglich ist. Zudem unterstützt sie eine fein abgestimmte Skalierung von Services und ist so aufgebaut, dass das System auch dann weiterläuft, wenn einzelne Komponenten ausfallen.




Microservices at Pivotal

Pivotal unterstützt Sie beim Konzipieren einer leistungsstarken Microservices-Architektur und liefert Ihnen eine erstklassige Umgebung zur Ausführung der Microservices.

In Zusammenarbeit mit unserem Team ermitteln Sie zunächst, welche Ihrer Anwendungen häufig weiterentwickelte Funktionen und extreme Skalierbarkeit benötigen. Anschließend lernen Sie, wie Sie Teams bilden, die sich auf diese Ziele konzentrieren.

Installieren und verwalten Sie Microservices mit der Pivotal Cloud Foundry, unserer nativen Cloud-Plattform, die den Weg zur produktiven Nutzung verkürzt.

Empower your developers with patterns from Spring Cloud Services that overcome key challenges and operational overheads when building distributed systems with microservices



Was Sie beachten sollten, wenn Sie die Nutzung von Microservices in Betracht ziehen

Microservices sind nicht unbedingt für jedes Unternehmen oder jede Anwendung das Richtige und können sogar zu höheren Kosten führen, wenn sie nicht korrekt implementiert werden. Vor dem Start sollten Sie folgende Fragen klären:

Ist Ihr Unternehmen dafür bereit?

Der Umstieg auf Microservices erfordert nicht nur eine technologische, sondern auch eine organisatorische Umstellung. Ihre Teams müssen bereit sein, die Softwareentwicklung als eine auf Automatisierung fokussierte Tätigkeit zu akzeptieren, bei der laufend neue Versionen entstehen. Ist Ihr Unternehmen bereit, isolierte Funktionsbereiche aufzubrechen und autarke Teams einzusetzen, die Services entwickeln und betreiben? Ermöglichen Ihre Prozesse zum Änderungsmanagement einen Bereitstellungsablauf ohne menschliches Zutun?

Gibt es bei Ihnen übereifrige Entwickler?

Microservices eignen sich nicht für jede Anwendung. In der anfänglichen Begeisterung, alles auf Microservices umzustellen, wenden Ihre Entwickler möglicherweise viel Zeit für die Umprogrammierung bestehender Anwendungen auf – die aus geschäftlicher Sicht jedoch gar nicht verändert werden müssen. Anwendungen, die nur selten geändert werden oder die nicht geschäftskritischen Funktionen dienen, lassen Sie vermutlich besser in ihrer alten, monolithischen Architektur. Microservices erhöhen zwar die Flexibilität, bringen jedoch auch eine größere Komplexität mit sich. Seien Sie sich ganz sicher, dass Sie ersteres benötigen, bevor Sie letzteres in Kauf nehmen!

Sind Ihre Services untereinander verbunden?

Microservices sind nur lose miteinander verbunden und ändern sich permanent. Wie finden Sie die aktuelle URL eines Services heraus oder leiten den Datenverkehr über eine variable Anzahl von Service-Instanzen? Wie tauschen Services untereinander Daten aus? In vielen Fällen ist die Technik zum Auffinden von Services, zum Lastenausgleich und für Benachrichtigungen nicht ansatzweise in der Lage, mit der durch Microservices eingeführten Dynamik umzugehen.

Wie sind Sie auf den alltäglichen Betrieb einer komplexen Umgebung vorbereitet?

Je mehr Objekte Sie managen müssen, desto größer ist das Betriebsrisiko. Wenn Sie diese Aufgabe nicht von Grund auf neu angehen, wird die Verwaltung von hunderten oder tausenden Microservices auf hunderten oder tausenden Servern zum reinsten Alptraum. Wie spielen Sie Patches oder Upgrades in die betreffenden Rechner ein? Können Sie den Überblick über gegenseitige Abhängigkeiten behalten und feststellen, welche Anwendungen betroffen sind? Wie sorgen Sie dafür, dass die zahlreichen Microservice-Instanzen an die aktuelle Anwendungskonfiguration angepasst werden? Von der Wahl der Komponenten für Ihre Microservice-Plattform und der Entscheidung, wo Sie diese Komponenten und Services ausführen, wird ihre betriebliche Flexibilität für die nächsten Jahre abhängen.



Die wichtigsten Unterschiede: Microservices und herkömmliche Architekturen im Vergleich
Architektur mit Microservices
Herkömmliche Architektur
Ein Zweck. Microservices können genau eine Sache, und die richtig gut. Sie werden für einen ganz bestimmten Zweck entwickelt und bringen alles mit, was sie dafür brauchen (sogar die Daten). Das „Mikro“ in Microservices beschreibt den Zweck einer Anwendung, nicht ihre Größe.
Viele Zwecke. Herkömmliche Lösungen versuchen, mit einer einzigen Software viele Funktionen abzudecken.
Lose Verknüpfung. In einer Microservices-Architektur müssen die Services so eigenständig wie möglich sein und sollten im Code keine festen Verweise auf andere Services enthalten.
Enge Verknüpfung. Herkömmliche Systeme bestehen oft aus einem komplizierten Gefüge voneinander abhängiger Komponenten, die in einer genau festgelegten Reihenfolge installiert werden müssen.
Kontinuierliche Bereitstellung. Microservices sind ideal für Teams, deren Anwendungen Anforderungen erfüllen müssen, die sich ständig wandeln. Um Kunden neue Funktionen so schnell wie möglich anbieten zu können, werden Microservices regelmäßig automatisiert in den Produktivbetrieb gegeben.
Neue Versionen nach Zeitplan. Die Entwicklung und Aktualisierung von Anwendungen richtet sich nach festgelegten Zeitplänen, die zum Beispiel einen Quartals- oder Jahresrhythmus für die Herausgabe neuer Versionen vorgeben.
Unabhängige Teams mit Eigenverantwortung für ihre Abläufe. Der Umstieg auf Microservices betrifft die Teamstruktur ebenso wie die Technik. Microservices werden von unabhängigen Teams entwickelt, ausgeliefert und verwaltet. Diese Vorgehensweise ist nicht für jeden Service notwendig, ist aber ein leistungsfähiges Modell für geschäftskritische Dienste.
Viele Teams mit gemeinsamer Verantwortung für die Abläufe. Projektteams sind verantwortlich für die erste Version einer neuen Software und werden dann auseinander gerissen, weil die Mitglieder anderen Projekten zugeteilt werden. Die weitere Pflege der Software übernimmt dann das Administrationsteam.
Designmuster und Technologie fördern in großem Maßstab verteilte Systeme. Microservices lassen sich nicht auf dieselbe Art und Weise und mit denselben Tools entwickeln und betreiben wie herkömmliche Software aus einem Guss. Eine Microservices-Architektur erfordert Funktionen für Service Discovery, Benachrichtigungen, Routing im Netzwerk, Fehlererkennung, Protokollierung, Speicherung, Identität und vieles mehr.
Designmuster und Technologie stellen die Prozesse in den Vordergrund. Isolierte Tools und Prozesse, die auf die wichtigsten Entwicklungsphasen, Qualitätssicherung und Veröffentlichung abgestimmt sind, produzieren monolithische Software.